Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 数据查找技巧 | 地址访问调试 | 指令选择技巧 | MOV 汇编指令含义 | 基址值搜索 ) ★
Posted 韩曙亮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 数据查找技巧 | 地址访问调试 | 指令选择技巧 | MOV 汇编指令含义 | 基址值搜索 ) ★相关的知识,希望对你有一定的参考价值。
一、查找动态地址
以查找子弹数量内存为例 , 参考 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 查找子弹数据的动态地址 | 查找子弹数据的静态地址 | 静态地址分析 | 完整流程 ) ★ 一、查找子弹数据临时内存地址 博客章节 ;
首先 , 查找到子弹数据的 动态地址 05A59544
, 该步骤很容易 , 多次扫描内存 , 最后使用二分法 , 逐步找到最终的内存地址 ;
然后 , 就是根据 动态地址 05A59544
, 查找到该动态地址是如何计算出来的 ;
二、静态地址查找技巧
根据动态地址 , 查找对应的静态地址 , 以及 寻址 , 偏移 过程 ;
1、地址访问调试
右键点击该地址 , 选择 " 找出是什么访问了这个地址 F5 " 选项 , 就可以对该地址进行调试 , 查询哪个指令为该地址进行了赋值操作 , 也就是 子弹的个数 int 类型数据 是怎么写进去的 ;
也可以左键点击 , 选中该地址 , 直接按 F5 快捷键 ,
此时 , 可以查询 , 哪些汇编指令 , 访问了 子弹数据的 动态地址 05A59544
;
2、指令选择技巧
选择指令的技巧 : 选择指令时 , 不会任意选择的 , 而是有一定的技巧 ;
优先选择
MOV 寄存器 , [寄存器 + 立即数]
格式的指令 , 进行基址查询 ;
在上述类型的指令中 , 优先选择
MOV EAX , [寄存器 + 立即数]
样式的指令 , 大部分游戏中的寄存器都是使用的 EAX 寄存器 ;
第一条指令 , 就符合上述要求 , 那么展开分析第一条指令 ;
指针基址可能是 =05A59478
05C1C0ED - mov eax,[esi+000000CC]
EAX=00000050
EBX=0E1DBB70
ECX=00000000
EDX=00000001
ESI=05A59478
EDI=00000001
EBP=00000000
ESP=0019F2F0
EIP=05C1C0F3
指针基址可能是 =05A59478
05C1C0E6 - je mp.CBasePlayerItem::DestroyItem+20D
05C1C0E8 - mov ecx,00000001
05C1C0ED - mov eax,[esi+000000CC]
05C1C0F3 - mov edx,[esi+000000D0]
05C1C0F9 - cmp eax,edx
3、MOV 汇编指令含义
MOV 指令格式 : 将 SRC 数值,写入到 DST 位置 ;
MOV DST,SRC
mov eax,[esi+000000CC]
汇编代码和含义 :
[esi+000000CC]
是 基址变址寻址 , 取出 esi 寄存器的值 05A59478
, 与 CC
相加 , 得到一个地址 05A59544
, 这个地址就是子弹数据的地址 , 读取该地址中的值 , 写入到 EAX 寄存器中 ;
从上述汇编代码中 , 可以知道 , 子弹数据的动态地址 05A59544
, 是由 基址 05A59478
加上立即数 CC
得来的 ;
4、基址值搜索
那么基址 05A59478
又是如何得来的呢 ;
搜索 基址值 所在内存位置 : 那么后续在整个内存中 , 搜索这个基址 05A59478
值 , 查询该值所在的地址 ;
F5 调试 基址值 如何计算得到的 : 然后查询该地址的值是哪条汇编指令计算出来的 , 需要使用 F5 调试 , 选择一条汇编指令进行分析 , 汇编指令选择方法 : 优先选择 MOV EAX , [寄存器 + 立即数]
样式的汇编指令 ;
以上是关于Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 数据查找技巧 | 地址访问调试 | 指令选择技巧 | MOV 汇编指令含义 | 基址值搜索 ) ★的主要内容,如果未能解决你的问题,请参考以下文章
Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 )
Windows 逆向使用 Cheat Engine 工具进行指针扫描挖掘关键数据内存真实地址 ( 指针扫描 )
Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★
Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 查找子弹数据的动态地址 | 查找子弹数据的静态地址 | 静态地址分析 | 完整流程 ) ★
Windows 逆向OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看 05869544 地址数据 | 仅做参考 )(代码