Aspack手动脱壳笔记

最近打了buu的DASCTF的比赛,但我是菜狗,就只做出了re的签到题(雾),还是学到了不少东西,就是Aspack的手动脱壳,记录下。

首先是用peid查壳,可以看到是aspcak壳。(exeinfope也可以,就是启动没有那么快) 在这里插入图片描述 然后在lordPE里面选特征值旁边的三个点 在这里插入图片描述 设置重定位已分离,保存即可 在这里插入图片描述 然后用ollydbg进行动调找函数的入口: 会弹出一个窗口:

压缩代码? 模块“XXXX”的快速统计报告标明其代码段要么被压缩、加密,要么包含大量的嵌入数据,代码分析的结果可能非常不可靠或者完全错误。是否继续分析?

在这里插入图片描述

这里选否

然后程序就会停在一个push处 在这里插入图片描述F8单步进入一下,就会停在一个call处,查看此时旁边的ESP的地址是红的,右键其打个硬件断点: 在这里插入图片描述 然后F9运行到断点处。可以看到停在了一个jnz处 在这里插入图片描述 用F7单步到push处再F7两次,就跳转到另一个界面 在这里插入图片描述 F7步入到call处。此时按下回车可以看到四个安全函数,能确定函数入口就在后面 在这里插入图片描述 摁esc返回。 此时右键刚刚那个call的位置,从这里开始脱壳 在这里插入图片描述 有两处需要特别注意,一处就是取消勾选重建输入表,另一处是要记下修正为后面那传数字。 在这里插入图片描述 然后脱壳,起个随便的名字。

现在不要退出ollydbg

管理员身份运行ImportREConstructor 不是管理员就有可能看不到要脱壳的程序运行 在这里插入图片描述 此处找到要脱壳的文件 在这里插入图片描述 还记得刚刚要记住的那串数字吗? OEP处填入,点击iat自动搜索。 获取导入表, 在这里插入图片描述 然后修正转储到刚刚ollydbg脱壳出的那个文件。 好了到此脱壳结束,可以正常使用ida,F5了。