Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )相关的知识,希望对你有一定的参考价值。

前言

在上一篇博客 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 ) 中 , 没有找到真实地址 , 本篇博客重新开始一个完整流程 ;





一、查找子弹数据临时内存地址



使用 【Windows 逆向】使用 CE 分析内存地址 ( 运行游戏 | 使用 CE 工具分析游戏内子弹数量对应的内存地址 | 内存地址初步查找 | 使用二分法定位最终的内存地址 ) 博客中的方法 , 找出子弹数据的临时地址 ;


子弹个数 50 , 先进行首次扫描 ;

找出 3000 多地址 ;


开一枪 , 子弹个数变量 49 , 再次扫描 49 , 这次就剩下 197 个地址 ;
( 此处要点击 " 再次扫描 " 按钮 , 不要点成首次扫描 )


再开一枪 , 子弹变成 48 , 此时再次扫描 , 变成 196 个地址 ; 之后无论如何改变子弹个数 , 都是 196 个地址 ;


开始使用二分法筛选子弹个数 , 锁定一部分 , 开一枪 ,

  • 如果子弹个数改变 , 说明锁定的这部分中 , 没有子弹个数数据 , 删除这部分 锁定的数据 ;
  • 如果子弹个数没有改变 , 说明锁定的这部分中 , 有子弹个数数据 , 删除另外一部分的 没有锁定的数据 ;

锁定上半部分 , 开一枪 , 发现子弹个数没有减少 , 说明子弹数据在锁定的数据中 , 删除底部没有锁定的所有数据 ; 选中后按 delete 键即可删除 ;

将剩余数据的后半部分解除锁定 , 选中后 , 点击空格 , 切换 锁定 / 未锁定 状态 , 开一枪后 , 发现子弹个数仍然不变 , 删除 未锁定部分数据 ;


再次解除后半部分数据锁定 , 开一枪 , 数据仍然不变 , 说明子弹数据在锁定的这部分中 , 删除没有锁定的数据 ;


按照上述方法 , 最终只剩下一个数据 ; 给该地址设置 " 子弹数据地址 " 描述 , 将内存地址值改为 888 , 此时游戏内显示的子弹个数也变成了888 ;





二、查找子弹数据真实地址



寻址注意事项 : 寻址时 , 尽量找

MOV 寄存器1 , [寄存器2 + 立即数]

样式的指令 ;


子弹数据地址为 0x019FFB48 , 这是个临时地址 , 每次启动该地址值都不同 ;

选中子弹数据地址 , 按 F5 , 使用 Cheat Engine 调试器载入目前进程 ;

如下指令 , 访问了 0x019FFB48 地址 ,

核心数据 :

指针基址可能是 =019FFAA8
019386B2 - mov edi,[edi+000000A0]

完整数据 :

EAX=00000090
EBX=00000014
ECX=00000078
EDX=019FFAA8
ESI=000001BB
EDI=00000378
EBP=01A0032C
ESP=0019FA88
EIP=019386B8

指针基址可能是 =019FFAA8

019386A6 - mov eax,[edx+000000D8]
019386AC - mov ecx,[edx+000000D4]
019386B2 - mov edi,[edi+000000A0]
019386B8 - sub eax,ecx
019386BA - test edi,edi

查找 019FFAA8 值 , 找到 2 个绿色的地址值 , 绿色的地址值就是我们需要找的值 ;

把第一个绿色地址拉下来 , 双击查看该地址值 , 为

cstrike.exe+5FFD58

点击手动添加地址 , 勾选 " 指针 " 选项 ,

在下面的地址栏中 , 输入 cstrike.exe+5FFD58 ,

在上面的立即数栏中输入 A0 , 这是根据 019386B2 - mov edi,[edi+000000] 指令来的 ,

此时可以看到 , 该指针指向 0x019FFB48 地址 ;

最终得到子弹的真实数据地址 , cstrike.exe+5FFD58 + A0 ; 每次启动 , 子弹数据都是在这个指针指向的内存中 ;

以上是关于Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 )的主要内容,如果未能解决你的问题,请参考以下文章

Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 )

Windows 逆向使用 Cheat Engine 工具进行指针扫描挖掘关键数据内存真实地址 ( 指针扫描 )

Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 逐层分析分析 静态地址 到 动态地址 的寻址 + 偏移 过程 ) ★

Windows 逆向使用 CE 工具挖掘关键数据内存真实地址 ( 查找子弹数据的动态地址 | 查找子弹数据的静态地址 | 静态地址分析 | 完整流程 ) ★

Windows 逆向OD 调试器工具 ( CE 工具通过查找访问的方式找到子弹数据基地址 | 使用 OD 工具附加游戏进程 | 在 OD 工具中查看 05869544 地址数据 | 仅做参考 )(代码

Windows 逆向内存地址分析 ( 动态地址 | 静态地址 | 偏移量 )