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.
Hit: 7018
Yazar: anonim6918524