「Windows Internals」の本は、問題のトピックについてかなり浅いです。
まず、どのプログラムもカーネル モード (KM) で実行されることに注意してください。これは、Unixoid システムとは異なり、システム呼び出しの場合、呼び出し元のスレッドが KM に遷移し、そこでカーネル自体またはドライバーの 1 つが要求を処理してから、ユーザー モード (UM) に戻るという事実によるものです。
開始するための最初のステップは、最新の Windows Driver Kit (WDK) をダウンロードし、ドキュメントを読み始めることです。より消化の良い本が必要な場合は、次のいずれかを選択してください。
- Windows NT デバイス ドライバーの開発 - 古いタイトルですが、基本の多くはまだ適用されます。
- Windows ドライバー モデルのプログラミング (Oney 著) - 特に WDM プログラミングは、基本もカバーしていますが、(ほとんどの本と同様に) いくつかのエラーがあります。
- Undocumented Windows 2000 Secrets (Schreiber 著) - 前述の本よりも技術的なレベルで、あらゆる種類の内部構造に関する多くの情報が含まれています。
- 文書化されていない Windows NT - 技術レベルの内部に関するより一般的な部分と、いくつかのネイティブ API 関数のリファレンスが含まれています。
- Windows NT/2000 Native API - 古典的ですが、より参考になります。それにもかかわらず、いくつかの宝石 (および例) があります。
Windows XP を使用したいので、rootkit.com で説明されている手法の多くは (数年前のものであっても) 機能するはずです。サンプルもたくさんいただきました。
そして、参照されたウェブサイトの名前からわかるように、あなたは実際、私がその質問で灰色の領域と呼んでいるものにいます ;)