Windows 逆向OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )(代码
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 逆向OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | 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 地址 )(代码的主要内容,如果未能解决你的问题,请参考以下文章
Windows 逆向OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看 05869544 地址数据 | 仅做参考 )(代码
Windows 逆向OD 调试器工具 ( OD 工具简介 | OD 工具与 CE 工具对比 )
Windows 逆向OD 调试器工具 ( CE 中获取子弹动态地址前置操作 | OD 中调试指定地址的数据 )
Windows 逆向OD 调试器工具 ( OD 调试数据时硬件断点对应的关键代码 | 删除硬件端点恢复运行 )
Windows 逆向OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看子弹数据地址 | 推荐 )
Windows 逆向OD 调试器工具 ( 推荐汉化版的 OD 调试工具 | 吾爱破解专用版Ollydbg | 备选工具 )