2009-11-16 70 views
3

我正在嘗試向基於DirectX的遊戲內的用戶顯示一些信息(作爲覆蓋圖),非常類似Fraps顯示的幀數,但我不知道從哪裏開始。我不指望我的問題的完整解決方案,只是一些提示,我可以從哪裏開始以及從哪裏獲得有關該主題的更多信息;)掛鉤到DirectX應用程序

在此先感謝。

PS:我正在上的項目是用C#(.NET 3.5)

PPS:爲了澄清:我的意思是掛接到任何基於隨機DX遊戲。啓動我的應用程序,啓動任何遊戲,顯示某種覆蓋。

回答

4

那麼一種方法是將d3d9.dll放在可執行文件旁邊。 DLL搜索模式將總是首先搜索當前目錄。

現在,它只是實現DirectX接口的一小部分,通過所有的東西傳遞給REAL d3d9.dll。完成此操作後,用戶每次打電話時都可以注入一些自己的渲染。在幀速率示例中,您可以測量當前通話間的時間。

攔截加載D3D9.dll而不放置自己的DLL的方式是很複雜的。

此信息的其他類型:

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

+0

死鏈接目前:( – Cyral 2014-08-23 02:50:01

+0

@Cyral:開溜我已經更新的鏈接有用的東西1 – Goz 2014-08-30 17:11:01

+0

死鏈接和1個鏈接到網站託管病毒;) – pookie 2016-07-01 11:07:15

2

不確定您是否仍在尋找關於此問題的建議,但對於您或其他任何可能嘗試此方法的人員,下面是我準備的hooking the IDirect3DDevice9 methods in C#的一個示例。

它使用EasyHook進行DLL注入+方法掛鉤,以及一個小型C++實用程序dll來確定在運行時掛鉤的函數地址。 EasyHook在微軟Detours離開的地方。 。

+0

的鏈接已被棄用 – YukiNyaa 2017-07-18 20:57:11

+0

@User_PWY鏈接已被更新。謝謝 – 2017-07-18 21:12:27