0
点赞
收藏
分享

微信扫一扫

内存镜像法脱壳


内存镜像法一般用于稍微复杂的脱壳,在本例中不是很适用,但也能找到OEP。

如果在资源段加一个断点,第一次访问资源段地址的是脱壳程序。

首先用Ollydbg打开notepad.exe文件

在菜单栏的【选项】,选择【调试设置】,然后切换到【异常】标签页

内存镜像法脱壳_菜单栏


内存镜像法脱壳_程序调试_02


勾选该页上的各种忽略异常,然后关闭按下​​Alt+M​​​键打开内存镜像,找到notepad的​​资源段​​,也就是

内存镜像法脱壳_菜单栏_03


地址=00407000,大小=00005000的​​.rsrc​​​段,也就是第一个看到的​​.rsrc​​资源段,选中这行按下F2设置断点然后按下F9运行,程序执行到了​​0040D75F​​处

内存镜像法脱壳_菜单栏_04

然后再按Alt+M打开内存镜像,在​​.rsrc​​​上面的​​.text​​代码段(也就是notepad的代码段)按F2设下断点

继续按下F9运行。

内存镜像法脱壳_程序调试_05

正常情况下,这次F9运行会到达OEP继续执行,但是对于这次的notepad.exe我们运行后会弹出一个提示框。

提示称应用程序发生异常,位置为​​004010CC​​​,那么实际上​​004010CC​​也就是我们的OEP了.

我们选择取消,进行程序调试。

因为我设置为Ollydbg为默认调试器,提示称无法继续附加到我们调试的这个进程(windows一次只能调试一个进程)
我们关闭这个弹出的Ollydbg,回到原先的调试的Ollydbg里

会发现我们已经到达了OEP。

右键【分析】选择【从模块中删除分析】后,就是OEP处的真正代码了


举报

相关推荐

LLDB 手动脱壳

脱壳--00.upx.exe

0 条评论