阅读目录
鬼泣4 游戏攻击过程相关逻辑分析
发布于:2016-1-27 17:19 | 165552次阅读 作者: 管理员 | 原作者: TP | 来自: 原创
游戏中根据按键间隔触发不同的连招,具有不同的攻击效果,通过分析连招触发条件,进而尝试辅助连招瞬发。
分析思路: 思路1:通过按键处理确定消息处理过程 因为游戏使用键盘操作,所以初步思路是通过查看对应的消息处理过程进而定位到连招触发的逻辑。 查找主窗口 然后攻击,打印参数
发现每一次按键弹起时会触发攻击过程,跟随消息处理 (或者在游戏开始时对registerclassexa下断 Pwnclassex指向一个结构如下
WNDPROC为消息回调函数地址 定位到的处理过程和上面一样 ) 随后发现对按键的处理会调用 考虑游戏通过hook接管键盘,通过pchunter查找未发现相应钩子处理 对函数进行run跟踪,尝试找到对应消息的处理流程,游戏崩溃。
思路2:通过攻击过程定位连招过程 之前分析HP时定位到了攻击过程如下 了解到在攻击过程中会传入相应招数名称,比如: 手枪普通攻击 手枪蓄力攻击 恶魔之手 绯红女皇 通过对连招名称下硬件访问断点,即使没有攻击对象,但仍然会有相应招数释放,故肯定会有对应的招数名称的产生。然后回溯分析 最终定位到一张关于“绯红女皇”的连招表 (连招间隔为浮点数) 我们对其中一个名次下硬件访问断点,此时没有攻击目标,仍然会触发连招过程 定位到相应触发过程
为方便分析,我们打印部分关键点的数值 当我们释放不同连招的时候
发现连招ID的命名为: 武器名+连招类型+”_”+连招招数 我们对比不同的技能连招
通过分析上述数据,发现技能基址一样,传入了不同的偏移,来确定不同的连招。 我们继续分析偏移量的来源 回溯 通过分析得知偏移的指针是 此函数的参数之一 通过条件断点分析流程:
我们继续分析调用者: 将调用此函数的参数全部打印出来 分析可以得知 指针即为上述IDA分析流程图中的指针。
|
最新评论
查看全部评论(2)
发表评论