Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
特定の DLL の関数をフックするとします。その特定の DLL の特定の機能を利用するすべてのプロセスは、フックの影響を受けますか?
たとえば、MessageBox をポップする代わりに、Beatles のYellow Submarineをシステム サウンドとして再生するようにフックMessageBoxAするとします。呼び出しているすべてのプロセスで、このやや奇妙な動作が発生するのでしょうか?user32.dllMessageBoxA
MessageBoxA
user32.dll
-ジョアン・シルバ
一般的に言えば、特定のプロセスになります。
DLL をロードすると、windows は dll をメモリ空間にロードします。dll が既にメモリにロードされている (そして何らかのプロセス空間にマップされている) 場合、ウィンドウはメモリをプロセス空間にマップするだけです。
ただし、フックを適用すると、メモリが変更されるため、ウィンドウはプロセス用にそのメモリのコピーを作成します。
メモリ マップされたファイルを読む (これのテクノロジは、Windows がコードをロードするために使用したものです)