逆向工程和修补DirectX游戏?

时间:2010-03-15 05:27:36

标签: directx reverse-engineering disassembly

背景

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

目标

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

相关经验

我在装配中有一些编码的经验,但在拆卸这些方面却没有。我没有使用DirectX apis的经验。

问题

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

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

非常感谢任何输入。

1 个答案:

答案 0 :(得分:5)

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