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

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

首先用Ollydbg打开notepad.exe文件

在菜单栏的【选项】,选择【调试设置】,然后切换到【异常】标签页
内存镜像法脱壳
内存镜像法脱壳
勾选该页上的各种忽略异常,然后关闭

按下Alt+M键打开内存镜像,找到notepad的资源段,也就是
内存镜像法脱壳
地址=00407000,大小=00005000的.rsrc段,也就是第一个看到的.rsrc资源段,选中这行按下F2设置断点

然后按下F9运行,程序执行到了0040D75F
内存镜像法脱壳

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

继续按下F9运行。
内存镜像法脱壳

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

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

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

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

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

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

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-02-27
  • 2021-09-02
  • 2022-12-23
  • 2021-07-03
  • 2021-05-23
猜你喜欢
  • 2021-10-06
  • 2021-06-12
  • 2022-12-23
  • 2021-10-17
  • 2021-09-17
  • 2022-12-23
  • 2021-12-31
相关资源
相似解决方案