• 78阅读
  • 0回复

《天涯明月刀》按键功能分析 [复制链接]

上一主题 下一主题
离线任鸟飞
 

微信公众号  任鸟飞逆向

在一款游戏辅助中,按键和控件的作用都是很特殊的,他们往往都可以达到普通发包无法达到的效果,有时一个很复杂的发包可以通过参数很简单的按键CALL来触发。接下来我们以《天涯明月刀》为例来分析一下按键CALL。
按键CALL常见的突破口有两种,一种是通过明文包,在触发某些按键功能时断下,这时我们逐条返回,有可能会找到按键CALL。另一种是比较传统的也就是通过按键改变某些标志位,下写入断点断到按键CAL。而这款游戏用第一种方法即可。
首先我们在汇编窗口中跟随到明文包的头部,下断,通过对话的F键进行下断并返回。由于VM的代码特别多,使我们无法顺利的返回到按键CALL,所以我们要想其他的方法。既然单纯的按键很难达到我们要的效果,那我们继续尝试通过组合按键来返回。使用shift加w键的翻滚组合来下断(如图)
其实这里断到的是一个技能包,不过无所谓,我们继续返回,找到了一个只有按键会断下的CALL(如图)
这里是一个结构体作为参数的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弹起
这样我们的按键功能就可以实现了,相对于很多游戏来说,这款游戏的按键调用过程还是比较复杂的。
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个