- UID
- 2466
注册时间2005-7-22
阅读权限20
最后登录1970-1-1
以武会友
该用户从未签到
|
【调试环境】:WinXP、PEiD、ODbyDYK v1.10、ImportREC1.6 Final
【学习目的】:手动脱ASProtect 1.2 / 1.2c-> Alexey Solodovnikov壳
【目标软件】:ABC Amber Excel Converter V1.26
【下载连接】:(自己去搜索)
【作者声明】:我是一只小菜鸟,偶得一点心得,愿与大家分享
------------------------------------------------------------------------------------------
1.前言
前天在一个论坛看到一篇有关该软件脱壳的教程,想下来学习一下,在那个教程里是用
ASProtect 1.2x - 1.3x [已经注册] -> Alexey Solodovnikov加的壳(ABC Amber Excel
Converter 1.20 多国语言),这几天在学习脱ASProtect壳,就下来看了一下,没想到这
个是ASProtect 1.2 / 1.2c-> Alexey Solodovnikov的壳,有点失望。不过琢磨了一下,发
现了一个可以快速脱ASProtect 1.2 / 1.2c-> Alexey Solodovnikov的方法,大家遇到这个
加壳方式时不防用来试试,是否通用,我也不知道,但是在这个软件是可以的。
2.脱壳过程
OD载入程序,忽略所有异常,再添加以下几个异常C0000005(ACCESS VIOLATION)、C000001D(ILLEGAL
INSTRUCTION)、C000001E(INVALID LOCK SEQUENCE)、C0000096(PRIVILEGED INSTRUCTION),请检查
自己的OD设置。
入口代码:
00401000 a> 68 01C06B00 push abcexcel.006BC001
00401005 C3 retn---------------------------F8下来到这里,看寄存器ESP=12ffc0
00401006 A2 8034479C mov byte ptr ds:[9C473480],al
0040100B E7 9E out 9E,eax
0040100D 49 dec ecx
0040100E 3C 90 cmp al,90
00401010 E0 73 loopdne short abcexcel.00401085
00401012 90 nop
00401013 21E8 and eax,ebp
于是在命令行下:hr 12ffc0 F9运行
006BC002 E8 1B000000 call abcexcel.006BC022--------第一次硬件中断在这里
006BC007 - E9 FC8DB50F jmp 10214E08
006BC00C 06 push es
006BC00D 0000 add byte ptr ds:[eax],al
006BC00F 8BFE mov edi,esi
006BC011 B9 97000000 mov ecx,97
006BC016 AD lods dword ptr ds:[esi]
006BC017 35 78563412 xor eax,12345678
006BC01C AB stos dword ptr es:[edi]
006BC01D 49 dec ecx
006BC01E ^ 75 F6 jnz short abcexcel.006BC016
006BC020 EB 04 jmp short abcexcel.006BC026
006BC022 5D pop ebp
006BC023 45 inc ebp
006BC024 55 push ebp
006BC025 C3 retn
继续F9运行
00CDA213 8901 mov dword ptr ds:[ecx],eax
00CDA215 03C3 add eax,ebx
00CDA217 894424 1C mov dword ptr ss:[esp+1C],eax
00CDA21B 61 popad ---------------------第二次硬件中断在这里
00CDA21C FFE0 jmp eax-----★飞向光明顶(这个词很cool,借用一下)
00CDA21E 0060 E8 add byte ptr ds:[eax-18],ah
00CDA221 06 push es
00CDA222 0000 add byte ptr ds:[eax],al
00CDA224 008B 642408EB add byte ptr ds:[ebx+EB082464],cl
00CDA22A 0C 33 or al,33
00CDA22C F664FF 36 mul byte ptr ds:[edi+edi*8+36]
00CDA230 64:8926 mov dword ptr fs:[esi],esp
00CDA233 FE06 inc byte ptr ds:[esi]
00CDA235 ^ EB E8 jmp short 00CDA21F
第二次硬件中断后,F8两下就到OEP了:
0062A61C 55 push ebp-----------------OEP
0062A61D 8BEC mov ebp,esp
0062A61F 81C4 E8FEFFFF add esp,-118
0062A625 53 push ebx
0062A626 56 push esi
0062A627 33C0 xor eax,eax
0062A629 8945 E8 mov dword ptr ss:[ebp-18],eax
0062A62C 8945 F0 mov dword ptr ss:[ebp-10],eax
0062A62F 8945 EC mov dword ptr ss:[ebp-14],eax
0062A632 B8 3C9F6200 mov eax,abcexcel.00629F3C
0062A637 E8 40DDDDFF call abcexcel.0040837C
0062A63C 33C0 xor eax,eax
0062A63E 55 push ebp
0062A63F 68 06A76200 push abcexcel.0062A706
0062A644 64:FF30 push dword ptr fs:[eax]
0062A647 64:8920 mov dword ptr fs:[eax],esp
0062A64A 8D55 EC lea edx,dword ptr ss:[ebp-14]
用OD插件直接dump出来,用ImportREC修复便可了,OEP:22A61C(PEID查看dump出来文件的数值)
“自动搜索”,先Level 1修复,再ASProtect 1.22插件修复即可。
还是运行修复后的程序,出错!具体的修复方法参考---密界脱壳文集第二版[1]---51Crack的
文章《菜鸟也脱壳--ABC Amber CHM Converter 1.11脱壳》,修复后的程序可以正常运行。 |
|