0

サードパーティの.NETアプリケーションのプロセス作成を検出する必要があります。私の目標は、このアプリケーションの機能を強化するためにプラグインDLLを挿入することです。アプリケーションの初期化イベントをキャッチできるように、これをできるだけ早く注入したいと思います。このプロセスがいつ作成されたかを検出し、Mainが呼び出される前にDLLを挿入する方法はありますか?

4

3 に答える 3

4

通常の解決策は、対象のアプリケーション イメージを、制御されたパラメーターの下で元のイメージを起動するスタブに置き換えることです。

GFlagsのような他の方法もありますが、通常の操作ではなくデバッグを目的としています。

于 2009-12-01T00:08:58.133 に答える
2

Remus が提案したように元のアプリケーションを置き換えることができない場合は、システム レベルのフックの使用を検討し、CreateProcess() API ファミリ関数をインターセプトして、すべての呼び出しを監視することをお勧めします。

参照 : API フックが明らかに

これは少し複雑で、vista や他のフック ライブラリの問題など、あらゆる種類の問題に遭遇する可能性があります: http://forum.madshi.net/viewtopic.php?p=15833

于 2009-12-01T00:36:03.333 に答える
-2

悪いアイデア。

私は厳しいと思うかもしれませんが、一部のジョーカーが「機能強化」のためにランダムな DLL をプロセスに挿入するのは素晴らしいアイデアだと考えたため、プロセスがクラッシュするのを見てきました。他のすべてのアドレス空間を不安定にする可能性があります。やめろ。さらに、あなたの悪いコードが彼らを台無しにすると、彼らは非難されるでしょう.

別のプロセスにコードを挿入できるようにする API は、実際にはデバッガーを作成するためのものです。デバッガーを作成していない場合は、本番コードで使用しないでください。あなたは火遊びをしています。

于 2009-12-01T00:41:18.287 に答える