Reverse Engineering - Unpacking
Resimde gördüğünüz üzere olly bizi dosyanın self-modifying,sıkıştırılmış olabileceği konusunda uyarıyor.Compressed code... yazan mesaj penceresinde noya basarak geçiyoruz.
Öncelikle yapmamız gereken orjinal giriş noktası OEP(Original Entry Point)’i bulmak.Burası asıl programın başladığı nokta.Packer çeşitli işlemlerden geçirerek programın tamamını memory’e açar.Açmak zorundadır.Hepsi aynısını yapar.Çeşitli döngüler,karşılaştırmalar,matematiksel işlemler yerine getirilir ve programın tamamı memorye açıldığında OEP’e zıplanır ve program normal akışına devam eder.Bizde OEP’in yerini bulursak oraya ulaştığımızda programın tamamı hafızaya açılmış olacak ve onu dump ettiğimizde memorydeki tüm o bölgedeki verileri bir dosyaya kopyalamış olacağız ve dosya unpack olmuş olacak.Daha sonra packerın eklediği ekstra segmentleri vs temizleyebiliriz boyutu düşürmek için.Oraları artık işe yaramaz olacak çünkü.Programı dump edince tekrar eski giriş noktasına ayarlarlanacak ve artık packerın kodlarının bulunduğu bölümler kullanılmayacak.
Unpacking başlı başına bir uğraştır.O yüzden bazı packerlarda OEP’i bulmak zaman alabilir.ESP registerına hardware breakpoint koymak en yeni packerlarda bile OEP’i bulmakta işimize yaramaktadır.Aspackta buna karşı önlem alınmıştır.Bunun yanında ollydbg’ın debugging options bölümünde sfx tabında yapılan değişikliklerde OEP bulunabilir.Fakat fazla işe yaradığı söylenemez.Diğer bir yöntem program açıldığında pause edip stack penceresindeki herhangi bir konuma gidip sürekli program akışını takip ederek üst konumlara ulaşmak ve program akışının başladığı OEP’e kadar takip etmek.Yada programı başından itibaren izlemek ve ulaşmak.Bu da çok uzun zaman alacaktır.
Bütün packerların kendine göre bir açığı vardır.Aspackte bunu kullanacağız.ESP’ye Hardware breakpoint koymak işimizi görmediği için.Aspackte OEP’e zıplamadan önceki kod bloğunu arayacatacağız.Bu bütün aspack kullanılmış programlarda aynıdır.Asppack’ın zaafıdır.
Sağ tıklıyoruz ve search for->all sequences’a basıp
push 0
ret
Hit: 7018
Yazar: anonim6918524