ruyi7952 发表于 2007-2-14 17:59:05

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 编辑 ]

月之精灵 发表于 2007-2-14 20:15:57

如果直接用PEID呢?

ruyi7952 发表于 2007-2-14 20:35:34

用PEID,使用它的通用脱壳插件可以自动找到OEP,将脱出来的文件用IMPREC修复就可以了。

lingshan 发表于 2007-2-15 17:38:53

按照注释部分操作,现在按F4,代码有点变化了:

0046A001 >60            PUSHAD                                 ; OllyDBG加载后停在此行
0046A002    E9 3D040000   JMP CRACKME1.0046A444
0046A007    E8 24040000   CALL CRACKME1.0046A430                   ; 鼠标选中后,按F4跟到此行。






请问,为什么会发生这种变化?

ruyi7952 发表于 2007-2-15 19:05:19

原帖由 lingshan 于 2007-2-15 17:38 发表
按照注释部分操作,现在按F4,代码有点变化了:

0046A001 >60            PUSHAD                                 ; OllyDBG加载后停在此行
0046A002    E9 3D040000   JMP CRACKME1.0046A444
...
因为代码开始运行了,在深入的我也说不出来了。
我对这些东西一点了解都没有,抱歉!我刚学三天而已啊!

nox 发表于 2007-2-17 09:05:41

还是不太懂!!谢谢了!!!

kaihua 发表于 2007-2-18 13:32:50

谢谢了 学习中

H2SO4 发表于 2007-2-18 20:45:03

我发现我很难看懂文字的东西,还真郁闷

caiyiqun 发表于 2007-2-18 21:18:18

wolf224 发表于 2010-5-30 09:21:49

也来学习了
页: [1] 2
查看完整版本: AsPACK v2.11快速脱壳指南