【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 , 勾选 " 十六进制 " 选项 , 然后点击 " 新的扫描 " 选项 , 选择 " 首次扫描 " , 扫描出 4 4 4 个结果 ;

在这里插入图片描述

在这里插入图片描述


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 ;

在这里插入图片描述

exe内存地址搜索工具是一种用于在运行的程序的内存中搜索特定内存地址工具。EXE文件在计算机中执行时被加载到内存中,内存地址搜索工具可以帮助开发人员和逆向工程师在运行的程序中定位和分析感兴趣的内存地址。 这种工具通常具有以下功能: 1. 内存地址搜索:工具允许用户输入特定的内存地址值,并搜索运行中的程序的内存,以定位匹配的内存地址。对于需要调试或脱机分析应用程序的开发人员和逆向工程师来说,这是非常有用的。 2. 进制选择:工具通常允许用户选择搜索的内存地址的进制表示法,如十六进制、十进制等,以更好地匹配用户的需求。 3. 进程选择:工具可能允许用户选择正在运行的进程,以便只搜索特定进程的内存地址。这对于具有多个运行实例的应用程序非常有用。 4. 匹配结果显示:工具会将搜索结果以易于理解的方式呈现给用户。这可以是以内存地址列表的形式,显示地址的值和相关的数据。这可以帮助用户在搜索结果中快速导航和分析。 5. 其他功能:一些工具可能还提供其他功能,如内存修改、调试支持、脱壳等。这样用户可以根据具体需求更深入地分析内存镜像。 总之,exe内存地址搜索工具是一种强大的工具,可以帮助开发人员和逆向工程师在运行的程序中定位和分析特定的内存地址。它们提供了多种功能,使用户能够根据需要轻松搜索和分析内存中的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值