AcProtect 1.41 外壳分析[1]
[入库:2005年8月19日] [更新:2007年3月24日]
【目 标】: 应作者要求,这里不贴上软件名
【工 具】:olydbg1.1(diy版)、lordpe、importrec1.6f
【任 务】:分析外壳
【操作平台】:windows 2003 server
【作 者】: loveboom[dfcg][fcg][us]
【相关链接】: ......
【简要说明】: 脱acprotect的壳并不多,以前最多只是大概的脱一下,对壳有流程并没有多少认识,前几天帮朋友了一下这个软件,也许
是我水平太菜了,也许是脱这个东西脱的比较少,在脱这个软件花了我很多时间,搞的过程中还很容易出小问题。还有一个原因是脱了一下新
版的aspr 2.x stolen code让我看到头疼,虽然坚持了,但现在还有一小部分没有解决:-(。没办法两个都壳都是难搞的,本着看aspr的东西稍
微多了点,因此牺牲了睡觉时间,帮自己补了下课。壳的思路比较新,边执行边解壳,解压一段执行后又还原回去,代码替换,embedd protect
等等。这么有吸引力,当然不要错过了。因为我对rsa无key怎么突破之类的没有一点了解,再者也没有见过软件用rsa lock code.,所以这次没
有分析key相关的东西。我这次和以前的文章有点不同,这次为了更细的分析出壳的各模块功能,把相关的模块放在独立的地方,也不像以前那
样,插来插去的。不是很方便自己查看。也很久没有细细的去品尝壳了。也是该“享受”一下。
【详细过程】:
写在前面的,你只是想知道怎么脱壳的话,那么这你可跳过这一章节,这一章节是分析壳的每个部分,是比较漫长的。如果你完全分析好了,
后面脱就简单了。
由于是一步一步的走,所以不用什么特别的设置了。唯一一点就是要很磨得下去。打开od,忽略全部异常。准备眼睛再度近视几度。
泡上一杯水,然后开始这次的旅程:
为了防止壳的检测,这次我没有去除花指令直接动态跟踪分析了下。
0057c000 > 60 pushad ; ep
0057c001 e8 01000000 call 0057c007 ; 程序一开始就反复解壳代码
0057c006 - 72 83 jb short 0057bf8b
0057c008 04 24 add al,24
0057c00a 06 push es
0057c00b c3 retn
0057c00c 85c3 test ebx,eax
0057c00e 76 01 jbe short 0057c011
0057c010 4b dec ebx
0057c011 87d8 xchg eax,ebx
0057c013 e8 01000000 call 0057c019
0057c018 - 76 83 jbe short 0057bf9d
......
0057c204 64:ff30 push dword ptr fs:[eax]
0057c207 64:8920 mov dword ptr fs:[eax],esp
0057c20a cc int3
0057c20b 90 nop
0057c20c f8 clc
0057c20d 90 nop
0057c20e fc cld
......
0057c29f 64:8f05 0000000>pop dword ptr fs:[0] ; 直接f2,然后执行到这里,
0057c2a6 83c4 04 add esp,4
0057c2a9 7c 03 jl short 0057c2ae ; 这里是开始还原的地址
0057c2ab 7d 01 jge short 0057c2ae
......
0057c436 4a dec edx
0057c437 ^ 0f85 7fffffff jnz 0057c3bc ; 没有解压完则跳回继续解压
0057c43d eb 01 jmp short 0057c440
壳一开始就通过几个异常来循环解压出壳的代码。解压的方法很简单的:
mov ebx,dword ptr ds:[eax]
xor ebx,edi
ror ebx,1f
add eax,4
xor ebx,dword ptr ds:[eax]
add eax,-4
mov dword ptr ds:[eax],ebx
xor edi,45ba1300
继续:
......
0057c7f8 64:8f05 0000000>pop dword ptr fs:[0] ; 0012ffe0
0057c7ff 83c4 04 add esp,4
0057c802 e9 bb4a0100 jmp 005912c2 ; 全部解压完了跳去执行壳的代码
......
005912c2 e8 39aeffff call <sub_getebp >
; jmp到这里
005912c7 e8 00000000 call 005912cc
005912cc 5b pop ebx
005912cd 2b9d 0e204000 sub ebx,dword ptr ss:[ebp+40200e] ; 计算imagebase
005912d3 81eb cc520100 sub ebx,152cc
005912d9 899d 46f84000 mov dword ptr ss:[ebp+40f846],ebx ; 计算出的imagebase保存到 [ebp+40f846]=[0058a846]=400000
005912df 899d 7bfd4000 mov dword ptr
本文关键:AcProtect 1.41 外壳分析
本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)