別のプロセスで実行されているリモート アプリ ドメインにスレッドを挿入できるかどうか疑問に思っていました。
私の推測では、デバッグ インターフェイス (ICorDebug) を使用してこれを行うことができますが、他の方法があるかどうか疑問に思っていました。
別のプロセスで実行されているリモート アプリ ドメインにスレッドを挿入できるかどうか疑問に思っていました。
私の推測では、デバッグ インターフェイス (ICorDebug) を使用してこれを行うことができますが、他の方法があるかどうか疑問に思っていました。
最近、これを行うために Mono が提供する新しい機能が発表されました。アセンブリ インジェクションに関するこの投稿を参照してください。
SetThreadContext
を使用して、ターゲット プロセスの EIP を変更する別の方法があります。ただし、C# でそれを行う方法がわかりません。
これは、 snoopにサンプル コードがあります。フックを設定し、マネージ C++ を使用して appdomain にアセンブリをロードするように指示します。本当に印象的です...
Mike Stall は、CreateRemoteThread を使用してマネージド アプリにリモート スレッドを挿入する方法に関する興味深いサンプルを提供しています。
この回答はまだ不完全です。リモート アプリケーション ドメインで新しいコードを実行したいからです。ライブラリをロードする新しいスレッドを1つ作成し、新しいライブラリ内の場所を呼び出して作業を行う別のスレッドを作成してみることができると思います。