- 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 版权所有 |
|