首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

Windows 98 屏幕保護程序密碼加密算法分析與提取方法

     編輯:VC 教學

Windows 9x 安全性缺陷概述

Windows 9x 系列作為桌面操作系統,其穩定性和保密性備受詬病。本文通過分析屏幕保護程序密碼的加密算法,揭示其安全機制的脆弱性。

屏保密碼加密算法詳解

密文存儲位置

注冊表鍵值:HKEY_CURRENT_USER\Control Panel\Desktop 下的 ScreenSave_Data (二進制值)。

加密流程

  1. 大寫轉換:明文中小寫字母全部轉為大寫,其他字符不變
  2. 異或運算:按順序將每個字符的 ASCII 值與對應的 8-bit 密鑰進行 XOR 運算
  3. 十六進制編碼:將結果轉為十六進制字符串 (A-F 大寫)
  4. 拼接存儲:連接所有十六進制字符,長度為明文 2 倍,以 00h 結束標誌存入注冊表

密鑰特徵

  • 固定 128 bytes (1024 bits)
  • 系統全局統一,不隨用戶/安裝變化
  • 前 12 字節:48 EE 76 1D 67 69 A1 1B 7A 8C 47 F8

實例演示:密碼 "visual basic"

步驟數據
明文 (大寫)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

密鑰提取方法

  1. 設置 128 字符長度的已知屏保密碼 (必須記住)
  2. 從注冊表讀取加密後的 256 字節密文
  3. 將密文每兩個字符還原為一個十六進制值,得到 128 個字節
  4. 使用計算器:明文ASCII XOR 密文字節 = 密鑰字節
  5. 重複 128 次獲得完整密鑰表

完整 128 字節密鑰表 (十六進制)

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

VB6 程序實現提取

核心邏輯:讀取注冊表 → 解析二進制數據 → 使用密鑰表 XOR 解密 → 顯示明文密碼。完整代碼因篇幅省略,關鍵 API:RegOpenKeyEx、RegQueryValueEx、字符串處理函數。

屏保相關注冊表項說明

鍵值名稱類型含義
ScreenSaveTimeOut字符串屏保等待時間 (秒),如 "840"
ScreenSaveActive字符串是否啟用屏保:"1"=啟用、"0"=禁用
ScreenSaveUsePasswordDWORD是否密碼保護:1=啟用、0=禁用

安全警示與建議

  • 極度不安全:固定密鑰、可逆加密、注冊表明文存儲,任何有系統訪問權限的用戶/程序均可提取
  • 密碼復用風險:若將銀行卡、郵箱等重要密碼用作屏保密碼,極易被竊取
  • 防護建議:
    • 切勿在屏保使用重要系統密碼
    • 升級至 Windows 2000/XP/7/10/11,使用更安全的認證機制
    • 啟用磁盤加密 (BitLocker)、設置 BIOS/UEFI 密碼
    • 使用第三方安全屏保工具替換系統默認組件

歷史意義

此漏洞反映了 Windows 9x 內核架構的固有缺陷:單用戶、無權限分離、注冊表中心化存儲敏感信息。微軟在 NT 內核系列 (Windows 2000 及以上) 中通過 SAM/LSASS、DPAPI、Kerberos 等機制徹底重寫了認證體系,但早期 9x 系列用戶長期暴露於此類風險中。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved