文章目录
一、添加硬件断点
二、关键代码
三、MOV 汇编指令格式
四、EAX 寄存器值分析
五、使用命令查看 esi+0cc 地址
一、添加硬件断点
在之前的博客中,我们在子弹数量数据的内存地址 07BB2D8C 处设置了硬件断点。
二、关键代码
设置断点后,拦截的关键代码如下所示:
在 【Windows 逆向】OD 调试器工具 ( OD 调试数据时硬件断点对应的关键代码 | 删除硬件端点恢复运行 ) 一、OD 调试数据时硬件断点对应的关键代码 博客章节中提到,关键代码位于阻塞代码的上一行。
在反编译面板中,地址变黑的那一行代码是被阻塞的代码位置,其上一行即为关键代码。
关键代码为:
mov eax, dword ptr [esi + CC]
三、MOV 汇编指令格式
MOV 指令的格式为:将 SRC 数值写入到 DST 位置。
MOV DST,SRC
mov eax,[esi+000000CC] 汇编代码及其含义:
[esi+000000CC] 表示基址变址寻址,取出 esi 寄存器的值 05A59478,加上 CC,得到地址 05A59544,这是子弹数据的地址。读取该地址中的值并将其写入到 EAX 寄存器中。
从上述汇编代码中可以看出,子弹数据的动态地址 05A59544 是由基址 05A59478 加上立即数 CC 得来的。
四、EAX 寄存器值分析
其中,EAX 寄存器的值为 5A,该值 5A 是存储在 esi+000000CC 地址中的数据。
五、使用命令查看 esi+0cc 地址
要查看 esi+000000CC 地址的值,可以在 OD 的 Command 中执行以下指令:
dd esi+0cc
执行该指令后,跳转到 07BB2D8C 地址处,该地址存储的值为 5A,即 90,正好是当前子弹数量。
以上就是【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号