0

カーネルドライバー関数から単一プロセスのみをフックする方法を教えてください。たとえば、ZwQueryInformationProcess です。

ありがとう!

4

1 に答える 1

1

Windowsカーネルではそれを行うことはできません。ntoskrnlのZwXXX関数はネイティブAPIです。それらはグローバルな共通機能です。ユーザーモードのすべてのプロセスは、関数の1つのコピーを使用しています。カーネルには、コピーオンライトなどはありません。これは、次の方法で実装できます。

  1. ユーザーモードで特別なプロセスのntdll.dllのZwQueryInformationProcessをフックします。
  2. カーネルモードのフック関数にフィルターを追加します。現在のプロセスコンテキストが希望どおりでない場合。それを通過します。

それで全部です。

ありがとう。

于 2012-05-08T10:16:35.770 に答える