硬碟邏輯鎖源自江民 KV300 反盜版機制,後被惡意利用。朋友下載邏輯鎖程式自測,反將自家硬碟鎖死:光碟/軟碟機失效、DOS 無法進入。
DOS 引導時搜尋主引導扇區(0 磁頭 0 柱面 1 扇區 0BEH 起始)分區表。80H 為主引導分區(C 槽),其他為擴展分區(D 槽起)。邏輯鎖修改主引導分區記錄,將擴展分區第一邏輯分區指向自己,DOS 找到第一邏輯分區後找下一個永遠找到自己,形成死循環,導致任何開機裝置均無法正常啟動。
邏輯鎖利用 MS-DOS IO.SYS 缺陷,其他 DOS 無此問題。用上述非 MS-DOS 開機盤啟動後,執行 FDISK /MBR 即可恢復正常,極為方便。
A:\>debug -a xxxx:100 mov ax,0201 ; 讀一扇區 xxxx:103 mov bx,500 ; 緩衝區址 xxxx:106 mov cx,0001 ; 第 1 顆硬碟 xxxx:109 mov dx,0080 ; 0 磁頭 xxxx:10c int 13 ; 硬碟中斷 xxxx:10e int 20 xxxx:0110 -g ; 執行 -d500 ; 查看 500h 內容
發現 6BEh 起始為分區資訊,擴展分區指向自己。用 E 命令修改記憶體資料將錯誤指標歸零(保留 55AA 結束標記),再用 int 13 寫回硬碟(ax=0301),執行 FDISK /MBR 重置引導程式碼,重啟一切正常,資料完整無遺失。