代码之家  ›  专栏  ›  技术社区  ›  Amy

逆向工程和修补DirectX游戏?

  •  4
  • Amy  · 技术社区  · 14 年前

    背景

    我在玩《永恒之夜》,头侯系列游戏之一。拍摄按钮为“Z”,移动速度较慢为“shift”,箭头键移动。不幸的是,使用shift-z重影我的右箭头键,所以我不能在拍摄时向右移动。这种重影在所有应用程序中都会发生,而切换键盘可以修复它。

    目标

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

    相关经验

    我在装配中编码方面有一些经验,但在拆卸此类部件时没有。我没有使用DirectX API的经验。

    问题

    我需要一些指导。我找到了一个DirectX键盘扫描代码列表,还有一个名为Peexplorer的程序,它看起来可以满足我的需要。

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

    如有任何意见,我们将不胜感激。

    1 回复  |  直到 14 年前
        1
  •  5
  •   Colin Valliant    14 年前

    您可能对 Detours 来自Microsoft Research的库,它允许您挂接函数调用并更改它们的参数。这样做你的代码可以改变扫描代码的钥匙,而不是鬼魂的游戏期待。