0

C# で EasyHook を使用して、COM オブジェクト (管理されていない) からメソッドに適切にフックしようとしています。

COM オブジェクトのメソッドのアドレスを特定でき、フック関数を適切にトリガーできます。残りのコードはチュートリアルのものとほとんど同じです。

SendHook = LocalHook.Create(0x12345678, new DMyFunc(MyFunc_Hooked), this);

ただし、フック内に入ると、すべてのパラメーターがスクランブルされます (最初に渡したパラメーターとは異なります)。

また、何も返すことができません (short を返す別の関数をフックしようとしても、値が適切に返されないことに注意してください)。

eXescope を開くと、これは関数シグネチャの 1 つです。

function MyFunc(out ParamA:^BSTR; out ParamB:^bool): ^TypeA;

C# で通常どおり COM オブジェクトを使用する場合、この関数には次のシグネチャがあります。

TypeA MyFunc(ref string ParamA, ref bool ParamB);

何か案は?前もって感謝します!

4

1 に答える 1

1

Dark Falcon から提供された記事を読んだ後、5 分で問題を解決することができました。私はそれを読むことを完全にお勧めします!したがって、答えのすべての功績は彼にあります!

于 2013-02-21T09:00:11.433 に答える