鑫郁飞

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 600|回复: 0

任鸟飞谈逆向----《天涯明月刀》技能冷却

[复制链接]

管理员

Rank: 9Rank: 9Rank: 9

阅读权限
200
积分
109492
精华
71
主题
155
帖子
175
分享
0
日志
0
在线时间
57 小时
最后登录
2018-7-13
注册时间
2016-11-22
听众
0
收听
0
发表于 2018-1-12 13:49:49 | 显示全部楼层 |阅读模式
微信公众号 任鸟飞逆向
重发协议虽然有可能实现一些游戏漏洞,但是往往也会对外挂造成不可挽回的影响。再服务器有重发协议验证的情况下,频繁发送不可能连续出现的协议,可能使游戏封号或者掉线。对于《天涯明月刀》这样一款注重PK的游戏来说,技能的冷却时间也设计的非常平衡。那么当技能没有冷却的时候,频繁的去发送技能协议,就很可能造成不良的后果。为了让外挂中的技能释放更加的流畅,工作效率更高,技能的冷却时间就成了不可或缺的数据。
分析技能冷却的突破口有很多,每款游戏也不尽相同,常见的查找有一下几种
1.通过技能冷却标志位查找,常见的有搜索0和1,0和-1   FFFFFFFF
2.通过技能冷却时间查找,常见的有从冷却开始时间增加和从冷却开始时间减少
3.通过找到技能CALL并到附近观察跳转,找到判断技能是否冷却的方式
因为我们无法确定技能冷却在内存的表现形式,所以在搜索时往往要用未知初始值。如果要找标志位可以用DWORD型,查找冷却时间,可以用FLOAT型。
我们在《天涯明月刀》游戏中找一个冷却时间适中的技能开始分析,通过搜索DWORD型,我们发现0和1为技能冷却的标志位,1代表冷却中,0代表已经冷却。(如图)
图中箭头指向的是我们过滤后得到的冷却标志位,通过OD下访问断点,可以得到2C偏移(如图)
继续分析得到了数组和一个+2C偏移(如图)
继续分析得到了一个基地址(如图)
这样我们就可以得到完整的公式,如果我们在标志位附近观察,还可以得到技能的冷却时间,整体的公式如下
[[基地址]]+2C      数组起始地址
[[基地址]]+30      数组起始地址
[[[基地址]+2C]+edi*4]+24   技能最大冷却时间
[[[[基地址]]+2C]+edi*4]+28   技能当前冷却时间
[[[基地址]]+2C]+edi*4]+2C   技能冷却标志   
[[[[基地址]]+2C]+edi*4]+3C   技能ID  
然后我们可以通过技能ID和技能名字进行关联,在代码中对技能的冷却做判断,使智能战斗的效率得到有效的提高,同时也避免了重发协议带来的负面影响。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|鑫郁飞网络科技有限公司 ( 渝ICP备16011958号-1 )

GMT+8, 2018-7-16 20:35 , Processed in 0.062857 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表