萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 電腦故障排除 >  >> 電腦故障維修

硬碟邏輯鎖原理解析與兩大無損解鎖實戰教學

「邏輯鎖」並非硬體加密,而是惡意修改主引導記錄 (MBR) 分區表指標,導致 DOS/Windows 9x 啟動時陷入邏輯分區遞迴死循環。本文深度剖析其運作機制,提供 **DEBUG 手動修復分區表(保留數據)** 與 **DM 工具繞過 BIOS 重分區(數據全失)** 兩種解鎖方案,並附完整指令碼。

邏輯鎖核心機制:MBR 分區表指標劫持

標準 MBR 結構(LBA 0,偏移 0x1BE 起 64 位元組):

  • 第 1 項(Offset 0x1BE):**主分區**,啟動旗標 0x80,類型 0x06/0x0B/0x07 (FAT16/FAT32/NTFS)。
  • 第 2 項(Offset 0x1CE):**擴展分區**,類型 0x05/0x0F,指向第一個邏輯分區的 EBR (Extended Boot Record)。
  • 第 3/4 項:通常為 0。

邏輯鎖手法:將第 2 項「擴展分區起始 LBA」指向**自身 EBR 位址**,並將該 EBR 的「下一個邏輯分區指標」同樣指向自己。系統啟動時遍歷分區鏈表:讀取主分區 → 讀取擴展分區 EBR → 發現下一個 EBR 指向自己 → 死循環 → 無法掛載任何邏輯磁碟機,甚至軟碟/光碟啟動後仍無法存取硬碟(INT 13h 掃描流程同樣受阻)。

方案一:DEBUG 手動修復分區表(保留數據,技術含量高)

準備工具

  • DOS 6.22/Win98 啟動軟碟/USB(含 DEBUG.EXE、FDISK.EXE、PQMAGIC/PTEDIT 可選)。
  • 另一台正常電腦用於製作修改版 IO.SYS(見下)。

步驟 1:繞過 IO.SYS 掃描死循環

IO.SYS 啟動時會掃描所有邏輯磁碟機,陷入死循環。修改法:

  1. 複製啟動碟上的 `IO.SYS` 至工作目錄,`ATTRIB -R -S -H IO.SYS` 移除屬性。
  2. 用十六進位編輯器 (Debug/UltraEdit/HxD) 開啟,搜尋第一組 `55 AA`(MBR 有效標記),將其改為 `00 00` 或 `EB FE`(短跳轉指令)。
  3. 存檔覆蓋回啟動碟,此碟現在可**忽略硬碟分區掃描直接進入 DOS 命令列**。

步驟 2:DEBUG 讀取 MBR 並定位錯誤分區項

A:\>DEBUG
-A 100
xxxx:0100 MOV AX, 0201      ; 讀取 1 扇區
xxxx:0103 MOV BX, 0500      ; 緩衝區段:偏移 0500:0000
xxxx:0106 MOV CX, 0001      ; 扇區數
xxxx:0109 MOV DX, 0080      ; 驅動器 0 (第一顆硬碟)
xxxx:010C INT 13            ; BIOS 磁碟服務
xxxx:010E INT 20            ; 返回 DOS
xxxx:0110
-G                          ; 執行
-D 500                      ; 查看 0500:0000 緩衝區內容

在 0500:01BE (即 06BE) 起查看 4 項分區記錄。尋找「類型 0x05/0x0F」且「起始 LBA 指向自身 EBR」的項目——即為邏輯鎖植入點。

步驟 3:修改記憶體中分區表,斷開循環指標

-E 6BE                     ; 進入編輯模式,地址 06BE (第一分區項)
 06BE: 80 01 01 00 06  ...  (按空格跳過正常主分區項)
 06CE: 00 01 01 00 05  XX YY ZZ WW  ...  (第二項:擴展分區)
      ^^^^^^^^^^^^^^^^^  起始 CHS / 類型 / 結束 CHS / 起始 LBA (4 bytes) / 扇區數 (4 bytes)

將該項「起始 LBA」四位元組(XX YY ZZ WW)全部改為 `00 00 00 00`,**或改為正確的 EBR 真實 LBA**(需先用 PTEDIT/PQMAGIC 掃描得知真實位置)。保留結尾 `55 AA`(偏移 0x1FE)。

步驟 4:寫回 MBR 並重建啟動代碼

-A 100
xxxx:0100 MOV AX, 0301      ; 寫入 1 扇區
xxxx:0103 MOV BX, 0500
xxxx:0106 MOV CX, 0001
xxxx:0109 MOV DX, 0080
xxxx:010C INT 13
xxxx:010E INT 20
-G
-Q

退出 DEBUG,執行 `FDISK /MBR` 重寫啟動代碼區(不動分區表),重開機即可恢復正常掛載。

方案二:DM 工具繞過 BIOS 重分區(操作簡單,數據全失)

適用於不需保留數據、或方案一失敗時的終極手段。原理:DM (Disk Manager) 為 Ontrack 開發的磁碟管理工具,**不依賴 BIOS INT 13h 掃描**,直接透過 I/O 埠操作硬碟控制器,故能識別被 BIOS 設為 NONE 或邏輯鎖干擾的硬碟。

操作流程

  1. 取得硬碟廠商專用 DM 版本(Seagate DiscWizard、WD Data Lifeguard、Maxtor MaxBlast、通用版 Ontrack DM 9.57+),複製至啟動碟。
  2. 進 BIOS (CMOS Setup),將**所有 IDE/SATA 通道設為 NONE / AUTO → Disabled**,存檔重開機。
  3. 系統啟動時 BIOS 不掃描硬碟,避開邏輯鎖死循環,順利進入 DOS。
  4. 執行 `DM.EXE`,選擇目標硬碟 → `Partition` → `Create` → 全部建立為 Primary/Extended/Logical → `Write` 寫入新分區表 → `Format` 格式化。
  5. 重開機進 BIOS 恢復硬碟設定為 Auto,系統正常識別新分區。

關鍵提醒

  • DM 操作**不可逆**,執行 Write 瞬間原分區表覆蓋,數據 100% 損失。
  • 若硬碟 > 8.4GB (CHS 1024/255/63 限制),需確認 DM 版本支援 LBA48/INT13h Extensions,否則僅能識別前 8.4GB。
  • 現代大容量硬碟 (>2TB) 需使用支援 GPT 的 DM 版本或直接在 WinPE 下用 DiskPart/GParted 清除分區表。

預防勝於治療:邏輯鎖防範三板斧

  1. MBR 寫保護:主板 BIOS 啟用「Boot Sector Virus Protection」/「BIOS Write Protect」;或使用物理寫保護跳線(舊主板)、軟體工具 (MBRGuard、BootSafe) 鎖定 MBR 寫入。
  2. 引導碼完整性驗證:每季用 `MbrFix /drive 0 save mbr.bin` 備份 MBR,異常時 `MbrFix /drive 0 restore mbr.bin` 秒級恢復。
  3. 最小權限原則:日常使用標準用戶帳號,UAC 設為最高,禁止不明來源程式以管理員執行。

邏輯鎖看似棘手,實則是利用 DOS 時代分區掃描演算法的缺陷。掌握 MBR 結構與 DEBUG/工具操作,即可從容化解。但切記:**任何磁碟結構修改前,務必先完整備份重要數據**——這才是永遠不敗的鐵律。

copyright © 萬盛學電腦網 all rights reserved