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

【游戏漏洞】RPG类型游戏技能库分析

发布于:2018-7-3 09:22   |    314242次阅读 作者: 外部投稿    |   原作者: 通化程序员

技能数据对外挂的要求并不是很重要,不过有些游戏需要主动对技能进行升级,而对技能升级自然就需要技能的相关信息,比如技能等级,技能升级所需经验等等。在《QQ西游》中,技能的升级是需要角色经验的,剩余经验不足是无法对技能进行升级的,所以我们可以以这个升级经验为突破口来对技能信息进行分析。

首先选一个级别比较高的技能,通过CE进行扫描,因为级别高的技能要求的经验比较多,扫描出来的结果比较少(如图)

 

通过对内存进行修改,发现其中一个内存可以改变本地显示的经验值(如图)

 

OD对地址下访问断点,再次访问游戏断下(如图)

 

这里得到了+2C偏移,继续向上分析,得到eax来源于00563186  处的call    005C94D0,对CALL内部进行分析,得到了一个数组(如图)

 

这是一个结构体数组,结构大小为0xC,不过经过计算,发现数组里的成员太多,和我们的技能数量相差很大(如图)

 

也就是说我们找的这个数组是一个综合库,里面不止包含了当前角色的技能。而通过函数参数向上分析,发现无法得到其他遍历信息,于是我们需要通过其他办法来分析技能。

经过多次尝试,我们发现在技能经验所在对象的头部,也就是技能的ID上下访问断点,可以断到其他的遍历中(如图)

 

向上分析,很容易得到基地址[8E0D18],公式如下

[8E0D18]+0B518 技能数组起始地址

[8E0D18]+0B51C 技能数组结束地址

[[[8E0D18]+0B518]+n*C]+0 技能ID

[[[[8E0D18]+0B518]+n*C]+4]+0 技能名字ASCII

[[[[8E0D18]+0B518]+n*C]+10]+0 技能描述ASCII

[[[8E0D18]+0B518]+n*C]+1C 技能等级

[[[8E0D18]+0B518]+n*C]+2C 技能升级经验

 

 

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

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

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

分享到:
踩1 赞1

收藏

下一篇:【游戏漏洞】内存构造发包结构体实现协议发送

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部