exe手动进行脱壳详细步骤方法 exe软件脱壳教程( 四 )


无数次的SHIFT+F9之后,在寄存器窗口可以看到指针以及能够正常显示:

exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
然后此时F8单步,找magic jump……看小生大大的视屏是通过分析疑似CRC跳转得到magic jump的位置:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
这里记下来magic jump的地址是0x0046973B,然后清空udd文件,删除硬件断点,再次重新运行程序,然后在idata下内存断点停住,然后Ctrl+G找到magic jump位置处,修改跳转:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
然后在code段下内存断点:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
然后SHIFT+F9执行,停下来就到了OEP的位置:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
这时候再dump程序,IAT表已经被修复,可以直接获得脱壳版程序:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
这里尝试使用了另外两种脱壳方法,并且通过预先找OEP的方式,修复了CRC校验后,直接dump到了IAT被修复了的程序 。
3.3 PEncrypt脱壳笔记
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
先把程序扔到OllyIce里面,然后程序停在这里,看起来蛮怪的:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
好吧,重新加载程序,尝试使用最后一次异常法,不忽略所有异常,然后使用异常计数器插件,程序停在最后一次异常处:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
如果此时F8单步下去,程序会触发异常处理,然后又到不了OEP了 。这时需要看一下堆栈数据情况:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
这时需要在0040CCD7处F2下断点,然后SHIFT+F9执行,可以跳过这个坑:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
然后接下来就是F8+F4的操作,一路直到OEP:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
用LoadPE脱壳,然后用ImportREC修复后,虽然没有无效指针,但是还是不能运行:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
这时候用LoadPE的重建PE功能:
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图
exe手动进行脱壳详细步骤方法 exe软件脱壳教程

文章插图

推荐阅读