连接到 DirectX 应用程序
Posted
技术标签:
【中文标题】连接到 DirectX 应用程序【英文标题】:Hooking into DirectX application 【发布时间】:2009-11-16 17:10:02 【问题描述】:我目前正在尝试在基于 DirectX 的游戏中向用户显示一些信息(作为覆盖),就像 Fraps 显示的帧数一样,但我不知道从哪里开始。我不希望我的问题得到完整的解决方案,只是一些提示,我可以从哪里开始以及从哪里获取有关该主题的更多信息;)
提前致谢。
PS:我正在做的项目是用 C# (.NET 3.5) 编写的
PPS:澄清一下:我的意思是加入任何基于 DX 的随机游戏。启动我的应用程序,启动任何游戏,显示某种叠加层。
【问题讨论】:
【参考方案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,我还找到了有关该主题的以下有趣资源:
http://usl.sis.pitt.edu/wjj/UTClient/Hooking%20Direct3d.doc http://forum.cheatengine.org/viewtopic.php?t=161045 http://research.microsoft.com/apps/pubs/default.aspx?id=68568似乎 Microsoft Detours 是要走的路……不过还没有时间尝试。
【讨论】:
【参考方案3】:不确定您是否仍在寻找关于此的想法,但对于您或其他可能尝试此方法的人,这里是我准备的 hooking the IDirect3DDevice9 methods in C# 示例。
它使用 EasyHook 进行 DLL 注入 + 方法挂钩,并使用一个小的 C++ 实用程序 dll 来确定要在运行时挂钩的函数地址。 EasyHook 在 Microsoft Detours 中断的地方继续前进。
【讨论】:
链接已弃用以上是关于连接到 DirectX 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
Chromecast 发件人应用程序未连接到 Android Receiver 应用程序,始终连接到 Web 接收器
在 Windows 10 上连接到 Sphero 螺栓并在不使用 Sphero edu 应用程序的情况下使用 javascript 连接到它的最佳方法是啥?