硬盤鎖住通常是對硬盤的分區表做手腳,因此首先應該了解硬盤的分區表。硬盤分區表位于0柱面0磁頭1扇區,這個扇區的前面200多個字節是主引導程序,后面從01BEH開始的64個字節是分區表。分區表共64字節,分為4欄,每欄16字節,用來描述一個分區。如果是用DOS的FDISK程序分區后,最多只用兩欄,第一欄描述基本的DOS分區, 二欄描述擴展的DOS分區。 分區表一欄的結構與各字節的含義如下:
00H—標志活動字節,活動DOS分區為80H,其它為00H。
01H—本分區邏輯0扇區所在的磁頭號。
02H—邏輯0扇區所在柱面中的扇區號。
03H—邏輯0扇區所在的柱面號。
04H—分區類型標志。
05H—本分區最后一個扇區的磁頭號。
06H—最后一個扇區的扇區號。
07H—最后一個柱面的柱面號。
08H—硬盤上在本分區之前的扇區總數,用雙字表示。
0CH—本分區的扇區總數,從邏輯0扇區計數,不含隱藏扇區,用雙字表示。
在上面的介紹中給出的柱面號與扇區號雖然各占一個字節,但實際上扇區號用6位表示,柱面號用10位表示,扇區號所在字節的最高兩位實際上是柱面號的最高兩位。 分區表的最后兩個字節是分區表的有效標志,如果將其改變,將不能從硬盤啟動,這是一種簡單的鎖住硬盤的方法。解決的辦法是從軟盤啟動,啟動后硬盤仍然可以使用。用Debug或Noratn中的Diskedit軟件將硬盤該分區表中的標志恢復,則從硬盤啟動也沒有問題了。鎖住硬盤的另一種方法是對分區參數做手腳,如果將分區參數全部變為0,則啟動時由于找不到分區參數,從硬盤是沒法啟動,從軟盤啟動后也不認硬盤,如果你敲入盤符C并回車,將出現提示Invalid driver specification。
但所幸的是,畢竟可以啟動機子,不認硬盤沒關系,在A盤上用DOS的Debug仍然可以讀出硬盤0柱面0磁頭1扇區的內容,修改后再寫入0柱面0磁頭1扇區,重新啟動機子又沒問題了。如果將分區表參數隨意改為其它參數,則有可能不能用可以安裝DOS的DOS系統盤啟動,按F3退出后將出現內存分配錯誤,不能裝載DOS的命令解釋器COMMAND的提示,系統就死機了,筆者就曾碰見過這種情形。但用一張格式化成系統盤的軟盤則可以順利啟動,只要有Debug,你仍然可以將分區表參數修改回去。
可怕的事情是,如果你不幸將分區表參數改成一個循環鏈,即C盤的下一個分區指向D驅,D驅的下一個分區又指向C區,這樣循環下去,DOS啟動或WIN95啟動時由于無休止的讀取邏輯驅動器,就只有死機的份了。這是只要有硬盤存在,不管你用軟盤還是硬盤都沒法啟動機子了,由于不能啟動是由于硬盤造成的,即使你將硬盤下到其它計算機上,也沒法使用,這樣硬盤就徹底被鎖死了,筆者所遭遇就是此情形。不信,你只需將硬盤0柱面0磁頭1扇區的1D0H處改為1(如果你的D驅開始柱面號不夠大,此處本來就為1),將1D1H處改為0,表示D盤的開始柱面號跟C盤一樣,看看你的計算機還能不能啟動,不過你在沒有充分的準備前絕不要試。
一個完整的硬盤鎖程序,不過是重新改寫0柱面0磁頭1扇區的引導程序,并將分區表破壞或故意制造一個循環分區表,而將真正的硬盤分區表參數和引導程序放在其它隱藏扇區并保護起來,如果啟動時口令不對,則不能啟動機子,口令對了則順利啟動。這種硬盤鎖程序,情形好的還可以用軟盤啟動;情形嚴重的就是連軟盤也不能啟動,硬盤真被鎖住
做為一家企業IT服務提供商,我們有責任也有義務為企業提供IT外包的相關信息,為企業的發展提升更高的效率,創造更大價值。
艾銻無限,成就夢想!
相關文章