0x01 背景
这是一款丧尸生存的多人沙盒类游戏,角色在废墟之城内不断的搜刮,强化自己的装备和建造设施来抵御丧尸的无休止攻击,记住,这是一款团队合作游戏,你面对的丧尸随时可能夺走你的性命!
0x02 玩家结构分析
首先我们来搜索玩家昵称,一般玩家昵称处会是突破口,就算不是,后面制作ESP也可以用来显示玩家昵称。
结构分析
这里我们发现一些数据,但是我们并不知道是干什么的,先不急。往下看我们发现其他玩家的昵称。
我们再来看下玩家有哪些属性在制约生存条件
从上到下依次是
生命值-饥饿值-口渴值-感染值-体力值-呼吸值
首先我们来找健康值,先查找100,然后用一些方法来改变健康值
什么方法都行,本游戏我采用进入水里,呼吸不足就会掉血
这样我们通过精确搜索我们找到健康值地址,这个游戏存储用的是字节类型,我搜索很多次才发现,
我们通过锁定修改手段,发现地址CD96ABAA正是我们所找
其他地址查找采用相同手法,利用精确值搜索,字节类型。依次如下:
生命值-CD96ABAA
饥饿值-CD96ABAB
口渴值-CD96ABAC
感染值-CD96ABAD
体力值-CD96ABB4
呼吸值-CD96ABB5
可以发现这种有关系的数据基本上放在了一起。
我们右键血量地址-找出是什么改变了改写了该地址
这样我们会得到改变地址的关键代码
现在我们可以继续用CE,或者打开调试器去寻找
继续CE找就是搜索我们刚才查看详细信息得到的值CD96AAF8
然后右击搜索到的地址找出是什么访问了该地址,数据肯定很多,一个个右击,直到有结果
目前我们的生命值偏移表达式为
[rax+50]+B2
现在我们记住关键代码地址转到调试器
溯源最终我们得到生命值偏移表达式
[[[[[“xxx.exe”+013D2710]+630]+A0]+90]+50]+B2
饥饿值:
[[[[[“xxx.exe”+013D2710]+630]+A0]+90]+50]+B3
依此类推:
xxx.exe是游戏进程名,为了不暴露游戏,这里隐藏。
0x03 总结
本次分析的属性虽然在一起,但是后面控制疾跑和跳跃的体力地址,控制水下的呼吸地址和上面四个属性差了几个偏移。修改血量代码达到无敌一般都在游戏测试的时候修复了,但也有可能没有,重点可以关注其他属性在服务器有没有验证从而发现游戏漏洞。