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

【游戏漏洞】《天涯明月刀》之技能封包分析

发布于:2017-12-11 10:42   |    116528次阅读 作者: 外部投稿

很多3D游戏对于技能的调用,往往都会选择调用外层的功能函数,而避免调用封包,因为这类游戏的技能封包往往都比较复杂,参数较多,不方便调用,外层的功能函数参数却非常简单。以《天涯明月刀》为例,我们比较一下功能函数和封包的差别,并分析封包结构内容。

首先我们来看一下外层功能函数的调用

push 1

push 技能ID

mov  ecx,[Base_Role_Coord]

mov  ecx,[ecx+Offset_Coord1]

call Call_ReleaseSkills

 

这是一个非常简单的功能函数,参数除了一个立即数0x1之外就只剩一个技能ID了,而ecx的分析也很简单。

接下来我们看一下技能封包(如图)

这是唐门·千魂裂的封包,封包长度为41,经过多次对比,以及对技能对象的分析,可以得到如下结果

$ ==>    >28DB3D9C +0 [[Base_Role_Coord]+Offset_Coord1]

$+4      >00D74D95 +4 技能ID

$+8      >0000002A +8 [SkillsPacket-4]+1

$+C      >80000000 +C [SkillsPacket]

$+10     >00000002 +10 00000002

$+14     >044BE700 +15 X*100

$+18     >04BE0200 +19 y*100

$+1C     >0024FA00 +1D Z*100 可以传0

$+20     >28DB4700 +20 [[Base_Role_Coord]+Offset_Coord1]+A00

$+24     >28DB3D9C +24 [[Base_Role_Coord]+Offset_Coord1]

$+28     >00000000 +28 00000000

$+2C     >000003D8 +2C 000003D8

$+30     >EB608000 +31 朝向,X轴正向为0,逆时针转到X轴负向递增为+π,顺时针转到     

      X轴负向递减为-π

$+34     >0285923F +35 EC028592

$+38     >000000EC +39 00000000

$+3C     >00000000 +3C 00000000

$+40     > 00 +40 00000000

 

左边是OD中直接复制出的封包,右边是修正后的偏移,我们发现这里的参数很多,几乎每一个字节都有特定的含义,对于+31处的技能朝向我画了一个草图(如图)PS:画图水平实在是烂,大家凑合看下

通过对比可以发现,封包的结构无论是分析还是调用都非常麻烦,如果不是有特殊需求,比如脱机,防检测,或者外层严重VM无法分析等,不会选择用技能封包来做辅助。

 

 

分享到:
踩0 赞0

收藏

上一篇:【游戏漏洞】《dnf》加密解密

相关阅读
最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部