发布于:2018-12-26 15:22 | 197991次阅读 作者: 外部投稿 | 原作者: 通化程序员
在大部分3D游戏中,技能封包都是很难分析的,由于技能的多样化,以及释放技能所需的各种条件,导致技能封包一般都相对比较大。以《QQ仙侠传》为例,我们来分析下技能封包。 首先通过ws2_32.send函数返回到明文包出(如图)
与其他功能的明文包进行对比,并对函数的参数进行分析,可以得出图中的push 19为包长,而push 97为协议ID,唯一不是常量的第三个参数自然是封包结构体。 下F2断点后对结构体的内容进行观察(如图) 通过更换怪物和技能,我们可以得出+0的位置为技能ID,而从+5开始就与怪物相关了。而通过对相同技能的不同等级进行调用,可以发现技能ID转化为10进制后,个位和十位代表着技能等级,而其他各位也代表着技能的职业等等。(如图) 向上分析组包过程,先在00574589处得到对结构体清零的6条代码(如图) 随后在005745B8 处得到对怪物信息的写入(如图) 执行到返回后可以得到选中怪信息的来源(如图) 这个来源有可能是怪物ID之类的信息,在怪物遍历下可以得到。而其他的组包内容都非常简单,一般都是0和1之类的常量。 这样我们就得到了技能封包的内容,当然随着角色等级的提高,在后面学习到的技能中还会出现无锁定的范围攻击,这时封包后面为0的部分则会出现目标地点的坐标值,由于账号等级有限,就不在这里进行演示了。
来源:通化程序员—投稿 GSLAB网站投稿文章仅代表作者本人的观点,与本网站立场无关。 *转载请注明来自游戏安全实验室(GSLAB.QQ.COM) |
最新评论
发表评论