1

特定の DLL の関数をフックするとします。その特定の DLL の特定の機能を利用するすべてのプロセスは、フックの影響を受けますか?

たとえば、MessageBox をポップする代わりに、Beatles のYellow Submarineをシステム サウンドとして再生するようにフックMessageBoxAするとします。呼び出しているすべてのプロセスで、このやや奇妙な動作が発生するのでしょうか?user32.dllMessageBoxA

-ジョアン・シルバ

4

1 に答える 1

1

一般的に言えば、特定のプロセスになります。

DLL をロードすると、windows は dll をメモリ空間にロードします。dll が既にメモリにロードされている (そして何らかのプロセス空間にマップされている) 場合、ウィンドウはメモリをプロセス空間にマップするだけです。

ただし、フックを適用すると、メモリが変更されるため、ウィンドウはプロセス用にそのメモリのコピーを作成します。

メモリ マップされたファイルを読む (これのテクノロジは、Windows がコードをロードするために使用したものです)

于 2013-05-31T10:24:51.857 に答える