WinLogon のデバッグ

WinLogon は、対話型ユーザーのログオンとログオフのタスクを処理し、CTRL+ALT+DELETE のすべてのインスタンスを処理するユーザー モード プロセスです。

カーネル デバッガーからの NTSD の制御

WinLogon をデバッグする最も簡単な方法は、NTSD を使用し、カーネル デバッガーから制御することです。

WinLogon デバッグの有効化

ユーザー モード デバッガーの出力をカーネル デバッガーにリダイレクトするため、カーネル デバッグ接続を設定する必要があります。 「デバッグのセットアップ」を参照してください。

WinLogon にデバッガーをアタッチするには、起動時からプロセスがデバッグされるようにレジストリを経由して行う必要があります。 WinLogon デバッグを設定するには、HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\WinLogon.EXE\Debugger を以下に設定します。

ntsd -d -x -g 

-d オプションは、カーネル デバッガーに制御を渡します。 -x オプションを指定すると、デバッガーはアクセス違反を 2 回目の例外としてキャプチャします。 -g オプションを指定すると、添付ファイルの後に WinLogon プロセスが実行されます。 Winlogon.exe-g が開始する前にデバッグを開始する場合は、-g を追加しないでください (たとえば、初期ブレークポイントを設定する場合)。

さらに、winlogon.exe キーの下の GlobalFlag 値を REG_DWORD"0x000400F0 " に設定する必要があります。 これにより、ヒープのチェックと FLG_ENABLE_KDEBUG_SYMBOL_LOAD が設定されます。 ただし、この 2 番目のフラグはカーネル デバッガーにのみ影響するため、デバッガーを起動する前に、シンボルも対象のコンピューターにコピーする必要があります。

レジストリの変更を有効にするには、再起動が必要です。

デバッグの実行

次の再起動後、デバッガーは自動的に WinLogon に分割されます。

進め方については、「カーネル デバッガー からの User-Mode デバッガーの制御」を参照してください。

シンボル パスは、ホスト コンピューター上の場所、またはネットワーク上の他の場所に設定する必要があります。 WinLogon がデバッグ中の場合、対象のコンピューターでのネットワーク認証が正しく機能しません。