- UID
 - 8764
 
 注册时间2006-3-1
阅读权限10
最后登录1970-1-1
周游历练 
  
 
 
 
TA的每日心情  | 开心 2018-1-9 11:05 | 
|---|
 
  签到天数: 2 天 [LV.1]初来乍到  
 | 
 
Asprotect V2.X 的脱壳与修复的总结及练习 
 
 
 
关于Asprotect V2.X 的脱壳与修复, loveboom的《ASPROTECT 2.x 脱壳系列》已经非常的全面与经典.  
 
pc007.com 版权所有 
 
本人在此只是依葫芦画瓢, 并将有些地方再详细的解释一下, 给菜鸟们脱Asprotect V2.X时进行参考, 高手就不要看了. pc007.com  
 
 
先在理论上研讨一下, 由于编译器的不一样, C 与 Delphi 所编译的汇编结果有差别, Asprotect 加壳时处理的也不一样.  
 
本文来自 pc007.com 
 
 
先假设有一程序:  
 
007电脑资讯 
 
 
OEP: 00401000 
IAT: 00407000 - 00407FFF 
在00401100 CALL DLL1.API1 
在00401180 CALL DLL1.API2  
 
pc007.com 
 
 
Ospr 加壳后, 好多的API CALL 被改成 CALL 12000000  
 
007电脑资讯 
 
 
然后开始研究.  
 
007电脑资讯 
 
 
1. C/C++ Program  
 
pc007.com 
 
 
1.1) 未被加壳的程序  
 
007电脑资讯 
 
 
00401000    55              PUSH EBP                                  ; 程序 OEP 
00401001    8BEC            MOV EBP, ESP 
... 
00401100    FF15 00704000   CALL DWORD PTR DS:[00407000]              ; DLL1.API1 
00401106    ... 
00401180    FF15 04704000   CALL DWORD PTR DS:[00407004]              ; DLL1.API2 
00401186    ...  
 
007电脑资讯 
 
 
 
********* IAT 可能是这样的 ************ 
00407000    DD  7C571000    // DLL1.API1 
00407004    DD  7C572000    // DLL1.API2 
... 
004070FC    DD  00000000 pc007.com  
 
00407100    DD  7D00XXXX    // DLL2.API1 
... 
004071FC    DD  00000000 pc007.com  
 
... pc007.com 版权所有  
 
00407F00    DD  7F00XXXX    // DLLn.API1 
... 
00407FFC    DD  00000000  
 
pc007.com 版权所有 
 
 
   
 
pc007.com 
 
 
1.2) 被 Asprotect 加壳后的程序在OEP  
 
欢迎访问007电脑资讯 
 
 
00401000    55              PUSH EBP                                  ; 程序 OEP 
00401001    8BEC            MOV EBP, ESP 
... 
00401100    E8   FBEEBF11   CALL 12000000                             ; 壳 
00401105    ?? 
00401106    ... 
00401180    E8   7BEEBF11   CALL 12000000                             ; 壳  
 
www.pc007.com 
 
 
00401185    ?? 
00401186    ...  
pc007.com 
 
 
*************IAT************************ 
00407000    DD  ????????    // 被加密的 DLL1.API1 信息 
00407004    DD  7C572000    // 未加密的 DLL1.API2  
 
007电脑资讯 
 
 
ASPR 将许多的API CALL 都改成了统一的 CALL 12000000  
即改 CALL DWORD PTR DS:[xxxxx] 成 CALL 12000000  
 
pc007.com 
 
 
 
 
本文来自 pc007.com 
 
作    者: blackeyes  
 
www.pc007.com 
 
 
关于Asprotect V2.X 的脱壳与修复, loveboom的《ASPROTECT 2.x 脱壳系列》已经非常的全面与经典. 本文来自 pc007.com  
 
本人在此只是依葫芦画瓢, 并将有些地方再详细的解释一下, 给菜鸟们脱Asprotect V2.X时进行参考, 高手就不要看了. pc007.com 版权所有  
 
 
先在理论上研讨一下, 由于编译器的不一样, C 与 Delphi 所编译的汇编结果有差别, Asprotect 加壳时处理的也不一样. 007电脑资讯  
 
先假设有一程序:  
 
pc007.com 版权所有 
 
 
OEP: 00401000 
IAT: 00407000 - 00407FFF 
在00401100 CALL DLL1.API1 
在00401180 CALL DLL1.API2  
 
007电脑资讯 
 
Ospr 加壳后, 好多的API CALL 被改成 CALL 12000000 pc007.com  
 
然后开始研究. www.pc007.com  
 
1. C/C++ Program 欢迎访问007电脑资讯  
 
1.1) 未被加壳的程序  
 
www.pc007.com 
 
 
00401000    55              PUSH EBP                                  ; 程序 OEP 
00401001    8BEC            MOV EBP, ESP 
... 
00401100    FF15 00704000   CALL DWORD PTR DS:[00407000]              ; DLL1.API1 
00401106    ... 
00401180    FF15 04704000   CALL DWORD PTR DS:[00407004]              ; DLL1.API2 
00401186    ... 007电脑资讯  
 
 
********* IAT 可能是这样的 ************ 
00407000    DD  7C571000    // DLL1.API1 
00407004    DD  7C572000    // DLL1.API2 
... 
004070FC    DD  00000000  
 
007电脑资讯 
 
00407100    DD  7D00XXXX    // DLL2.API1 
... 
004071FC    DD  00000000 本文来自 pc007.com  
 
... www.pc007.com  
 
00407F00    DD  7F00XXXX    // DLLn.API1 
... 
00407FFC    DD  00000000 www.pc007.com  
 
  pc007.com 版权所有  
 
1.2) 被 Asprotect 加壳后的程序在OEP  
 
pc007.com 版权所有 
 
 
00401000    55              PUSH EBP                                  ; 程序 OEP 
00401001    8BEC            MOV EBP, ESP 
... 
00401100    E8   FBEEBF11   CALL 12000000                             ; 壳 
00401105    ?? 
00401106    ... 
00401180    E8   7BEEBF11   CALL 12000000                             ; 壳 www.pc007.com  
00401185    ?? 
00401186    ...  
 
pc007.com 版权所有 
 
 
*************IAT************************ 
00407000    DD  ????????    // 被加密的 DLL1.API1 信息 
00407004    DD  7C572000    // 未加密的 DLL1.API2 欢迎访问007电脑资讯  
 
ASPR 将许多的API CALL 都改成了统一的 CALL 12000000  
即改 CALL DWORD PTR DS:[xxxxx] 成 CALL 12000000 pc007.com 版权所有 |   
 
 
 
 |