天天看点

aspack(工具+手动)脱壳

脱壳前准备:

工具:od,import reconstract,lordpe,peid

材料:一个有aspack壳的文件

步骤:

1.将带壳文件放到peid,查看是什么壳

aspack(工具+手动)脱壳

2.确定文件壳以后,正式开始脱壳步骤。打开lordpe,将选项修改为打开pe,点击确定

aspack(工具+手动)脱壳

3.将文件拖到lordpe,点击(特征值后面)三个点的地方,将重定位已分离勾上,记得一定要保存(这一步能去除随机基址,将进程基址固定在400000,方便脱壳)

aspack(工具+手动)脱壳

4.接下来开始重头戏了,用od打开壳文件,开始脱壳。od会提示代码混淆,选择否

aspack(工具+手动)脱壳

5.od汇编代码界面会停在pushad位置,这时我们按下F8,单步一下,会发现右边的界面esp是红的,这时选中esp,右键,设置硬件断点

aspack(工具+手动)脱壳

6.下好断点以后,F9,运行到断点处,会发现现在是早popad的下一句指令,此时有一个跳转和一个push,然后是函数返回。

aspack(工具+手动)脱壳

7.此时我们处于跳转jnz处,按下F7,单步到push,再按两下F7,就到了函数的oep(此时处在一个call,回车进去能看到四个安全函数,能确定函数入口就在后面)

aspack(工具+手动)脱壳
aspack(工具+手动)脱壳

8.esc返回到回车前的位置,右键该命令行,在此处脱壳

aspack(工具+手动)脱壳

9.弹出的窗口中,取消勾选重建输入表,我们注意到这里的起始地址是40000,因为进行了第三步,所有我们不需要修改这里,同时将入口地点“修正为”那个框的值复制,等会儿有用。然后点击脱壳,名字随便取一个

aspack(工具+手动)脱壳

10.此时不要关闭od,打开我们的import reconstract,准备重建导出表,在该工具的最上面的下拉框内,找到我们正在od调试的进程,选中。

aspack(工具+手动)脱壳

11.附加以后,将第9步复制的值粘贴到oep框,然后iat自动检索,再获取导入表

aspack(工具+手动)脱壳

12.点击修正转储,选中第9步生成的那个文件,我是生成的一个名叫123.exe的文件

aspack(工具+手动)脱壳

13.生成了一个123_.exe文件,我们点击程序,能正常运行

aspack(工具+手动)脱壳

14.再次使用查壳工具peid,可以发现壳不见了,ep变成了.text,脱壳成功

aspack(工具+手动)脱壳

15.为什么前面od脱壳的时候选则call安全函数那个位置,因为,我在后面的指令处脱壳失败了。。。。(丢人hhh)

下一篇: go指针详解

继续阅读