我已閱讀文章標題爲Intercept Calls to DirectX with a Proxy DLL,它使用DLL代理攔截調用並可以獲取DirectX的覆蓋。如何停止DirectX攔截調用
我寫一些DirectX應用程序並且不希望其他人通過這種方法來改變它。我怎樣才能防止這一點?
我能做到這一點通過檢查原來的DLL,怎麼辦呢?
我已閱讀文章標題爲Intercept Calls to DirectX with a Proxy DLL,它使用DLL代理攔截調用並可以獲取DirectX的覆蓋。如何停止DirectX攔截調用
我寫一些DirectX應用程序並且不希望其他人通過這種方法來改變它。我怎樣才能防止這一點?
我能做到這一點通過檢查原來的DLL,怎麼辦呢?
只是檢測d3d9.dll(所有DX的DLL)文件中您選擇應用程序的工作目錄,如果它的存在,然後有人試圖代理。這很容易實現。反正你不能讓事情100%保護,所以任何比這只是不值得投入的時間:)
我設法從3D Ripper DX所有遊戲中獲取數據,他們有百萬預算:)
「最簡單的更復雜「方法來檢測它是否是一個代理與否將決定裝載的d3d9.dll的路徑,計算哈希值,並將其與存儲的哈希值進行比較。但是,這隻適用於他們讓你的應用程序加載d3d9代理dll的情況,而不是在他們掛鉤/注入的情況下。
謝謝你,JAre。如果我檢測到d3d9.dll,我該如何檢查它的版本或功能?你能告訴我一些關於它的文章嗎? – wenz
@wenz據我所知攔截調用(例如對d3d9.dll),您需要將代理「d3d9.dll」放在應用程序目錄中,並且由於應用程序(和DX框架)通常從應用程序目錄開始搜索包含的dll,您的應用程序將加載代理「d3d9.dll」。因此,通過禁止應用程序文件夾中的任何第三方文件或庫,您可以以平臺無關的方式保護您的應用程序免受基本代理的干擾。 – JAre
在工作目錄的情況下,將無法檢測他們放在Windows動態鏈接庫文件夾中的代理DLL。 –