【游戏逆向】某某明月刀_技能冷却分析

重发协议虽然有可能实现一些游戏漏洞,但是往往也会对外挂造成不可挽回的影响。再服务器有重发协议验证的情况下,频繁发送不可能连续出现的协议,可能使游戏封号或者掉线。对于《天涯明月刀》这样一款注重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和技能名字进行关联,在代码中对技能的冷却做判断,使智能战斗的效率得到有效的提高,同时也避免了重发协议带来的负面影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

douluo998

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值