Winlogon.exe
開発元 Microsoft Windows
対応OS Windows NT 3.1以降
種別 実行可能ファイル
テンプレートを表示

Winlogonは、SAS(英語: Secure attention sequence)を処理[1]し、対話型ログオンセッションを管理するユーザーモードプロセスである[2][3]。

概要

Winlogon.exeはWindows起動後、以下の手順を追う。

1. ウィンドウステーションの作成

キーボードやマウス、モニターを利用可能にするため、ウィンドウステーション(\Sessions\1\Windows\WindowStations\WinSta0)を作成する。この時点でWinlogon.exeは、他のプロセスがこのステーションにアクセスできないよう、SYSTEMのACEのみを含むセキュリティ記述子を付与する[3][1]。

2. デスクトップの作成

二つのデスクトップセッションを作成する。一つは、アプリケーションデスクトップ(\Sessions\1\Windows\WinSta0\Default)と呼ばれ、実際にユーザーがアクセスすることのできるデスクトップである[3]。もう一つは、Winlogonデスクトップまたはセキュアデスクトップ(\Sessions\1\Windows\WinSta0\Winlogon)と呼ばれ、資格情報ダイアログや既定でUACの昇格ダイアログを表示する。この時点でWinlogon以外のプロセスはこのウィンドウにアクセスすることはできない[3]。

3. LSASSとのALPC通信の確立

Winlogon.exeはLsaRegisterLogonProcessを使用して、ログオンやログオフ中にデータを交換したり、パスワードの管理をするため、LSASS(英語: Local Security Authority Subsystem Service, Lsass.exe)とALPC(英語: Advanced Local Procedure Call)通信を確立する[3]。

4. PRCメッセージサーバの登録

SASやログオフ、ワークステーションのロックの通知を受け取るために、RPCメッセージサーバを登録する[3]。

5. 次のプロセスの起動

次にWinlogon.exeは、レジストリキーHKLM\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon\Userinitに存在する、実行可能ファイル名が書かれたコンマ区切りの文字列データを参照し、そのプロセスを作成する(通常はUserinit.exe)。

Userinit.exeは起動すると、ユーザープロファイルを読み込み、HKCU\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon\Shell、もしくは、HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\Winlogon\Shellの実行可能ファイル名が書かれた文字列データを参照し、そのプロセスを作成する(通常はexplorer.exe)。その後、Userinit.exeは終了するため、explorer.exeは親プロセスを持たない[3]。

脆弱性や不具合

脚注

[脚注の使い方]
  1. 1 2 alvinashcraft (2023年6月12日). “Winlogon の責任 - Win32 apps”. learn.microsoft.com. 2025年2月16日閲覧。
  2. ↑ “W (Security Glossary)”. 2025年2月16日閲覧。
  3. 1 2 3 4 5 6 7 Windows Internals 7th Edition Part 1
  4. ↑ 通常起動以外の方法で起動した場合は管理者権限を持つユーザーのみログオンできる。

関連項目

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS C43