【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 查找子弹数据的动态地址 | 查找子弹数据的静态地址 | 静态地址分析 | 完整流程 ) ★
文章目录
前言
在博客 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( CE 找出子弹数据内存地址是临时地址 | 挖掘真实的子弹数据内存地址 ) 中 , 没有找到真实地址 , 本篇博客重新开始一个完整流程 ;
在博客 【Windows 逆向】使用 CE 工具挖掘关键数据内存真实地址 ( 完整流程演示 | 查找临时内存地址 | 查找真实指针地址 ) 中 , 找到的地址是界面中显示的子弹地址 , 并不是实际的子弹地址 , 查找比较简单 ;
本篇博客尝试查找真实子弹地址 , 这个地址查找起来比较麻烦 ;
一、查找子弹数据临时内存地址
子弹个数 100 时 , 首次扫描 , 找到 4938 个内存值为 100 的地址 ;
开一枪以后 , 再次扫描 99 值 , 就剩下 196 个地址了 , 之后再次减少子弹个数 , 继续扫描 , 仍然是 196 个地址 ;
参考 【Windows 逆向】使用 CE 分析内存地址 ( 运行游戏 | 使用 CE 工具分析游戏内子弹数量对应的内存地址 | 内存地址初步查找 | 使用二分法定位最终的内存地址 ) 博客 , 使用二分法定位真实子弹数据 ;
最终结果为 : 子弹个数的动态地址是 05A59544
;
二、查找子弹数据的静态地址
1、调试内存地址 05A59544 获取基址 05A59478
选中 05A59544
地址 , 按 F5 调试按钮 , 得到基址 05A59478
;
指针基址可能是 =05A59478
05C1C0ED - mov eax,[esi+000000CC]
EAX=00000051
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
2、通过搜索基址 05A59478 获取内存地址 0E1DC144
搜索 05A59478
, 勾选 " 十六进制 " 选项 , 然后点击 " 新的扫描 " 选项 , 选择 " 首次扫描 " , 扫描出
个结果 ;
3、调试内存地址 0E1DC144 获取基址 0E1DBB70
选择第 1 个找到的地址 0E1DC144
, 双击该地址 , 将其拉下来 , 选中该地址 , 按 F5 快捷键调试 ;
刚开始显示
开一枪之后 , 多了一行指令 , 这个指令就是子弹个数相关的指令 ;
分析多出的 05C03A42 - mov eax,[esi+000005D4]
指令 ; 得到基址 0E1DBB70
;
指针基址可能是 =0E1DBB70
05C03A42 - mov eax,[esi+000005D4]
EAX=05A59478
EBX=00000000
ECX=0E1DBB70
EDX=00000000
ESI=0E1DBB70
EDI=05C3F74D
EBP=00000000
ESP=0019FA28
EIP=05C03A48
指针基址可能是 =0E1DBB70
05C03A36 - cmp [esi+00000948],bl
05C03A3C - jne mp.info_intermission+16A9
05C03A42 - mov eax,[esi+000005D4]
05C03A48 - mov ecx,[esi+000005D8]
05C03A4E - cmp eax,ebx
4、搜索基址 0E1DBB70 获取内存地址 1032FC50
搜索基址 0E1DBB70
, 搜索到如下几个内存地址 , 选择最后一个 , 将其拉下来按 F5 调试 ;
( 至于为什么选最后一个调试 , 前几个都测试过了 , 全部失败 , 这是经过几个小时反复试错 , 找到的路径 )
5、调试内存地址 1032FC50 获取基址 1032FBD4
调试内存地址 1032FC50
获取基址 1032FBD4
;
指针基址可能是 =1032FBD4
05C13D3C - mov eax,[eax+7C]
EAX=0E1DBB70
EBX=1524EC14
ECX=0E1DBB70
EDX=00000002
ESI=00000000
EDI=05BC61B0
EBP=05E60918
ESP=0019FA14
EIP=05C13D3F
指针基址可能是 =1032FBD4
05C13D37 - cmp dword ptr [eax],00
05C13D3A - jne mp.func_rain+4A1
05C13D3C - mov eax,[eax+7C]
05C13D3F - pop esi
05C13D40 - ret
6、搜索基址 1032FBD4 获取内存地址
此时找到了 绿色的 静态地址 ;
这里有 2 个静态地址 , 数值都是基址 1032FBD4
- 静态地址 1 :
pcawwclconfig_mm.dll+10A40
;
- 静态地址 2 :
cstrike.exe+1100ABC
;
这里使用静态地址 2 , 因为静态地址 2 是以程序名开始的 ;
三、静态地址分析
搜索到的动态地址为 05A59544
;
调试 05A59544
内存地址 , 得到 05A59478
基址 ;
指针基址可能是 =05A59478
05C1C0ED - mov eax,[esi+000000CC]
搜索 05A59478
基址 , 得到 0E1DC144
内存地址 ;
调试 0E1DC144
内存地址 , 得到 0E1DBB70
基址 ;
指针基址可能是 =0E1DBB70
05C03A42 - mov eax,[esi+000005D4]
搜索 0E1DBB70
基址 , 得到 1032FC50
内存地址 ;
调试 1032FC50
内存地址 , 得到 1032FBD4
基址 ;
指针基址可能是 =1032FBD4
05C13D3C - mov eax,[eax+7C]
搜索 1032FBD4
基址 , 得到 cstrike.exe+1100ABC
静态地址 ;
构造如下指针 , 指向了子弹数据所在的动态地址 05A59544
;
相关文章
- Windows下创建自定义服务的正确姿势(Instrsrv&Srvany)「建议收藏」
- EnergyStar——Windows的续航优化工具
- Windows设置开机启动
- 【Windows 逆向】OD 调试器工具 ( 显示模块窗口 | 显示记录窗口 | 显示内存窗口 | 显示线程 | 显示句柄 | 显示 CPU | 多窗口界面 )
- 如何在Windows上查看MySQL的版本?(windows查看mysql版本)
- windows分步实现:双系统Linux挂载Windows(双系统Linux挂载)
- 与windows结合Linux与Windows:使用一个桥梁(怎么连接linux)
- 在Windows环境下启动MySQL服务(windows启动mysql服务)
- Windows下安装Linux虚拟机:快速、简单、高效(windows安装linux虚拟机)
- 微软员工:Win7/8.1依然可免费升级到Windows 10
- [图]Windows 11 Build 22000.100发布:任务栏整合Teams聊天功能等
- Windows XP SP3 更新补丁2014年4月汇总终结版
- [下载] 微软发布Windows 10 21H1版镜像 但你现在真的需要安装吗?
- [教程] Windows 10 20H2仍可恢复安装UWP版Microsoft Edge浏览器
- 微软工程师不慎泄露Windows 365订阅价格 2核心4GB内存31美元/月
- windows 系统Linux 安装 Windows:一步步轻松烧录(linux烧录)
- 革命性尝试:在Linux系统上安装Windows 7(linux系统装win7)
- CVE-2016-7255:分析挖掘Windows内核提权漏洞
- Linux挂载Windows共享文件夹:跨平台文件共享(linux挂载windows共享文件夹)
- Linux与Windows的文件夹共享(linux和windows共享文件夹)
- Linux轻松访问Windows共享文件夹,搞定文件共享(linux访问windows共享文件夹)
- Windows上安装MongoDB:一步一步分解(windows安装mongodb)
- Linux安装轻松:Windows只一步之遥(linux装windows)
- 比较Linux系统与Windows系统的异同(linux系统和windows系统的区别)
- 对比分析:Linux系统与Windows系统的异同(linux系统与windows系统的区别)
- 探究Windows下CMD无法使用MySQL的原因(cmd使用不了mysql)
- 在Windows 11最新版中微软为计算器与邮件和日历应用带来新的视觉效果
- 阿江的WINDOWS服务器安全设置