AsPACK v2.11快速脱壳指南
【破文标题】AsPACK v2.11快速脱壳指南【破文作者】王猛
【作者邮箱】[email protected]
【作者主页】www.81mil.cn
【破解工具】OllyDBG
【破解平台】Windows SP2
【软件名称】PYG 5.4 Cracker 小组 课外练习1
【软件大小】174 KB
【原版下载】https://www.chinapyg.com/viewthread.php?tid=4772
【保护方式】注册码
【软件简介】PYG Cracker 学习小组课外练习题 一
【破解声明】只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】
一、查壳分析
利用PEiD可以识别到这个程序使用了AsPack 2.11来加壳。
二、脱壳过程
用OllyDBG加载Crackme1后,停在这里:
0046A001 >60 PUSHAD ; OllyDBG加载后停在此行
0046A002 E9 3D040000 JMP CRACKME1.0046A444
0046A007 45 INC EBP ; 鼠标选中后,按F4跟到此行。
按照注释部分操作,现在按F4,代码有点变化了:
0046A001 >60 PUSHAD ; OllyDBG加载后停在此行
0046A002 E9 3D040000 JMP CRACKME1.0046A444
0046A007 E8 24040000 CALL CRACKME1.0046A430 ; 鼠标选中后,按F4跟到此行。
按快捷键Ctrl+S打开查找命令序列窗口,搜索下面4行特征码:
MOV EAX,1
RETN 0C
PUSH 0
RETN
简单用下面两行估计也可以吧??
PUSH 0
RETN
我们找到了下面的代码:
0046A3AD B8 01000000 MOV EAX,1 ; 搜索过来了,要找的4行特征码
0046A3B2 C2 0C00 RETN 0C ; 都在,就这里了!哈哈!!!
0046A3B5 68 00000000 PUSH 0 ; 选中本行后按F4,找到OEP地址了:004584F0。
0046A3BA C3 RETN ; 跳到OEP!(F7或F8到这里都可以)
上翻看看上边的代码,有什么?
0046A3AA 61 POPAD ; 看到POPAD没?快脱了!
选中0046A3B5这一行,按F4跟过去。
0046A3AD B8 01000000 MOV EAX,1 ; 搜索过来了,要找的4行特征码
0046A3B2 C2 0C00 RETN 0C ; 都在,就这里了!哈哈!!!
0046A3B5 68 F0844500 PUSH CRACKME1.004584F0 ; 选中本行后按F4,找到OEP地址了:004584F0。
0046A3BA C3 RETN ; 跳到OEP!(F7或F8到这里都可以)
注意0046A3B2这行代码,0045844F0就是我们要找的OEP!按F7或者F8往下跟,我们就看到入口了!
004584F0 55 PUSH EBP ; 这里就是真正OEP!
004584F1 8BEC MOV EBP,ESP
004584F3 83C4 F4 ADD ESP,-0C
004584F6 B8 A0834500 MOV EAX,CRACKME1.004583A0
004584FB E8 30DAFAFF CALL CRACKME1.00405F30
三、DUMP和修复
在入口点,利用OllyDUMP插件,我们将程序从内存中DUMP出来,最好不要选择重建输入表,我们一会儿用ImpREC建立。在这里我将DUMP出来的程序命名为crackme1_unpacked.exe。
启动带壳子的crackme1.exe,用ImpREC读取该程序。需要的IAT信息中OEP填入:000584F0,点“自动查找IAT”按钮,当IAT信息读取完成之后,点“修复转储文件”按钮在新打开的对话框中选择crackme1_unpacked.exe,短暂等待之后修复好的文件将命名为 crackme1_unpacked_.exe,脱壳完成!
------------------------------------------------------------------------
【破解总结】脱这个壳子时,千万不要被一开始出现的JMP所迷惑,直接跳到第三行,然后查找特征码就可以秒杀OEP了!
------------------------------------------------------------------------
【版权声明】本文由王猛(www.81mil.cn)原创撰写,转载请注明作者并保持文章的完整, 谢谢!
[ 本帖最后由 ruyi7952 于 2007-2-14 20:34 编辑 ] 如果直接用PEID呢? 用PEID,使用它的通用脱壳插件可以自动找到OEP,将脱出来的文件用IMPREC修复就可以了。 按照注释部分操作,现在按F4,代码有点变化了:
0046A001 >60 PUSHAD ; OllyDBG加载后停在此行
0046A002 E9 3D040000 JMP CRACKME1.0046A444
0046A007 E8 24040000 CALL CRACKME1.0046A430 ; 鼠标选中后,按F4跟到此行。
请问,为什么会发生这种变化? 原帖由 lingshan 于 2007-2-15 17:38 发表
按照注释部分操作,现在按F4,代码有点变化了:
0046A001 >60 PUSHAD ; OllyDBG加载后停在此行
0046A002 E9 3D040000 JMP CRACKME1.0046A444
...
因为代码开始运行了,在深入的我也说不出来了。
我对这些东西一点了解都没有,抱歉!我刚学三天而已啊! 还是不太懂!!谢谢了!!! 谢谢了 学习中 我发现我很难看懂文字的东西,还真郁闷 也来学习了
页:
[1]
2