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

【游戏漏洞】RPG类型游戏选怪功能分析

发布于:2018-6-21 10:22   |    112033次阅读 作者: 外部投稿    |   原作者: 通化程序员

对于3DF游戏来说,选怪往往是最简单的功能,因为大部分游戏的选怪功能都是不需要通过发包实现的,也就是说我们可以通过调用本地函数或者直接写内存实现。但是也有个别游戏的选怪看起来很麻烦,比如像传奇这一类游戏,选怪和攻击是需要连续调用的,,接下来我们就分析一下这类游戏是如何选怪的。

首先我们通过CE搜索当前选中怪的ID和对象,发现可以得到很多的结果,不过我们改写任何一个结果都无法达到选怪的效果。于是我们通过明文包进行分析。

在明文包处下断,用tab键进行选怪,并对明文包进行分析,发现如果我们已经选中怪,那么会发两个包,第一个包里是没有怪物ID的,也就是说要先取消选怪(如图)

 

而第二次发包会发送要选中怪的ID(如图)

这里的怪物ID为0x7A0C,而如果当前并未选中怪物,则只需要发第二个包即可达到效果。那么我们先对第二个包进行调用,却发现调用没有效果,这也就是说明我们的函数并没有调用完全,可能在发包的同时还有一个本地的数据需要写入,于是我们向外层分析,发现0052E4D7处的 mov  [esi+A81C], ecx写入的怪物对象,在我们写入这个对象的情况下,调用明文包就可以达到选怪的效果(如图)

或者我们还可以通过调用再外一层函数去达到效果,因为外层函数中既包含明文包的调用又包括内存的写入(如图)

 



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

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

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

分享到:
踩0 赞0

收藏

上一篇:【游戏漏洞】棋牌游戏BUG分析之控制其他玩家炮倍

下一篇:【游戏漏洞】浅析<跑酷类手游>中的远距离获取金币漏洞

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部