2

マネージ (C#、C++/CLI) プロセスをフックする必要があります。ウィンドウの数 (関連するコントロールとそのプロパティ) に関する情報を見つけて、C# マネージ コードで記述されたターゲット アプリケーションに送信する必要があります。

そのために 私は何をする必要がありますか?その管理されたプロセスの IAT (インポート アドレス テーブル) と EAT (エクスポート アドレス テーブル) を調査する必要がありますか? C++ でインジェクター DLL を作成する必要がありますか? IAT と EAT の変更以外に何が必要ですか?

[編集]管理された実行中のプロセスをアプリケーションにアタッチする必要があります(他のプロセスをホストまたはアタッチします)。プロセスをアタッチした後、そのプロセスのウィンドウに関連付けられているすべてのコントロールのプロパティを取得する必要があります。

その接続されたプロセスのウィンドウを 1 つずつ反復し、そのウィンドウに関連付けられているすべてのコントロールを列挙し (コントロールの ID、名前、色、位置、サイズなどを取得します)、この情報全体を他のアプリまたはアプリに送信します。他のアプリを接続しました(実際には、ホストとしてのそのアプリは、その情報を使用して同じコントロールを再描画する必要があります。なぜこれを行う必要があるのか​​ を尋ねないでください:-))

よろしくウスマン

4

2 に答える 2

1

この質問に対する答えがあなたの助けになると信じています:

リフレクションを使用して「リフレクション マシン」を作成する方法

于 2011-03-13T16:58:08.117 に答える
1

これを参照してください http://www.codeproject.com/Articles/463508/Net-CLR-Injection-Modify-IL-Codes-on-Run-time

実行時にILコードを変更することでそれを行うことができます

また、Profiler インターフェイスは別の方法です

于 2012-09-24T10:21:06.137 に答える