1

レーシング ゲームがあり、テレメトリと統計を収集する必要があります。さらにHUDを追加するには

迂回路をまとめました。そして、アプリケーション ウィンドウの名前を変更するフックを作成できます。

LRESULT (WINAPI * TrueSendMessageW)(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) = SendMessageW;
__declspec(dllexport) LRESULT WINAPI MySendMessageW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{
    if (Msg == WM_SETTEXT)
        return TrueSendMessageW(hWnd, Msg, wParam, (LPARAM)L"new name window");
    return TrueSendMessageW(hWnd, Msg, wParam, lParam);
}
...

withdll.exe で実行します。大丈夫。

しかし、direct3d をインターセプトする方法がわかりません。APIモニターの助けを借りて、プログラムが使用していることがわかりましたMicrosoft.Xna.Framework.Graphics.dll IDirect3DDevice9::SetTexture

誰かがこのテクスチャを取得する方法を教えてもらえますか? 一般的に、リンクのようなものを取得したいと思います

4

1 に答える 1

0

Detour は OS API 呼び出しをインターセプトし、Direct3D は COM オブジェクトの概念を介して実装されます。おそらく、D3D デバイス オブジェクト作成の最初のステップをインターセプトできますが、この時点以降は、COM オブジェクト インターフェイスを処理する必要があり、Detour は役に立ちません。

于 2012-05-04T18:39:34.403 に答える