nspack脱壳(手动,esp法)

江枫思渺然 提交于 2019-11-28 19:49:28

1.查壳,直接丢查壳工具就可以查看,进行重定位已分离(不知道的可以看我上一篇文章https://mp.csdn.net/mdeditor/100102533#)
在这里插入图片描述
2.用od打开,可以发现pushfd和pushad,f8单步执行两下,在右边选中esp,下硬件断点
在这里插入图片描述
3.f9执行到硬件断点,此时可以看到popfd和下面一个jmp,先f8一次
在这里插入图片描述
4.再f8一次,可以看到代码被od误解析成数据,此时,ctr+a,可以看到如下代码界面
在这里插入图片描述
5.回车进入这个call,发现其有很明显的四个call,这是主函数前的安全函数常调用的call
在这里插入图片描述
6.esc回到call之前,下面的jmp就是跳像oep,此时需要先把硬件断点取消掉,不然f8过不去,会先遇到硬件断点。(方法:od右上角有一栏,点击其中原点那个图标,就可以看到硬件断点了)
在这里插入图片描述
7.f8两次,调到oep
在这里插入图片描述
8.使用od自带的工具脱壳,右键—使用od脱壳调试教程—取消勾选重建输入表—随便取个名字保存—od别关
在这里插入图片描述
在这里插入图片描述
9.打开import reconstructor,附加一个活动进程—选中od正在调试的程序
在这里插入图片描述
10.将刚刚的地址复制到oep栏,按下图顺序操作
在这里插入图片描述
11.修正转储,选中od刚才dump出来的程序,打开,就可以生成脱壳后的程序
在这里插入图片描述
在这里插入图片描述
12.打开dump好的123_.exe,发现能运行,用查壳工具,壳不见了(因为工具原因,peid显示还有壳,die显示没有壳了)
在这里插入图片描述
13.逆向这种东西,就是要多学会几种工具,你不能保证哪个工具一定不会出错。好了,that’s all for nspack

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!