文章目录
提示

其实这四种都是ESP不变总结出来的,刚开始的时候记住ESP的值,它的值为0x19FF74
单步跟踪
单步跟踪记住一点:往下跳转指令让它实现,往上跳转指令直接在跳转指令的下一行指令进行F4操作。
(1)例如这种情况让它直接跳转:

(2)这种情况直接在点击0x40FFBA地址行,然后点击F4:

这种情况操作如(2):

这种情况操作如(2):

遇到这种的话,比较特殊,因为你在地址0x410030执行F4操作后直接进入了一个函数了,所以在0x410036按下F4

在执行完popad这行操作后,ESP的值变回了0x19FF74:

所以在附近看看有没有什么跳转,跳转过后就是OEP,因为ESP已经恢复原值了。

执行后:

ESP的值还是0x19FF74,可以脱了。


然后点击DUMP就行,至于要不要重建输入表的话,进行两次试试,看看哪一个程序打得开就行。GAMEOVER
ESP定律
观察ESP的值,只要一改变就可进行操作。

执行一行后:

ESP的值从0x19FF74变成0x19FF54。
接着操作如下:
第一步:

把它dump在数据区显示
第二步(然后设置一个硬件断点):

接着点击运行

就运行到这里了,再运行一步

ESP还原喽,还是不变哦,紧接着继续运行一下跳转,就可以Dump了

2次内存镜像
点击内存区域(即Memory)操作:可以直接点击M
,也可以点击View---->Memory,或者直接Alt+M
第一次断点(程序data段领空区域)

按F2设置一个断点,接着运行。,就到达了这里

第二次断点

记住断点肯定下在程序领空区。。然后运行

紧接着到达了这里,接着运行几步即可

注意别踩这个函数坑,前面已经说过,不是不能进去,而是进去后进行无意义的分析,只会让你头晕。


一步直达
因为发现了pushad,所以肯定有popad,成对出现
搜索操作

或者直接Ctrl +F ,输入popad

记住这里不要勾选
下断点

在popad这里下一个断点,即按下F2,然后运行即可
本文详细介绍了如何利用ESP寄存器的值变化进行单步跟踪和内存断点设置,以定位程序的入口点和关键操作。通过观察ESP的值,可以在执行过程中找到函数调用和跳转指令,进而有效地进行调试和分析。内容包括对不同情况的操作指导,如直接跳转、设置硬件断点等,并提供了具体的步骤和截图示例。
7708





