Reverse Engineering - Unpacking

Üstte breakpoint koymamızın sebebi IAT’ın orada bir döngü içerisinde oluşturulması ve o beklediğimiz yerde sağ üst köşeden hangi api olduğunu gözlemleyebilmemiz.

Ollydbg’da çalıştır tuşuna basın ve programın her bastığınızda orada durakladığını ve sağ üst köşede api isimlerinin yazdığını göreceksiniz.Imprecteki tabloya baktığınızda sırayla ilerlediğini göreceksiniz.Burayı ve imprecteki listeyi takip etmeniz önemli örneğin GetStartupInfoA apisinden sonraki yer geçersizse sırada o gözükecek ve onu seçeceksiniz. Teker teker adresleri alınarak hardware breakpoint konularakta yapılabilir fakat 12 apide sorun olduğu için işimiz daha uzun sürer.

Ben ilk apiyi örnek olarak gösterdim.Diğerlerini siz bulabilirsiniz.Ben kayıp apilerin isimlerini vereceğim kontrol etmeniz amacıyla.

-Kernel32.dll  GetVersion
- Kernel32.dll  GetProcAdress
-Advapi32.dll RegQueryValueExA
- Advapi32.dll RegOpenKeyExA
- Advapi32.dll RegCloseKey (Sonra gelenlerde aynı)
- Advapi32.dll RegQueryValueExA
- Advapi32.dll RegOpenKeyExA
- Advapi32.dll RegCloseKey
- Kernel32.dll  GetVersionExA
- Kernel32.dll  GetVersion
- Kernel32.dll  GetProcAddress
- Kernel32.dll  CompareStringA

Gördüğünüz üzere api redirectionda kullanılan apiler belirli.Genelde hep aynı şeyler karşımıza çıkar.Diğer packerlar içinde geçerlidir bu.

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.