欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ACProtect Professional 1.3C 主程序脫殼(1)(圖)

互聯(lián)網(wǎng)   發(fā)布時間:2008-10-08 19:01:32   作者:佚名   我要評論
脫殼過程感覺與Unpacking Saga的那個UnpackMe沒有太大的不同。最明顯的一點是,其中的異常多了很多。大部分是固定模式的int 3解碼。因為一開始打算全程跟,所以一邊跟一邊修改去除junk code的IDC script,寫OllyScript腳本,并用WinHex把解出的代碼貼到ACProtect_Fixed.exe,在
脫殼過程感覺與Unpacking Saga的那個UnpackMe沒有太大的不同。最明顯的一點是,其中的異常多了很多。大部分是固定模式的int 3解碼。因為一開始打算全程跟,所以一邊跟一邊修改去除junk code的IDC script,寫OllyScript腳本,并用WinHex把解出的代碼貼到ACProtect_Fixed.exe,在IDA中用Load File|Reload the input file加載后對照。

如果在OllyDbg110C下忽略所有異常,運行時報:



1. 關(guān)于int 3解碼

殼中有大量的int 3解碼,一邊執(zhí)行一邊解。具有相同的調(diào)用模式:



在int 3的SHE中(下面的div 0異常也是同一個SEH),當(dāng)exception code為0x80000003時,在Dr0-Dr3中設(shè)置了新的值,即設(shè)置了4個硬件執(zhí)行斷點,就在緊臨int 3下面的位置。這樣執(zhí)行到這4句,會觸發(fā)4次異常。如果在這里F7過,SHE不會執(zhí)行。



當(dāng)由上面的4個斷點引發(fā)異常時:

每次異常,會設(shè)置某個寄存器。4次異常處理必須執(zhí)行,否則寄存器中沒有正確值,下面的解碼會失敗。這樣又順便清除cracker的斷點,是個不錯的主意J。



結(jié)束異常處理后,開始解碼。格式是一樣的,用的register不同。這里可以得到起始地址(。



在jnz下面的地址F4,然后查看前面用于尋址的寄存器的值,減1就是解碼結(jié)束地址。


解完后跟著一個div 0異常。只有anti-debug作用,直接跳過即可。


2. 避開IAT加密

在第16個int 3的解碼過程中,隱藏了IAT加密。其實在OllyDbg的狀態(tài)欄可以看到這附近有不少dll被加載了。

有4處檢查,決定是否特殊處理。在用GetProcAddress得到API的地址后,開始檢查。是否為特殊的API?


相關(guān)文章

最新評論