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

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

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

技能库的分析大多是从技能名字入手的,然后再通过传入职业或者ID等信息去到库中去取当前角色的可用技能。下面我们来对《天涯明月刀》中的技能库进行分析。

首先通过CE对技能名字进行搜索,得到较少的结果,分别对结果进行修改,并再次切换技能栏,可以发现其中的一个地址可以改变技能的名字(如图)

 

通过OD对这个地址下访问断点,切换技能栏后游戏断下(如图)

向上分析eax的来源,得到来源于ECX,执行到返回两次后得到+4偏移(如图)

继续分析可以得到一个数组,和+0偏移(如图)

但是下F2断点从新观察这个地址,发现这只是一个临时写入的地址,并不能作为技能遍历的公式,所以我们要继续返回来找到真正写入的来源。

再次下断执行到返回,发现这里是一个很大的循环,线程直接卡死了,所以我们要直接来到头部下断,并通过堆栈进行返回。

返回后分析[esp+10]的来源,最终得到来源于009F337C 处的call    00F79070(如图)

函数内部则是技能库的遍历代码,而对函数的三个参数进行分析,可以发现这是根据技能类型和角色的职业对技能库进行筛选,并最终存放在eax的临时地址里。这样我们就可以自己申请结构体来存放筛选出来的技能,也可以将技能库都遍历出来,再到里面去获取技能。

下面我们就将技能库的来源进行分析。首先到函数内部,可以得到一个数组和+80偏移(如图)

返回后分析第一个参数,得到+314偏移和基地址(如图)

对技能库的公式进行整理如下

[[[[414A7A8]+314]+80]+n*4]+0 技能ID

[[[[[414A7A8]+314]+80]+n*4]+8] 技能名字

其他的属性需要根据不同的技能类型,职业以及等级去逐个分析。

 

 


来源:通化程序员-投稿

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

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

收藏
分享到:
踩1 赞1

收藏

上一篇:【游戏漏洞】《天涯明月刀》怪物坐标分析

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

最新评论
B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部