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

【游戏漏洞】《QQ西游》角色经验值分析

发布于:2018-6-13 16:05   |    146256次阅读 作者: 外部投稿    |   原作者: 通化程序员

升级经验作为角色对象下的一个基本数据,虽然不是必不可少的,不过对于辅助脚本的判断也能起到一些锦上添花的作用,并且有很多游戏在角色满经验以后并不会自动升级,需要我们手动点击,这时就需要对当前经验和最大经验进行分析和判断,《QQ西游》就是这样一类游戏。

首先对通过已经得到的角色对象公式在OD中查看角色对象下的数据(如图)

这里我们跟随的是对象+550的位置,因为0到550偏移都是坐标相关的信息,比如朝向,坐标等等,而550以后才是角色的基础信息,比如血量,攻击等等。而通过观察我们很容易发现了 对象+550+8 的位置是角色的等级,而+C的位置是角色的当前经验值,数据类型是浮点型,而在角色对象下,无论我们用什么数据类型查看都无法找到最大的经验值。于是我们可以想到这个经验值是在一个统一的库中进行存放的。通过CE对当前的最大经验值进行搜索(建议等级高一些在进行搜索,否则会得到很多的结果),得到了2个结果,这里我们搜索的是DWORD型,因为浮点型搜索没有得到任何结果(如图)

 

分别用OD对这两个结果进行查看,发现这两个结果是挨着的而在附近还有其他等级的最大经验值(如图)

我们在第一个地址上下访问断点,点击升级按钮后游戏断下(如图)

分析来源很容易得到了基地址以及数组的代码,并最终得到公式如下

[[0FBDAD4]+n*4]+0 对应等级

[[0FBDAD4]+n*4]+4 升级所需经验  n为等级

 



来源:通化程序员-公众号投稿

GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。

*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩0 赞0

收藏

上一篇:【游戏漏洞】QQ西游名字字符串追踪

下一篇:【游戏漏洞】QQ西游recv和明文收包分析

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部