【天刀系列】按键功能分析

[复制链接]
查看: 18   回复: 0

41

主题

41

帖子

272

积分

超级版主

Rank: 8Rank: 8

积分
272
发表于 2021-5-27 22:14:21 | 显示全部楼层 |阅读模式
在一款游戏辅助中,按键和控件的作用都是很特殊的,他们往往都可以达到普通发包无法达到的效果,有时一个很复杂的发包可以通过参数很简单的按键CALL来触发。接下来我们以《天涯明月刀》为例来分析一下按键CALL。
按键CALL常见的突破口有两种,一种是通过明文包,在触发某些按键功能时断下,这时我们逐条返回,有可能会找到按键CALL。另一种是比较传统的也就是通过按键改变某些标志位,下写入断点断到按键CALL。而这款游戏用第一种方法即可。
首先我们在汇编窗口中跟随到明文包的头部,下断,通过对话的F键进行下断并返回。由于VM的代码特别多,使我们无法顺利的返回到按键CALL,所以我们要想其他的方法。既然单纯的按键很难达到我们要的效果,那我们继续尝试通过组合按键来返回。使用shift加w键的翻滚组合来下断(如图)
1.png
C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\bd83f3615a3a467d8038d2f128918565\1.png

其实这里断到的是一个技能包,不过无所谓,我们继续返回,找到了一个只有按键会断下的CALL(如图)
2.png


C:\Users\AKM\AppData\Local\YNote\data\qq4EBD6EA8DB709B20B5FA91D19DC75C0E\b800fa58e8d843c5937ded3b078da5bb\2.png
这里是一个结构体作为参数的CALL,我们很轻易的在结构体内发现了我们按下的“1”键的键码“31”,继续分析其他的按键的结构体,最终得到了如下的结论
$ ==>   >00000000
$+4     >00000005
$+8     >00000001        0代表按键按下     1代表的是弹起   
$+C     >00000057        键码       
$+10    >00000000  +12处写入01  表示shift按下    +11处写入01  表示ctrl按下
$+14    >00000000
$+18    >FFFF0000

如果我们想调用翻滚技能,只需按如下顺序调用按键CALL
shift按下---W按下----W弹起----shift弹起
这样我们的按键功能就可以实现了,相对于很多游戏来说,这款游戏的按键调用过程还是比较复杂的。

来亦何哀, 去亦何苦?
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X3.4 © 2001-2018 Comsenz Inc.