明輝手游網(wǎng):m.79things.com

本站App下載  |  

首頁 > 電腦資訊 > 電腦知識

硬盤邏輯鎖詳細解答

作者:佚名   來源:本站   時間:2018-05-10  點擊:107次

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

推薦游戲

換一換