【问题标题】:Hooking into DirectX application连接到 DirectX 应用程序
【发布时间】:2009-11-16 17:10:02
【问题描述】:

我目前正在尝试在基于 DirectX 的游戏中向用户显示一些信息(作为覆盖),就像 Fraps 显示的帧数一样,但我不知道从哪里开始。我不希望我的问题得到完整的解决方案,只是一些提示,我可以从哪里开始以及从哪里获取有关该主题的更多信息;)

提前致谢。

PS:我正在做的项目是用 C# (.NET 3.5) 编写的

PPS:澄清一下:我的意思是加入任何基于 DX 的随机游戏。启动我的应用程序,启动任何游戏,显示某种叠加层。

【问题讨论】:

    标签: c# .net directx


    【解决方案1】:

    一种方法是在可执行文件旁边放置一个 d3d9.dll。 DLL 搜索模式将始终首先搜索当前目录。

    现在它只是实现 DirectX 接口以将所有内容传递给 REAL d3d9.dll 的“小”问题。完成此操作后,每次用户调用出现时,您都可以注入一些您自己的渲染。对于帧速率示例,您可以测量当前调用之间的时间。

    拦截 D3D9.dll 的加载而不放置您自己的 DLL 要复杂得多。

    这里有其他类型的信息:

    http://www.codeproject.com/Articles/20084/A-More-Complete-DLL-Injection-Solution-Using-Creat

    【讨论】:

    • 当前是死链接:(
    • 1 个死链接和 1 个指向托管病毒的站点的链接;)
    【解决方案2】:

    感谢 Goz,我还找到了有关该主题的以下有趣资源:

    似乎 Microsoft Detours 是要走的路……不过还没有时间尝试。

    【讨论】:

      【解决方案3】:

      不确定您是否仍在寻找关于此的想法,但对于您或其他可能尝试此方法的人,这里是我准备的 hooking the IDirect3DDevice9 methods in C# 示例。

      它使用 EasyHook 进行 DLL 注入 + 方法挂钩,并使用一个小的 C++ 实用程序 dll 来确定要在运行时挂钩的函数地址。 EasyHook 在 Microsoft Detours 中断的地方继续前进。

      【讨论】:

      • 链接已弃用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-12
      • 2020-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多