Özellikle zararlı yazılım analiz ederken analistin işini zorlaştıran mekanizmaları aşmamız gerekiyor. Bu mekanizmalardan bir tanesi packer ismini verdiğimiz yazılımlardır, ne oldukları ve nasıl çalıştıkları hakkında detaylı bilgiyi internetten bulabilirsiniz. Bu yazı da basit olarak unpack işleminin WinDbg ile gerçekleştirilmesini açıklamaktadır.
Unpack işlemine geçmeden önce yukarıdaki resim bu yazılımın pack edilmiş bir yazılım olduğunu teyit etmemiz gerekiyor. Burada temel dikkat edilmesi gereken bir kaç nokta var, bunlardan başlıca önem arz edenleri import edilen fonksiyonların sayısı ve bunların LoadLibrary, GetmoduleHandle gibi fonksiyonlar olması gibi hususlardır.
Unpack işlemini gerçekleştireceğiniz yazılımı debugger ile yükledikten sonra entrypoint/base adresi kontrol etmemiz gerekiyor.
Bu aşamayı geçtiğimize göre giriş noktasına breakpoint koyarak -ki buradaki iment entrypoint adresine işaret eder- programın çalıştırılmasına devam ediyoruz.
Programın çalıştırılması işleminden sonra F10 ve p komutu verilerek kaydedici üzerindeki değişikliği gözlemleyebiliyoruz.
Buradan sonra esp gösterdiği adrese breakpoint access koyarak programın çalışmasını , bu adres read edildiğinde ise durmasını sağlıyoruz.
Bir sonraki adımın ne olacağını artık daha iyi biliyoruz ve orjinal entry point adresine daha yakınız.
Yukarıda görüldüğü gibi ikinci işaretli alan yazılımımızın orjinal entry point adresidir. Tüm aşamalar OllyDbg ile aynı olmakla birlikte bu yazıda sadece debugger olarak windbg kullanılmıştır.
Yasin SÜRER