0
点赞
收藏
分享

微信扫一扫

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )

sunflower821 2022-03-11 阅读 48

文章目录

一、添加硬件断点二、关键代码三、MOV 汇编指令格式四、EAX 寄存器值分析五、使用命令查看 esi+0cc 地址

一、添加硬件断点

在上一篇博客中 , 在子弹个数数据内存地址 07BB2D8C 处添加了 硬件断点 ,

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_逆向

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_windows_02

二、关键代码

添加断点后 , 阻塞拦截的关键代码如下 ;

在 【Windows 逆向】OD 调试器工具 ( OD 调试数据时硬件断点对应的关键代码 | 删除硬件端点恢复运行 ) 一、OD 调试数据时硬件断点对应的关键代码 博客章节介绍到 , 关键代码的位置是阻塞代码的上面一行 ;

在 反编译面板 中 , 地址变黑的那一行代码是被阻塞代码位置 , 上面一行是关键代码 ;

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_OD_03

​关键代码为 :​

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 地址中存储的数据 ;

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_OD_04

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_逆向_05

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_OD_06

五、使用命令查看 esi+0cc 地址

查看 esi+000000CC 地址的值 , 在 OD 中的 Command 中执行

dd esi+0cc

指令 , 跳转到了 07BB2D8C​ 地址处 , 改地址存储的值就是 5A , 也就是 90 , 正好是当前子弹数量 ;

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_OllyDbg_07

【Windows 逆向】OD 调试器工具 ( 分析 OD 硬件断点处的关键代码 | 添加硬件断点 | 关键代码 | MOV 指令 | EAX 寄存器值分析 | 使用命令查看 esi+0cc 地址 )_OD_08

举报

相关推荐

0 条评论