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

Tarih:
Hit: 7018
Yazar: anonim6918524

Taglar: reverse engineering - unpacking


Yorumlar


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