Reverse Engineering - Hedef Bölge

Daha sonra “isim:” yazısını seçip sağ tıklayıp Binary->Edit diyoruz ve gerekli değişikliği yaptıktan sonra okleyip.Değişiklik yaptığımız bölgeyi seçip sağ tıklatıp copy to executable file dedikten sonra karşımıza çıkan pencerede sağ tıklayıp save file diyoruz ve kaydediyoruz.

Gelelim 4. yöntemimize.Bu sefer system stack’ı izlemeyi öğrenelim.Ekranın sağ alt köşesinde olan pencere.Girdiğimiz bir fonksiyondan nasıl bir üst konuma çıkabileceğimizi göstereceğim.Programı çalıştırıyoruz hata mesajı verdiriyoruz yine ve pause butonuna basıyoruz.Daha sonra sağ alt köşedeki system stack’ı inceleyince bazı string ifadelerin geçtiğini ve en son yapılan işlemin en üstte olduğunu göreceksiniz.Buradaki return to xxxxxx yazann ifadeler bizim geri dönmemizi sağlayacak.Bunların çok işinize yaradığını ileride göreceksiniz.Geri dönüş için return to xxxxxx ifadesine sağ tıklayıp Follow in Disassembler diyoruz ve bir üstten çağrıldığı yere geri dönmüş oluyoruz.

Bunuda ek not olarak söyleyeyim.Örneğin programımız kısıtlı her yapacağı işlemde programın register olup olmadığını kontrol ediyor ve onu kontrol eden hep aynı fonksiyonu çağırıyor.Bizde işlemleri takip ettik ve fonksiyonun çağrıldığı yeri yakaladık diyelim.O fonksiyonun içine girince en üstteki  satırda sağ tıklayarak Find references to->Selected command diyoruz ve hangi adreslerden çağrıldığına dair karşımıza bir liste çıkıyor.Eğer sağ tıkladığımız yerde adres varsa Adress Constant çıkacak ve o adrese nerelerden ulaşıldığına dair liste karşımıza çıkmış olacak.Bu da işimize çok yarıyor.

5.Yöntemimiz api aratma.Örneğin program registrye bakarak register olup olmadığını anlıyor ve okuduğu değerleri karşılaştırıp programın register olup olmadığını belirliyor.Bizde RegOpenKeyA apisinin programda kullanıldığı yeri bulursak orada değişiklik yaparak programı önceden register olmuş gibi aldatabiliriz.Bunun için Ctrl+N kısayolula apilerin olduğu pencereyi açıyor ve aradığımız apiyi yani RegOpenKeyA yazıyoruz ve sağ tıklayıp set breakpoint on every reference’a basıp bütün RegOpenKeyA kullanılan yerlere breakpoint koyuyoruz.Eğer girişte program registry’i kontrol ediyorsa programı restart edip çalıştırdığımızda program akışı breakpoint koyduğumuz için duraklayacak ve RegOpenKeyA apisinin çağrıldığı yerde duracak bizde gerekli araştırmaları ve değişiklikleri yapıp programı kırmış olacağız.

 

Tarih:
Hit: 4641
Yazar: anonim6918524

Taglar: reverse engineering - hedef bölge


Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.