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);
何か案は?前もって感謝します!