发布于:2018-7-10 11:15 | 123607次阅读 作者: 外部投稿 | 原作者: zusheng
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 总结 本次分析的属性虽然在一起,但是后面控制疾跑和跳跃的体力地址,控制水下的呼吸地址和上面四个属性差了几个偏移。修改血量代码达到无敌一般都在游戏测试的时候修复了,但也有可能没有,重点可以关注其他属性在服务器有没有验证从而发现游戏漏洞。
来源:zusheng-邮件投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) |
最新评论
发表评论