Öncelikle konumuz olan IDA PRO programını "CrackMe" dosyamız ile birlikte açıyoruz. Öncelikle panelleri tanıyalım.
Sol tarafta program içinde kullanılmış olan fonksiyonlar gözükmektedir, Windows fonksiyonları dahil, çift tıklayarak fonksiyonun içine bakabilirsiniz.
(Şimdilik bu kadar bilgi yeterli ). Biraz da programımızı inceleyelim.
Gördüğünüz gibi yanlış bir değer girdiğimizde hata mesajı olarak "Wrong User Or Password!" hatası alıyoruz.
Bu durumda hata mesajını ne zaman verdiğini bularak karşılaştırma yaptığı yeri bulabiliriz. Tekrar IDA PRO'ya dönüyoruz.
Sol üstte bulunan Dürbün simgesinin önünde T harfi olan icona basarak tüm foksiyonlarda taranan bir değer araması yapabiliriz.
İcona tıklayıp "Wrong User Or Password!" cümlesini aratıyoruz ve çıkan sonuçları inceliyoruz.
Sonuçları incelerken aynı fonksiyon içerisinde olduğunu görebiliyoruz. Çift tıklayarak fonksiyona gidiyoruz.
Gördüğünüz gibi 2 adet if yapısı var. Sol taraf doğru olan cevaba, sağ taraf ise yanlış olan tarafa çıkmaktadır.
İlk grafikteki callvirt fonksiyonu formdaki input değerini fonksiyon getirmektedir ayrıca tabloda bir değişken değeri de bulunmaktadır.
2. if yapısına geçtiğimizde ise aynı şekilde bir çağırma fonksiyonu ve değişken bulunmaktadır.
2 tabloda da bu değişken ile bizden aldığı değeri değişken ile kontrol etmektedir. Eğer bizden istediğin değere o değişkenleri girersek bizi doğru yola götürecektir.
Ben daha kolay anlaşılması için karmaşık değerleri User ve Password olarak değiştirdim. Son durumda bu şekilde gözüküyor
User ve Password yazılarının üzerine çift tıklarsanız bunların değerlerini görebilirsiniz:
Gördüğünüz gibi çok uzun bir değer olduğu için 3 bölüme ayrılmış durumda, bunları üstten başlayarak teker teker birleştirirsek anahtarı elde edebiliriz.
Bu durumda:
Username: "4120320859687358676756853596584584398669376647549759048754758868670685807675395684978360645367396793457645067693576076089760673459067308967"
Password: "567385673805675687667587586756705376876058937689035768076803570605673576059367530670359675677659036789067890763067376396739067350675389067580697536803"
Bu değerleri programımıza giriyoruz ve sonuca bakıyoruz.
Gördüğünüz gibi "Correct!" cevabı geldi. Bu demektir ki programı çözebildik.
Sol tarafta program içinde kullanılmış olan fonksiyonlar gözükmektedir, Windows fonksiyonları dahil, çift tıklayarak fonksiyonun içine bakabilirsiniz.
(Şimdilik bu kadar bilgi yeterli ). Biraz da programımızı inceleyelim.
Gördüğünüz gibi yanlış bir değer girdiğimizde hata mesajı olarak "Wrong User Or Password!" hatası alıyoruz.
Bu durumda hata mesajını ne zaman verdiğini bularak karşılaştırma yaptığı yeri bulabiliriz. Tekrar IDA PRO'ya dönüyoruz.
Sol üstte bulunan Dürbün simgesinin önünde T harfi olan icona basarak tüm foksiyonlarda taranan bir değer araması yapabiliriz.
İcona tıklayıp "Wrong User Or Password!" cümlesini aratıyoruz ve çıkan sonuçları inceliyoruz.
Sonuçları incelerken aynı fonksiyon içerisinde olduğunu görebiliyoruz. Çift tıklayarak fonksiyona gidiyoruz.
Gördüğünüz gibi 2 adet if yapısı var. Sol taraf doğru olan cevaba, sağ taraf ise yanlış olan tarafa çıkmaktadır.
İlk grafikteki callvirt fonksiyonu formdaki input değerini fonksiyon getirmektedir ayrıca tabloda bir değişken değeri de bulunmaktadır.
2. if yapısına geçtiğimizde ise aynı şekilde bir çağırma fonksiyonu ve değişken bulunmaktadır.
2 tabloda da bu değişken ile bizden aldığı değeri değişken ile kontrol etmektedir. Eğer bizden istediğin değere o değişkenleri girersek bizi doğru yola götürecektir.
Ben daha kolay anlaşılması için karmaşık değerleri User ve Password olarak değiştirdim. Son durumda bu şekilde gözüküyor
User ve Password yazılarının üzerine çift tıklarsanız bunların değerlerini görebilirsiniz:
Gördüğünüz gibi çok uzun bir değer olduğu için 3 bölüme ayrılmış durumda, bunları üstten başlayarak teker teker birleştirirsek anahtarı elde edebiliriz.
Bu durumda:
Username: "4120320859687358676756853596584584398669376647549759048754758868670685807675395684978360645367396793457645067693576076089760673459067308967"
Password: "567385673805675687667587586756705376876058937689035768076803570605673576059367530670359675677659036789067890763067376396739067350675389067580697536803"
Bu değerleri programımıza giriyoruz ve sonuca bakıyoruz.
Gördüğünüz gibi "Correct!" cevabı geldi. Bu demektir ki programı çözebildik.
YAZIMI OKUDUĞUNUZ İÇİN TEŞEKKÜRLER!