致力于分享游戏安全技术,提供专业的游戏安全资讯
升级经验作为角色对象下的一个基本数据,虽然不是必不可少的,不过对于辅助脚本的判断也能起到一些锦上添花的作用,并且有很多游戏在角色满经验以后并不会自动升级,需要我们手动点击,这时就需要对当前经验和最大经验进行分析和判断,《QQ西游》就是这样一类游戏。
首先对通过已经得到的角色对象公式在OD中查看角色对象下的数据(如图)
这里我们跟随的是对象+550的位置,因为0到550偏移都是坐标相关的信息,比如朝向,坐标等等,而550以后才是角色的基础信息,比如血量,攻击等等。而通过观察我们很容易发现了 对象+550+8 的位置是角色的等级,而+C的位置是角色的当前经验值,数据类型是浮点型,而在角色对象下,无论我们用什么数据类型查看都无法找到最大的经验值。于是我们可以想到这个经验值是在一个统一的库中进行存放的。通过CE对当前的最大经验值进行搜索(建议等级高一些在进行搜索,否则会得到很多的结果),得到了2个结果,这里我们搜索的是DWORD型,因为浮点型搜索没有得到任何结果(如图)
分别用OD对这两个结果进行查看,发现这两个结果是挨着的而在附近还有其他等级的最大经验值(如图)
我们在第一个地址上下访问断点,点击升级按钮后游戏断下(如图)
分析来源很容易得到了基地址以及数组的代码,并最终得到公式如下
[[0FBDAD4]+n*4]+0对应等级
[[0FBDAD4]+n*4]+4升级所需经验 n为等级
来源:通化程序员-公众号投稿
*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)
近期精品文章:
∨
投稿文章:[email protected]
原文始发于微信公众号(游戏安全实验室):【游戏漏洞】《QQ西游》角色经验值分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论