⚠️ 歷史背景與現代替代
本文技術基於 DOS/Windows 9x/早期 NT 時代 (MBR 分區、BIOS 引導、INT 13H 中斷),現代環境 (UEFI + GPT + BitLocker/Veracrypt/LUKS) 已有成熟、經過審計的全盤/分區加密方案。**文中技術僅供底層原理學習/舊系統維護參考,生產環境請使用標準加密工具。**
技術一:修改 MBR 分區表信息 (扇區編輯器/Debug 直接寫扇區)
- 目標:0 磁道 0 磁頭 1 扇區 (MBR + 分區表)。
- 關鍵字節:
- 偏移 0x1BE (第1分區表項) 第 0 字節 Boot Flag:80h=活動分區,00h=非活動。改 00h → 無法從硬盤啟動,軟啟後仍可見分區。
- 偏移 0x1BE + 4 = Partition Type:06h=FAT16B/FAT32,07h=NTFS/exFAT,05h=擴展分區。改 00h → 分區標記為「未使用」消失;改 05h → 整盤隱藏不可訪問。
- MBR 有效標誌:扇區尾部
55h AAh,改 00h 00h → BIOS 拒絕引導,整盤鎖死。
- 實現工具:Norton DiskEdit / WinHex / HxD (離線編輯);Debug
INT 13H AH=02h/03h 讀寫扇區 (實模式)。
- 破解:懂 MBR 結構者可讀出修正;更隱蔽做法:備份分區表 → 全部清零 → 需備份文件才能恢復 (安全性由備份文件保管決定)。
技術二:MBR 引導扇區植入口令驗證程序 (引導扇區病毒式思路)
- 將原始 MBR + 分區表備份到隱藏扇區 (如 0/0/3)。
- 編寫 < 512 字節引導程序 (汇编) 放入 MBR (0/0/1):
- 啟動時提示輸入密碼 (簡單哈希比對)。
- 密碼錯誤 → 死循環/重啟。
- 密碼正確 → 讀取隱藏扇區備份 → 跳轉執行原始 MBR 引導代碼。
- 效果:硬盤啟動必輸密碼;軟啟動因 MBR 無分區表 → 硬盤不可見;可駐留高端內存掛鉤 INT 13H 防 MBR 被改寫。
現代對應:UEFI Secure Boot + BitLocker 預啟動認證 (TPM + PIN/USB Key) — 固件級信任鏈,不可繞過。
技術三:DOS 下實現多用戶硬盤管理系統 (軟盤鑰匙啟動)
- 分區佈局:C: 公共區 (超級用戶讀寫,系統/軟件);D/E/F... 專用區 (特定用戶口令掛載);公共只讀區 (普通用戶)。
- 啟動流程:必須插入「軟盤鑰匙」 (含驅動/掛載程序/加密密鑰) → 讀取鑰匙 → 解密掛載對應分區 → 啟動系統。
- 實現核心:利用分區表鏈結構 (EBR 鏈) + 汇編編程 實現分區隱藏/顯示/讀寫控制。
- 現代對應:BitLocker/Veracrypt 多密鑰/多鑰匙文件掛載不同卷 + Windows 多用戶 ACL/強制訪問控制 (SACL) + 組策略軟件限制策略。
技術四:攔截 INT 13H 實現邏輯盤寫保護 (軟件寫保護)
- 原理:DOS 所有寫操作最終經
INT 13H AH=03h/05h 寫扇區。TSR 程序掛鉤 INT 13H,檢查 CH (柱面高8位) + CL 高2位 (柱面低2位) 組成的柱面號範圍,若落在受保護邏輯盤起始/結束柱面區間 → 直接 IRET 返回 (不執行寫入) → 實現寫保護。
- 柱面邊界計算:分區起始柱面號對齊 (如 C: 0, D: 102, E: 229, F: 356, G: 619) → 保護 E: 攔截柱面 229-355。
- 局限:僅對 DOS 實模式/VCPI/DPMI 程序有效;Windows 保護模式驅動繞過 INT 13H 直接操作端口/內存映射 I/O — **失效**。
- 現代對應:NTFS ACL (拒絕寫入) / 存儲控制器 Write Protect / 虛擬機磁盤唯讀模式 / 硬體寫保護開關 (部分 U盤/SD卡/企業級 SAS/SSD)。
總結對比表
| 技術 | 保護層級 | 繞過難度 | 現代替代 |
| 分區表改寫 | 邏輯隱藏/不可啟動 | 低 (懂MBR結構即可修復) | BitLocker/Veracrypt 全盤加密 |
| MBR 口令引導 | 啟動級防護 | 中 (需破解引導代碼/替換MBR) | UEFI Secure Boot + BitLocker 預啟動認證 |
| 多用戶分區管理 | 數據隔離/寫保護 | 中高 (需破解掛載邏輯/鑰匙盤) | 多卷加密 + ACL + 強制訪問控制 |
| INT 13H 寫保護 | 特定分區防寫 | 極高 (僅DOS實模式有效) | NTFS ACL / 硬體寫保護 / 唯讀掛載 |