逆向工程和修补DirectX游戏?

Amy*_*Amy 4 directx reverse-engineering disassembly

背景

我正在玩Imphouishable Night,这是东方系列游戏之一.拍摄按钮为"z",移动速度较慢为"移位",箭头键移动.对我来说不幸的是,使用shift-z ghosts我的右箭头键,所以我不能在拍摄时向右移动.这种重影发生在所有应用程序中,并且切换键盘修复了它.

目标

我想在反汇编代码中找到获取键盘输入的directx函数,并将其与'z'键进行比较,并将该键更改为'a'.我认为这是一个有趣的项目.假设扫描码的大小相同,这应该相当简单.而且因为可执行文件只有 400k,这可能会为我提供一个独特的机会来探索计算黑社会的黑暗面(开玩笑).

相关经验

我有一些在装配中编码的经验,但不是在拆卸这些.我没有使用DirectX apis的经验.

我需要一些指导.我找到了一个directx键盘扫描码列表,以及一个名为PEExplorer的程序,看起来它可以满足我的需求.

有没有办法让我可以通过C函数调用转换一些程序集,以便更容易阅读?我将需要找到游戏检索当前按下的键的位置,将它们与列表进行比较,这是我需要修改的列表.

任何投入将不胜感激.

Col*_*ant 5

您可能对Microsoft Research 的Detours库感兴趣,它允许您挂钩函数调用并更改其参数.这样做可以将您的代码更改为不会重影到游戏所期望的键的扫描码.