2010-11-25 11 views
0

私はEasyHookを使用しているので、C#(私はむしろDetoursまたはC++を使用したくない)でいくつかのフックを実行しようとしています。Easyhookを管理されていない実行可能ファイルで使用する方法

http://easyhook.codeplex.com/

私はこの

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

をやっているときしかし、私はエラーを取得する:

There was an error while connecting to target: System.BadImageFormatException: Unable to load given assembly [SomePathToAnExecutable.exe] for reflection.

Is this a valid NET assembly? ---> System.BadImageFormatException: Could not load file or assembly [SomePathToAnExecutable.exe] or one of its dependencies. The module was expected to contain an assembly manifest.

質問1)私は、右のSomePathToAnExecutableがあなたのプロセスであることを考えでアム???にフックしたい

質問2)実行可能ファイルは管理コードでなければなりませんか?

また、私はcodeplexプロジェクトサイトで尋ねましたが、回答はありませんでした。

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

答えて

1

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

 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)いいえ。アンマネージドアセンブリもフックできます。

+0

管理対象アセンブリをアンマネージ実行可能ファイルにフックするいくつかの簡単なC#の例を教えてください。 –

+0

@Lee:私の共有インターフェース:http://pastebin.com/C5SRVqtB。あなたの実際のアプリケーションに入れなければなりません。私のクラスは、私のアプリケーションのアンマネージへの接続を扱います:http://pastebin.com/4FnM25bS。実際にインスタンスをフックするには、もちろんHookInstanceメソッドを呼び出す必要があります(プロセスIDをパラメータとして)。 – Fge

関連する問題