什麽叫硬盤的邏輯鎖,如何解開?
硬盤邏輯鎖總***有三種,本質都是對硬盤的分區表作了修改,以前只是壹些黑客程序使用它,開始大範圍對計算機造成危害是在臭名昭著的KV3000反盜版事件的時候,那時江民公司為了打擊盜版。在KV3000新版升級程序植入了壹個黑客程序,當檢測到用戶使用了盜版的KV3000以後就將硬盤的分區表鎖住,被稱為“主動邏輯鎖”,其實就是硬盤邏輯鎖的壹種,當時卻使無數無辜的人受害,江民公司也因此被定罪。這是舊事不談,下面我們就來介紹壹下它的三種情況和解決方法。 首先我們來了解壹下硬盤的分區表。硬盤分區表位於磁盤的0磁頭0柱面1扇區,這個扇區從01BEH開始的64個字節就是分區表。分區表***64字節,分為4欄,每欄16個字節描述壹個分區。如果用FDISK程序分區,那最多只用兩欄,第壹欄描述主引導分區,第二欄描述擴展分區。分區表的結構與各字節的含義如下: 00H—標誌活動字節。活動DOS分區為80H,其它為00H。 01H—本分區邏輯0扇區所在的磁頭號。 02H—邏輯0扇區所在柱面中的扇區號。 03H—邏輯0扇區所在的柱面號。 04H—分區類型標誌。 05H—本分區最後壹個扇區的磁頭號。 06H—最後壹個扇區的扇區號。 07H—最後壹個柱面的柱面號。 08H—硬盤上在本分區之前的扇區總數,用雙字節表示。 0CH—本分區的扇區總數,從邏輯0扇區計數,不含隱藏扇區,用雙字節表示。 分區表的最後兩個字節是它的有效標誌,改變後將無法從硬盤啟動,這就是第壹種簡單的鎖住硬盤的方法。不過比較容易解決,只要從軟盤啟動就壹切正常,啟動後用Debug或Diskedit等軟件將硬盤分區表中的標誌恢復就可以了。第二種方法是修改分區參數,如果將分區參數全部變為0,則啟動後由於找不到分區參數無法從硬盤啟動,用啟動盤從軟盤啟動後也不認硬盤,不過機器畢竟能夠啟動,我們可以在啟動後用軟盤裏的debug等工具修復被改動的分區表參數,重新啟動後就沒問題了。 我們重點要講的就是第三種,也就是上文提到的“主動邏輯鎖”,它是因為分區表參數被修改成了壹個死循環。正常啟動時DOS接管硬盤後查找分區表,主引導分區被定義為C盤,然後查找邏輯盤,定義為D盤,然後是E、F、G,而這個主動邏輯鎖就是將第壹個邏輯盤(壹般是D盤)的下壹個分區指向它本身,不斷讀取下壹個,其實就是讀它自己,結果陷入死循環。因為DOS啟動必須包含基本輸入輸出文件io.sys(我們在windows下也可以看到,位於C盤根目錄下)。而它是有些固執的,啟動以後非要把硬盤分區表讀完然後接管不可,所以無論我們用什麽啟動,它壹查找邏輯盤就死循環,我們就看到了硬盤燈常亮系統掛起的情況了。 那麽我們如何解開它呢?從根本上講就是讓io.sys不起作用或者在它起作用以前將分區表參數修改回來。 1、debug法。 用這種方法首先必須要能啟動機器,我們可以在壹臺正常的電腦上修改啟動軟盤中的io.sys文件,查找到第壹個“55aa”字符串,找到以後修改為任何其他數值,用這張啟動軟盤妳就可以順利地帶著被鎖的硬盤啟動了。不過這時該硬盤的分區表已經不正常,所以我們無法用FDISK來刪除和修改分區,而且仍然無法用正常的啟動盤啟動系統,這時可以用DEBUG來手工恢復。具體命令如下: a:>debug -a -:100 mov ax,0201(讀壹扇區內容) -:103 mov bx,500(設置壹緩存地址) -:106 mov cx,0001(設置第壹硬盤的硬盤指針) -:109 mov dx,0080(讀零磁頭) -:10c int 13 (硬盤中斷) -:10e int 20 -:0110 回車 (註:-各硬盤不相同,跟後面的:1?都是自動顯示的,我們要輸入的只是其後的內容) -g -d500 (查看運行後緩存地址500的內容,這時候我們會發現地址6be開始的內容就是硬盤分區表信息,如果硬盤的擴展分區正是指向自己,那麽DOS或WINDOWS啟動時就會因查找邏輯分區而陷入死循環。)在DEBUG指示符下繼續修改內存數據: E6BE ?.0 ?.0 ?.0…… …… ……55 AA 55 AA是硬盤有效的標誌,不要修改,?.0表示把以前的數據“?”改成了0,再用硬盤中斷13把修改好的數據寫入硬盤就可以了: A:>debug a 100 (表示修改100地址的匯編指令) -:100 mov ax,0301 (寫硬盤壹個扇區) -: 回車 -g (運行) -q (退出) 退出後運行fdisk/mbr來重置硬盤引導程序,重新啟動即可。 這種方法雖然麻煩壹點,但是它能夠恢復硬盤分區表,也就是說恢復以後硬盤中的數據也不會丟失。而以下方法雖然更加方便,但是要麽硬盤中的數據難保,要麽有壹定危險性。 2、外掛軟件法 這種方法原理都是繞過bios對硬盤的檢測而直接用壹些能夠自己查找硬盤的軟件來控制硬盤。 首先是DM,現在每壹個硬盤廠商都有自己的DiskManager程序,而且都能放進壹張軟盤裏,妳可以下載壹個使用,如果不清楚自己硬盤的牌子,也可以用IBM出的DM萬用版,不過它對現在32G以上的大硬盤支持不好。我們先在bios裏面將硬盤所在的IDE口設置為none,(如果妳不知道哪個是,全部設為none也可以),然後用啟動盤啟動系統,啟動完成後將軟盤取出,放入裝有DM軟件的軟盤,運行DM,它會檢測到妳的病硬盤的存在,然後將它重新分區就搞定了。DM具體用法比較簡單,就不詳細說了,不過對E文不太好的朋友可能有些困難,請教身邊的高手吧。 我們還可以使用低格軟件,也是每壹種硬盤都有自己的低格軟件,但也有通用的Lformat程序(只有30多k),前面的做法相同,還是在bios裏面屏蔽掉硬盤,用啟動盤啟動,然後換軟盤運行低格程序對硬盤進行低級格式化,由於分區表只在硬盤最前列部分,所以估摸著格過前面的分區表部分就可以停止了,然後重新啟動在bios裏面將硬盤設出來,就可以像壹塊新的硬盤壹樣對它進行分區等操作了。 3、熱插拔 這是最危險的壹種方法,很有可能將妳的硬盤燒毀,所以請謹慎。具體做法很簡單,首先將硬盤的電源線拔掉,然後軟盤啟動系統,啟動完成後再將硬盤的電源線插上,這時候系統就能夠控制硬盤了,可以對它進行分區,恢復分區表等操作。我有壹個菜鳥朋友就是在熱插拔硬盤3次以後搞定的。不過此種方法存在危險,強烈不推薦使用,如因此損壞,本人概不負責。 其實最好的情況是妳有分區表備份,那恢復起來就比較容易了,而且數據也不會丟失。