游戏安全实验室 首页 游戏漏洞 查看内容

【游戏漏洞】某生存游戏玩家属性值分析

发布于: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)

分享到:
踩0 赞0

收藏

上一篇:【游戏漏洞】RPG类型游戏数据关联名称库加密算法

下一篇:【游戏漏洞】RPG游戏自动打怪之朝向判断

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部