目标(Objective)
Ÿ Health
Ÿ Rifle Ammo
Ÿ Pistol Ammo
Ÿ Player Pointer
0x01 玩家健康
查找玩家健康值,玩家健康值是100,但是我们并不知道数值类型,我们可以使用精确搜索方式搜索100-所有类型
CE搜索
结果很多,我们可以使用手雷来减少血量
我们会得到两个结果
我们可以去尝试改变数值,最终发现一个是我们的客户端健康值,一个是服务器健康值,我们分析关注的重点在客户端这边,这是单机模式下修改服务端的可以达到无敌的效果但并不是分析的重点。
右键改地址选择寻找是什么改写了该地址,进入游戏继续让手雷改变健康值。
让我们记住这个地址,OD附加游戏然后转到该地址(很不幸游戏中途奔溃了,我们从头来了一遍,所以后面地址肯定不同了)
0x03 基地址与周边数据分析
现在我们开始寻找基地址,这样在下次打开游戏就不怕存放玩家健康值的地址改变啦。
[edx+0xF8]就是玩家健康值地址,edx来源于eax
eax来源于上面的call
call内运行逻辑还是比较多的,我们F2断点调试一下运行逻辑
根据调试分析,eax来源于[0x50F4F4]
最终表达式如下
[0x50F4F4+0xF8]
打开CE数据结构分析,我们填入0x50F4F4,第一个就很像我们玩家对象了
我们添加几个BOT
刚刚好七个对象指针
初步分析可能是地图玩家坐标
偏移150步枪弹药
偏移13C手枪弹药
偏移128步枪备用弹药
偏移114手枪备用弹药
到此整个数据分析差不多了,基本上都在附近。