任鸟飞谈逆向----天涯明月刀》之技能封包分析
很多3D游戏对于技能的调用,往往都会选择调用外层的功能函数,而避免调用封包,因为这类游戏的技能封包往往都比较复杂,参数较多,不方便调用,外层的功能函数参数却非常简单。以《天涯明月刀》为例,我们比较一下功能函数和封包的差别,并分析封包结构内容。首先我们来看一下外层功能函数的调用push 1push 技能IDmovecx,movecx,call Call_ReleaseSkills 这是一个非常简单的功能函数,参数除了一个立即数0x1之外就只剩一个技能ID了,而ecx的分析也很简单。接下来我们看一下技能封包(如图)file:///C:\Users\Administrator\AppData\Local\Temp\ksohtml3472\wps1.png 这是唐门·千魂裂的封包,封包长度为41,经过多次对比,以及对技能对象的分析,可以得到如下结果$ ==> >28DB3D9C+0[+Offset_Coord1]$+4 >00D74D95+4技能ID$+8 >0000002A+8+1$+C >80000000+C$+10 >00000002+1000000002$+14 >044BE700+15X*100$+18 >04BE0200+19y*100$+1C >0024FA00+1DZ*100可以传0$+20 >28DB4700+20[+Offset_Coord1]+A00$+24 >28DB3D9C+24[+Offset_Coord1]$+28 >00000000+2800000000$+2C >000003D8+2C000003D8$+30 >EB608000+31朝向,X轴正向为0,逆时针转到X轴负向递增为+π,顺时针转到 X轴负向递减为-π$+34 >0285923F+35EC028592$+38 >000000EC+3900000000$+3C >00000000+3C00000000$+40 >00+4000000000 左边是OD中直接复制出的封包,右边是修正后的偏移,我们发现这里的参数很多,几乎每一个字节都有特定的含义,对于+31处的技能朝向我画了一个草图(如图)PS:画图水平实在是烂,大家凑合看下 通过对比可以发现,封包的结构无论是分析还是调用都非常麻烦,如果不是有特殊需求,比如脱机,防检测,或者外层严重VM无法分析等,不会选择用技能封包来做 。逆向交流qun:453769015
页:
[1]