Windows 9x 系列作為桌面操作系統,其穩定性和保密性備受詬病。本文通過分析屏幕保護程序密碼的加密算法,揭示其安全機制的脆弱性。
注冊表鍵值:HKEY_CURRENT_USER\Control Panel\Desktop 下的 ScreenSave_Data (二進制值)。
00h 結束標誌存入注冊表48 EE 76 1D 67 69 A1 1B 7A 8C 47 F8| 步驟 | 數據 |
|---|---|
| 明文 (大寫) | V I S U A L _ B A S I C |
| ASCII (Hex) | 56 49 53 55 41 4C 20 42 41 53 49 43 |
| 密鑰 (前12字節) | 48 EE 76 1D 67 69 A1 1B 7A 8C 47 F8 |
| XOR 結果 | 1E A7 25 48 26 25 81 59 3B DF 0E BB |
| 十六進制字符串 | 1EA72548262581593BDF0EBB |
| 注冊表存儲 (每字符再轉 ASCII) | 31 45 41 37 32 35 34 38 32 36 32 35 38 31 35 39 33 42 44 46 30 45 42 42 00 |
明文ASCII XOR 密文字節 = 密鑰字節48 EE 76 1D 67 69 A1 1B 7A 8C 47 F8 54 95 97 5F
78 D9 DA 6C 59 D7 6B 35 C5 77 85 18 2A 0E 52 FF
00 E3 1B 71 8D 34 63 EB 91 C3 24 0F B7 C2 F8 E3
B6 54 4C 35 54 E7 C9 49 28 A3 85 11 0B 2C 68 FB
EE 7D F6 6C E3 9C 2D E4 72 C3 BB 85 1A 12 3C 32
E3 6B 4F 4D F4 A9 24 C8 FA 78 AD 23 A1 E4 6D 9A
04 CE 2B C5 B6 C5 EF 93 5C A8 85 2B 41 37 72 FA
57 45 41 A1 20 4F 80 B3 D5 23 02 64 3F 6C F1 0F
核心邏輯:讀取注冊表 → 解析二進制數據 → 使用密鑰表 XOR 解密 → 顯示明文密碼。完整代碼因篇幅省略,關鍵 API:RegOpenKeyEx、RegQueryValueEx、字符串處理函數。
| 鍵值名稱 | 類型 | 含義 |
|---|---|---|
| ScreenSaveTimeOut | 字符串 | 屏保等待時間 (秒),如 "840" |
| ScreenSaveActive | 字符串 | 是否啟用屏保:"1"=啟用、"0"=禁用 |
| ScreenSaveUsePassword | DWORD | 是否密碼保護:1=啟用、0=禁用 |
此漏洞反映了 Windows 9x 內核架構的固有缺陷:單用戶、無權限分離、注冊表中心化存儲敏感信息。微軟在 NT 內核系列 (Windows 2000 及以上) 中通過 SAM/LSASS、DPAPI、Kerberos 等機制徹底重寫了認證體系,但早期 9x 系列用戶長期暴露於此類風險中。