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

【游戏分析】《天涯明月刀》技能冷却分析

发布于:2018-8-31 10:26   |    177218次阅读 作者: 外部投稿    |   原作者: 通化程序员

技能冷却对于不同的游戏有不同的存放方式,而技能冷却的遍历也大多不会和技能的普通属性放在一起,在《在天涯明月刀》这款游戏中,技能的冷却判断格外重要,因为技能的连贯性对打怪的效率影响很大。

我们需要找一个冷却相对较长的技能用来进行扫描和过滤,一般选择几十秒即可,太长也会影响分析的速度。由于角色等级太低,所以我们暂且使用自断经脉这个技能来扫描。而技能的冷却时间可以分别从递增和递减分别搜索,并最终得到一个结果(如图)

 

通过OD对这个地址下访问断点,游戏断下(如图)

执行到两次返回后,可以得到数组,+2C偏移,以及基地址(如图)

这样就可以得到技能冷却的公式,接下来需要数组的成员数量和技能冷却对象内的属性进行分析。

首先观察数组成员数量,经过计算可以得出有0x848个成员(如图)

这里应该不止包括技能的冷却,可能还会有一些药品之类的冷却,我们需要通过技能ID和技能属性进行关联。

而技能冷却对象的分析结果如下

[[[40BEFA4]+2C]+n*4]+28 技能冷却总时间

[[[40BEFA4]+2C]+n*4]+34 技能已冷却时间

[[[40BEFA4]+2C]+n*4]+38 技能冷却标志位  1为冷却中 0为已经冷却

 




如果我们想为QQ西游写一个自动打怪

那么我们还需要用已经找到的明文发包CALL实现很多功能(分析封包)

再结合我们之前找到的人物数据,怪物数据,技能数据,背包数据

就可以了

数据作为判断的依据

而明文发包CALL实现的功能是动作处理

 

分析封包并没有什么过多的技巧

基本上都是HOOK 明文封包CALL以后

1.抓包

2.对比分析

3.确定各参数意义

 

 

抓到技能封包

包长:4   D800     A80F

              包头     ID(WORD)

 

这里面我们比较疑惑,技能封包没有释放对象?那他对谁释放呢?只有一个技能ID参数

显然是不成立的,但是在这个封包里确实没有

那么只有另外一种可能,就是之前的封包对选择谁为释放目标有影响。

这地方稍微思考一下即可知道,一定是选怪封包了

所以,释放技能封包

需要前置封包----选怪封包

 

包长:6  E600   C81A0200

              包头    怪物ID

 

当然不止是怪物,如果要选队友或则自己或则NPC  也是同样的传递ID即可

 

 

释放技能还有另外一种形式

就是当你释放的时候  出现一个选择释放点的技能

这种封包中比如会有坐标的

我们抓到封包

 

选择坐标释放技能封包

 

包长:e  E700  4BCE9845 8F3E8445 162F7C43

              包头            X           Y                 Z

 

然后再调用技能封包

 

 

 

走路封包分析

发现和转向封包是一个  那么应该是一个多功能封包

 

最后一字节   0-255   X负轴方向为0  顺时针  0和255重叠

 

9600  09  1C13  48  8210  2E  FD00  28 19  0A

9600  09  1C13  48  8210  2E  FD00  28 19  F8

9600  09  1C13  48  8210  2E  FD00  28 19  E4

9600  09  1C13  48  8210  2E  FD00  28 19  D2

9600  09  1C13  48  8210  2E  FD00  28 19  BF

9600  09  1C13  48  8210  2E  FD00  28 19  AA

包头 小类    X               Y             Z           朝向

 

 

[[08E0D18]+0BCD4+5]   byte

 

 

9600081C134582102BFD00281927

9600071C134582102BFE00471927

9600081C134582102BFD00281927

9600071C134582102BFE00461927

96000A1C134582102BFD00461927

9600081C134582102BFD00281927

9600071C134582102BFE00431927

96000A1C134582102BFD00401927

9600081C134582102BFD00281927

9600071C134582102BFE00311927

96000A1C134582102BFD002F1927

 

 

当然打怪过程中还会用到很多其他封包

那么都是同样的办法  

细致对比分析即可

并没有什么太大难度,比较耗时而已

 

 

 来源:通化程序员-投稿

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

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

收藏
分享到:
踩0 赞0

收藏

上一篇:【游戏漏洞】逆向技术入门之主线程调用防止软件崩溃

下一篇:【游戏分析】《天涯明月刀》任务遍历分析

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部