0

私はC#でいくつかのフックをしようとしています(DetoursやC ++を使用したくない)ので、EasyHookを使用しています。

https://easyhook.github.io/

しかし、私がこれをしているとき

Config.Register( "This description can be anything.", @"SomePathToAnExecutable.exe", "MyInjectionDll.dll");

エラーが発生します:

ターゲットへの接続中にエラーが発生しました: System.BadImageFormatException: リフレクションのために指定されたアセンブリ [SomePathToAnExecutable.exe] を読み込めません。

これは有効な NET アセンブリですか? ---> System.BadImageFormatException: ファイルまたはアセンブリ [SomePathToAnExecutable.exe] またはその依存関係の 1 つを読み込めませんでした。モジュールには、アセンブリ マニフェストが含まれている必要がありました。

質問 1) SomePathToAnExecutable がフックしたいプロセスであると考えるのは正しいですか?

質問 2) 実行可能ファイルはマネージ コードである必要がありますか??

codeplex プロジェクト サイトでも質問しましたが、応答がありません。

http://easyhook.codeplex.com/Thread/View.aspx?ThreadId=235616

4

1 に答える 1

1

回答 1)管理対象アセンブリをGACConfig.Registerに登録しません。したがって、コードから参加するすべてのアセンブリを登録します。これには、注入する dll と、IPCServer の共通インターフェイスを提供するアセンブリが含まれます。私の場合、たとえば次のようになります。

        Config.Register("MyHook",
            Path.Combine(startupPath, "HookManager.dll"), 
            Path.Combine(startupPath, "NetworkIncomingHook.dll"),
            Path.Combine(startupPath, "NetworkOutgoingHook.dll")
        );

HookManager.dll には、IPCServer (およびフックされた関数からすべてのメッセージが送信される場所) を作成するために使用するインターフェイスが含まれています。NetworkIncomingHook.dll と NetworkOutgoingHook.dll はどちらも、プログラムに挿入する dll です。これは によって行われRemoteHooking.Injectます。

2) いいえ。管理されていないアセンブリもフックできます。

于 2010-12-02T21:38:26.660 に答える