ESP定律的一些理解
ESP定律,其实就是堆栈平衡的利用。

先F8单步运行,发现只有esp变了,其他寄存器都被存到堆栈中。
我们在数据窗口中记住ESP的位置,因此下一次访问的时候,会执行pop操作,把保存的值弹出来。

因此我们在这个位置下一个硬件访问断点,

然后F9运行到下一次访问esp的位置。继续往下走F8就是到达OEP的位置,到达这个位置,别忘了把前边设置的硬件断点给删除掉。

这个时候,发现代码不一样,这其实就是解压之后的程序的代码,我们右键-->删除分析

就会恢复原来代码的样子。

这个过程也可以利用od自带的插件,把上边的2步一起完成。

这个时候,我们利用od自带的插件把程序从内存中dump出来,然后保存起来。

我们保存的时候,保存2份,一份是“重建输入表”的,一份不需要“重建输入表”的,然后看哪个能运行起来。


浙公网安备 33010602011771号