Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Windows XP/2000 屏蔽系統熱鍵深度解析:GINA 架構、WlxLoggedOnSAS、自訂 Msgina.dll 替換法與鍵盤驅動程式法

編輯:Windows XP 系統介紹

背景:為什麼 9x 時代的屏蔽法在 NT 核心失效?

Win9x 使用 SystemParametersInfo(SPI_SETSCREENSAVERRUNNING...) 偽裝螢幕保護程式執行中以屏蔽 Ctrl+Alt+Del。Microsoft 認定此法「業餘」,NT 核心 (2000/XP/2003/Vista/7/8/10/11) 全面改用 **Winlogon + GINA** 架構。

GINA (Graphical Identification and Authentication) 核心概念

  • Winlogon:系統核心元件,負責互動式登入支援。
  • GINA DLL:Winlogon 用於身分驗證的可替換 DLL,預設為 msgina.dll。
  • 開發者可編寫自訂 GINA 替換 msgina.dll,實現智慧卡、視網膜、指紋、DNA 等驗證機制。

關鍵 GINA 函數表 (節錄)

函數觸發時機
WlxLoggedOnSAS**使用者已登入、工作站未鎖定,按下 Ctrl+Alt+Del (SAS 事件)** — 核心屏蔽點
WlxLoggedOutSAS無使用者登入,收到 SAS 事件 (登入畫面按下 CAD)
WlxWkstaLockedSAS工作站已鎖定,收到 SAS 事件
WlxActivateUserShell啟動使用者殼層
WlxInitializeGINA DLL 初始化

屏蔽 Ctrl+Alt+Del 兩大實現路徑

路徑一:自訂 GINA DLL (MyGina.dll) — 正統架構級方案

  1. 建立 DLL 專案,匯出所有 GINA 必需函數。
  2. 在 WlxLoggedOnSAS 中**直接返回 WLX_SAS_ACTION_NONE (或不呼叫原 msgina.dll)**,即可屏蔽 CAD。
  3. 其他函數委派給原 msgina.dll 保持正常登入/鎖定/登出流程。
  4. 部署:將 MyGina.dll 放入 System32,修改登錄檔 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL = MyGina.dll。
  5. 重開機生效。

路徑二:鍵盤過濾驅動程式 — 硬體層面攔截

  • 編寫鍵盤類別過濾驅動 (KMDF/UMDF),在 Ctrl+Alt+Del 掃描碼層級攔截丟棄。
  • 優點:不依賴 Winlogon/GINA 架構變更,系統升級相容性較好。
  • 缺點:驅動開發門檻高、簽名部署麻煩、錯誤可能導致鍵盤完全失效。

屏蔽其他熱鍵

  • Alt+Tab (工作切換)、Ctrl+Esc/Win (開始功能表) — 屬於殼層/視窗管理員層級,可用 SetWindowsHookEx(WH_KEYBOARD_LL...) 低階鍵盤鉤子攔截 (需桌面互動服務)。
  • GINA 僅管 SAS (Ctrl+Alt+Del) 事件,不處理其他熱鍵。

安全性與合規性警示

  • 屏蔽 Ctrl+Alt+Del 會移除系統安全性關鍵的「安全注意序列」 (SAS),**嚴重降低系統安全性**,惡意軟體可模擬登入畫面竊取密碼。
  • 僅建議於 **Kiosk 模式、嵌入式專用設備、考試系統** 等受控環境使用,並配合實體安全措施。
  • 一般企業/個人環境**強烈不建議**屏蔽 SAS。
Copyright © Windows教程網 All Rights Reserved