A. 電腦硬碟被鎖被鎖,請問我該怎麼辦
解開硬碟邏輯死鎖的一種有效方法
一·序言
不知道你是否曾碰到過從軟盤和硬碟都啟動不了計算機的情形?一般計算機的硬
盤分區表被病毒感染後,若不能啟動機子,通常從軟盤可以啟動。但在嚴重的情形下 ,不但從硬
盤不能啟動機子,就是從軟盤也不能啟動。有的惡毒的病毒就能使硬碟被死鎖。筆者一次在自己
機子上玩弄硬碟鎖時,就被鎖住過一次。結果在硬碟下選擇DOS或WIN95模 式啟動機子都死機,在
軟盤下用DOS啟動也死機;在COMS中將硬碟類型選擇None,雖然可以從軟盤啟動,但啟動後沒有硬
盤,使用軟盤上的FDISK命令,想重新分區或格式化都沒門。 弄得我一籌莫展。
本來,硬碟被鎖住時,可以採用3.0以下的DOS版本啟動機子,機子啟動後雖然也
不認硬碟,但其不認的原因在於其管理不了現在的大硬碟,因此可以用Debug修改硬碟 分區表,
修改後可以啟動。但在已進入WINDOWS的年代,3.0以下的DOS實難找到,即使找到,你的機子上恐
怕也因沒有5寸軟碟機而不能使用。因此,最好的辦法是編制一個程序來解決 這個問題。筆者通過
嘗試和思考,找到一種比較實用的方法,可以輕松解開死鎖的硬碟,當然也把自己的硬碟解開
了。下面,我將這種方法介紹出來。
二·硬碟鎖住原理
硬碟鎖住通常是對硬碟的分區表做手腳,因此首先應該了解硬碟的分區表。硬碟
分區表位於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扇區的引導程序,並將分區
表破壞或故意製造一個循環分區表,而將真正的硬碟分區表參數和引導程序放在其它 隱藏扇區並
保護起來,如果啟動時口令不對,則不能啟動機子,口令對了則順利啟動。這種硬碟鎖程序,情
形好的還可以用軟盤啟動;情形嚴重的就是連軟盤也不能啟動,硬碟真被 鎖住。
三·解開硬碟鎖的程序法
如果硬碟被鎖死,是否真的就無法解開呢?當然不是。看看問題的症結所在,根
源在於DOS中的IO.SYS文件,它包含LOADER、IO1、IO2、IO3四個模塊,其中IO1中包含 有一個很
關鍵的程序SysInt_I,它在啟動中很固執,非要去讀分區表,而且不把分區表讀完誓不罷休。如
果碰上分區表是循環的,它就只有死機了。這是DOS的脆弱性和不完備性。其 實這也不能怪DOS,
因為DOS為了獲得硬碟使用權,就必需讀分區表參數,而且DOS還約定驅動器號不能超過26,只不
過沒有考慮到此等循環分區表情形。一句話,機子不能啟動不過是 DOS操作系統造成的,如果另
寫一個操作系統,或許就能啟動機子。當然這只是說個笑話。
明白了病因在於DOS,問題就好辦了。DOS啟動中不是要讀硬碟分區表嗎?我不讓
你讀分區表甚至連硬碟都不讓你讀,不就可以順利啟動了。的確是這樣的,開硬碟鎖 的程序實現
方法就是基於這個思想形成的。當然,這只有從軟盤啟動著手了。
看看計算機的啟動過程,上電首先進行的多項硬體自測跟我們沒有關系,我們關
心的只是它最開始和磁碟打交道時是干什麼。如果選擇從硬碟啟動,則計算機和磁碟 最開始打交
道是將硬碟0柱面0磁頭1扇區的內容讀入內存0000:7C00處並跳到0000:7C00處執行;如果選擇從
軟盤啟動,則計算機和磁碟最開始打交道是將A盤0磁軌0磁頭1扇區的內容 讀入內存0000:7C00處
並跳到0000:7C00處執行,在執行過程中,計算機並不檢查該扇區的內容是什麼,只機械地執行
讀命令,這使得許多系統型病毒得以生存。但利用這一點,恰 恰使我們的程序解鎖法有了用武之
地。如果我們用DOS格式化一張可以啟動機子的系統軟盤,將該軟盤的0磁軌0磁頭1扇區的內容移
到後面的空白扇區中,而重新寫一段程序到該軟盤 的0磁軌0磁頭1扇區,這樣用軟盤啟動時首先
執行的是我們所寫的程序了。在這段程序中,具備這樣一些功能:在DOS啟動前搶先攔截INT
13H,駐留高端內存並監視INT
13H,判斷是否讀硬碟,如果是讀硬碟就直接返回,這樣就禁止了讀硬碟,也就避
免了DOS讀硬碟循環分區表造成的死機;同時攔截對軟盤的讀取,如果讀軟盤的0磁軌 0磁頭1扇
區,就改成讀真正有引導程序和磁碟參數表的扇區,免得DOS在啟動中找不到軟盤的磁碟參數表而
死機。完成這些任務的同時,還要讀取軟盤真正的引導程序並把控制權交給 它。
該方法可以稱為萬能的,因為它在用軟盤啟動中,始終不與硬碟打交道,這樣不
管你硬碟用什麼方法加鎖了,對DOS的啟動都沒有影響。當然,這樣啟動的機子是不認 硬碟的,
但這沒有關系。你可在機子啟動後,用Debug調出駐留高端內存的新INT
13H程序,將其改為只有一條直接執行舊INT 13H的語句,這樣在Debug下可以用
INT
13H讀取硬碟0柱面0磁頭1扇區的內容,如果你有備份,將分區表參數恢復後再寫
入0柱面0磁頭1扇區,重新啟動計算機就可以了。如果實在沒有備份,去掉分區表中的 循環鏈,
用正常DOS啟動盤重啟機子後至少也可以重新對硬碟分區,不至於硬碟被鎖住打不開了。
B. 怎樣解除硬碟鎖
解除硬碟鎖方法如下:
1、有被加密的硬碟上會有一個鎖的圖標,如圖所示:
C. 如何把電腦鎖住硬碟鎖住
許多電腦用戶都見過或聽說過,當硬碟中了所謂的「邏輯鎖」後,無論是用軟盤、硬碟,還是光碟都不能啟動一些電腦。那麼,「邏輯鎖」到底是什麼呢? 所謂「硬碟邏輯鎖」是使用了某些DOS的一個錯誤製成的。它採用了「循環分區表」的技術,使某些有這個錯誤的DOS無法用任何設備啟動,包括軟盤等移動設 備。當DOS啟動時,系統會自動搜索硬碟中的各個分區的信息,如類型、大小等,以使系統能夠識別硬碟,分別分配為C、D、E、F等驅動器,並使用戶能對其 進行各種操作。而「邏輯鎖」正是利用了這一點,通過修改硬碟的分區表使分區表發生循環,即把擴展分區的第一個邏輯盤指向自身,使某些DOS系統啟動時查找 分區時發生死循環而無法啟動。 可見,這其實是DOS啟動時的一個錯誤造成的。據說早在1992年,就有一個叫Mike的反病毒專家發現了此問題,並報告給了有此問題的DOS的生產廠 家,如生產PC-DOS的IBM公司、生產DR-DOS/NovellDOS的Novell公司、生產MS-DOS的微軟公司等等。不久後,IBM、 Novell等公司紛紛宣布其DOS的新版本已徹底解決了此問題,唯有擁有MS-DOS的微軟公司沒有理會,導致MS-DOS的新版本,如6.x、7.x 等仍繼續存在此問題。 然而,由於微軟的MS-DOS使用得最為廣泛,所以其影響和危害也最大。一旦用戶的硬碟被「邏輯鎖」鎖住,各種微軟的操作系統,如MS-DOS 5.x/6.x/7.x/8.0等的啟動盤均無法啟動,造成了硬體故障的假像,而且連許多高手對此都束手無策。由於這種現像非常可怕,將導致電腦無法使 用,所以許多人紛紛去尋找預防及解決的辦法。其實,其解決起來並不困難,下面就介紹幾種解決辦法。 * 使用非MS-DOS的操作系統啟動 由上文可知,「硬碟邏輯鎖」主要對微軟的MS-DOS系統發生影響,因此,使用其它的DOS啟動就可以了。為此,我特意對幾種較實用的高版本的DOS,如MS-DOS 7.10、PC-DOS 7.10、DR-DOS 7.05、ROM-DOS 7.10、FreeDOS beta9、PTS-DOS Pro 2000的啟動盤在硬碟中了「邏輯鎖」的情況下進行了啟動測試,結果如下: PC-DOS 7.10啟動盤:啟動一切正常; DR-DOS 7.05(版本號:7.10)啟動盤:啟動一切正常; ROM-DOS 7.10啟動盤:啟動一切正常; FreeDOS beta9(版本號:7.10):啟動時顯示硬碟有錯誤,並完全正常啟動; PTS-DOS Pro 2000(版本號:6.90):啟動一切正常。 註:以上各種DOS都十分穩定,且均支持FAT32分區和大硬碟,其中ROM-DOS 7.10還完全本地支持長文件名,且兼容性非常好。 因此,可以用任何一種以上的DOS啟動盤啟動帶有「邏輯鎖」的硬碟,啟動後已被鎖住的硬碟驅動器的盤符(如C:)雖然看不到,但各種磁碟分區軟體,如 Norton Disk Editor 2002、Norton Disk Doctor 2002,以及DOS自帶的FDISK程序等,均可以顯示出被鎖住的硬碟,此時既可用上面提到的DISKEDIT等工具對此硬碟進行查看/手工修復等操 作,也可以用一些軟體進行自動修復,如NetResq、SRCTools等,以徹底去掉硬碟上的「邏輯鎖」,且硬碟上的數據不會受到任何損壞。 * 使用修復的MS-DOS啟動盤啟動 雖然MS-DOS啟動盤在正常狀態下不能在硬碟被鎖住的情況下啟動電腦,但是由於這僅僅是MS-DOS的啟動文件IO.SYS中的一個BUG,所以只要修 復此BUG,MS-DOS啟動盤就不會受到「邏輯鎖」的影響而能正常啟動了。不過,即使是修復BUG,也應該使用正確的方法。有人提到過通過修改 IO.SYS中的硬碟分區標記「55AA」的方法來解決問題,其實此法非常不好。因為,這種方法其實是讓IO.SYS徹底忽略硬碟的存在,即通過跳過硬碟 的方法來啟動軟盤,這樣一來,無論硬碟是否被鎖住,用此啟動軟盤啟動後硬碟都不能被識別,因此此啟動盤就不能作為正常的MS-DOS啟動盤了。相反,如果 採用正確的方法修復IO.SYS中的BUG的話,用此軟盤啟動後,若硬碟是好的,則能夠正常識別,而即使是硬碟被「邏輯鎖」鎖住了,也可以像上面的方法 (即「使用非MS-DOS的操作系統啟動」)中提到的用PC-DOS、DR-DOS、ROM-DOS、FreeDOS、PTS-DOS Pro等啟動軟盤啟動後進行進一步的修復等操作。還有人提到過MS-DOS的某些低版本,如3.2版的啟動盤以啟動電腦。但這顯然有很多缺點,一是舊版本 的DOS很難找到,二是由於其版本太低,功能很少,兼容性也很差;三是這些低版本的DOS自身不支持大硬碟(連32M都不支持)、邏輯分區等,甚至會對硬 盤造成真正的破壞,而且,MS-DOS 3.2等版本甚至連1.44M軟盤都不認識。可見,用低版本的MS-DOS啟動的方法並不是很可行。因此,使用好的方法修正高版本的MS-DOS的 IO.SYS中的BUG是很重要的。以MS-DOS 6.x的啟動盤為例,只需用任何16進制編輯器(如PCTOOLS等)查找IO.SYS文件中的16進制字元串「07 72 03」,並將最後的「03」替換為「06」即可。其它一些版本的MS-DOS也可以使用類似的方法,比如MS-DOS 7.10的IO.SYS的具體修改方法請見 「中國DOS聯盟聯合論壇」 。這樣一來,微軟的MS-DOS啟動盤也可以像其它各種DOS那樣在硬碟被「邏輯鎖」鎖住的情況下正常啟動了。 以上提到的方法都是解決「硬碟邏輯鎖」的最直接的方法(即「使用不受『邏輯鎖'影響的DOS啟動盤來啟動電腦」),也是最好的辦法。因此,只要製作一張上 面提到的任何一種啟動盤(如PC-DOS 7.10啟動盤、ROM-DOS 7.10啟動盤、FreeDOS啟動盤,或修復的MS-DOS啟動盤等)就可以了。既可平時將此啟動盤當作正常啟動盤使用,而且當硬碟被鎖住時則可用此啟 動盤啟動並解決問題。 有人還提到了其它的「方法」,如硬碟熱插拔、DM低格等等,不僅麻煩、危險,而且會可能對硬碟中的所有數據造成破壞。比如硬碟熱插拔後(需拆機箱且拿下硬 盤,並在啟動後再重新裝上硬碟,非常麻煩且危險),即使是用軟盤啟動成功了,此時硬碟將徹底不能被識別,包括各種硬碟工具也不能識別。如果用DM跳過 BIOS對硬碟進行低格,這樣一來,硬碟上的所有數據將全部丟失,不可恢復,損失非常大。由此可見,硬碟熱插拔等「方法」都是不實用也不可行的。 因此,只要找到了好的解決辦法,並進行相應的操作,所謂的「硬碟邏輯鎖」是可以輕易解決的,大家不妨一試。 0回答者: 小小媒婆 - 經理 四級
D. 硬碟被鎖是什麼意思
硬碟如果真的被鎖住了,那是很麻煩的事情,不是很理解,應該是什麼邏輯硬碟鎖,你自己是弄不了的,
還是叫你哥哥吧。低格應該可以解決。
邏輯鎖的原理是利用電腦啟動機制進而達到鎖住硬碟的效果,系統啟動時(比如從軟盤啟動),先讀取引導區,然後檢查其後的各個分區表,全部檢查完閉,才會啟動,而中了邏輯鎖的硬碟,會在硬碟引導區寫入信息,強迫系統跳回,使其造成死循環。
了解了這點就知道怎麼破解了
方法1
有很多啟動盤在啟動時不會對硬碟分區表進行檢查,只要利用這種啟動盤啟動,再利用可以分區的軟體對其重新分區就可以了(FDISK恐怕不行,但如果熟悉DEBUG一樣可以刪除分區),但這種情況我已經好多年沒有遇到了(最早好像是KV300防盜版的發明,好早了)當時好像是用的邁拓分區工具進行破除的,版本更新不知多少次了。現在沒有好的提供,你只能自己找了。
還有一個辦法,是存在我的構想當中的,因為目前的環境原因我不能嘗試,但可以提供給你:
方法2
找一個可以關閉識別硬碟的主板(大多數都可以,將硬碟所接的IDE設為禁用即可),然後就分區工具啟動(如希捷的DM,網上有下載)在這個啟動過程中,因為硬碟是檢測不到的,所以可以順利啟動,而希捷的工具啟動盤,在沒有主板識別的情況下一樣可以識別硬碟。只要刪除分區,再重建分區即可了(DM的使用方法可以到網上找,難度不高)
真沒想到現在還有被鎖的硬碟(好懷念的說。。開玩笑)
希望你的硬碟真的只是中了鎖,沒有白花錢
又看了一下題目,原來是鎖密碼啊,只要用其它啟動盤啟雲動再刪除分區就可以了,另外可以提供給你一個DEBUG刪除分區的方法《注意》只插你要處理的硬碟,不要插別的,用DOS盤啟動
鍵入debug
-a
-mov
ax,0340
-mov
bx,0200
-mov
cs,0001
-mov
dx,0080
-int
13
-int
3
-回車
(不能省略哦)
-t
-g
-q
重啟,分區表被清空,變為一塊無分區的硬碟,隨便你怎麼處理了
E. 電腦硬碟鎖住了怎麼解鎖
此問題無解,換硬碟吧。
硬碟密碼鎖常見於筆記本電腦,是直接對整個硬碟加密訪問,如果不知道正確的密碼,就無法對硬碟進行訪問。
即使是去本本售後,他們也沒辦法幫你解開密碼,所以實在想不起密碼,唯一的辦法就是換硬碟。
F. 如何解開筆記本硬碟鎖
找專業解鎖人員或是數據恢復人員用工具解鎖吧,有工具很簡單的。一般軟體很難解鎖,因為密碼已經已經鎖到硬碟或磁軌中了。。。在專業就回答不上來了
G. 電腦如何鎖硬碟
江民硬碟鎖 呵呵 你出於什麼目的鎖硬碟 如果只是為了保護某些文件 可以用360的密盤之類的軟體 如果不想叫人進系統直接到BIOS設個密碼 系統也上密碼
H. 電腦硬碟被鎖了,怎麼解決。!
解開硬碟邏輯死鎖的一種有效方法
一·序言
不知道你是否曾碰到過從軟盤和硬碟都啟動不了計算機的情形?一般計算機的硬
盤分區表被病毒感染後,若不能啟動機子,通常從軟盤可以啟動。但在嚴重的情形下 ,不但從硬
盤不能啟動機子,就是從軟盤也不能啟動。有的惡毒的病毒就能使硬碟被死鎖。筆者一次在自己
機子上玩弄硬碟鎖時,就被鎖住過一次。結果在硬碟下選擇DOS或WIN95模 式啟動機子都死機,在
軟盤下用DOS啟動也死機;在COMS中將硬碟類型選擇None,雖然可以從軟盤啟動,但啟動後沒有硬
盤,使用軟盤上的FDISK命令,想重新分區或格式化都沒門。 弄得我一籌莫展。
本來,硬碟被鎖住時,可以採用3.0以下的DOS版本啟動機子,機子啟動後雖然也
不認硬碟,但其不認的原因在於其管理不了現在的大硬碟,因此可以用Debug修改硬碟 分區表,
修改後可以啟動。但在已進入WINDOWS的年代,3.0以下的DOS實難找到,即使找到,你的機子上恐
怕也因沒有5寸軟碟機而不能使用。因此,最好的辦法是編制一個程序來解決 這個問題。筆者通過
嘗試和思考,找到一種比較實用的方法,可以輕松解開死鎖的硬碟,當然也把自己的硬碟解開
了。下面,我將這種方法介紹出來。
二·硬碟鎖住原理
硬碟鎖住通常是對硬碟的分區表做手腳,因此首先應該了解硬碟的分區表。硬碟
分區表位於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扇區的引導程序,並將分區
表破壞或故意製造一個循環分區表,而將真正的硬碟分區表參數和引導程序放在其它 隱藏扇區並
保護起來,如果啟動時口令不對,則不能啟動機子,口令對了則順利啟動。這種硬碟鎖程序,情
形好的還可以用軟盤啟動;情形嚴重的就是連軟盤也不能啟動,硬碟真被 鎖住。
三·解開硬碟鎖的程序法
如果硬碟被鎖死,是否真的就無法解開呢?當然不是。看看問題的症結所在,根
源在於DOS中的IO.SYS文件,它包含LOADER、IO1、IO2、IO3四個模塊,其中IO1中包含 有一個很
關鍵的程序SysInt_I,它在啟動中很固執,非要去讀分區表,而且不把分區表讀完誓不罷休。如
果碰上分區表是循環的,它就只有死機了。這是DOS的脆弱性和不完備性。其 實這也不能怪DOS,
因為DOS為了獲得硬碟使用權,就必需讀分區表參數,而且DOS還約定驅動器號不能超過26,只不
過沒有考慮到此等循環分區表情形。一句話,機子不能啟動不過是 DOS操作系統造成的,如果另
寫一個操作系統,或許就能啟動機子。當然這只是說個笑話。
明白了病因在於DOS,問題就好辦了。DOS啟動中不是要讀硬碟分區表嗎?我不讓
你讀分區表甚至連硬碟都不讓你讀,不就可以順利啟動了。的確是這樣的,開硬碟鎖 的程序實現
方法就是基於這個思想形成的。當然,這只有從軟盤啟動著手了。
看看計算機的啟動過程,上電首先進行的多項硬體自測跟我們沒有關系,我們關
心的只是它最開始和磁碟打交道時是干什麼。如果選擇從硬碟啟動,則計算機和磁碟 最開始打交
道是將硬碟0柱面0磁頭1扇區的內容讀入內存0000:7C00處並跳到0000:7C00處執行;如果選擇從
軟盤啟動,則計算機和磁碟最開始打交道是將A盤0磁軌0磁頭1扇區的內容 讀入內存0000:7C00處
並跳到0000:7C00處執行,在執行過程中,計算機並不檢查該扇區的內容是什麼,只機械地執行
讀命令,這使得許多系統型病毒得以生存。但利用這一點,恰 恰使我們的程序解鎖法有了用武之
地。如果我們用DOS格式化一張可以啟動機子的系統軟盤,將該軟盤的0磁軌0磁頭1扇區的內容移
到後面的空白扇區中,而重新寫一段程序到該軟盤 的0磁軌0磁頭1扇區,這樣用軟盤啟動時首先
執行的是我們所寫的程序了。在這段程序中,具備這樣一些功能:在DOS啟動前搶先攔截INT
13H,駐留高端內存並監視INT
13H,判斷是否讀硬碟,如果是讀硬碟就直接返回,這樣就禁止了讀硬碟,也就避
免了DOS讀硬碟循環分區表造成的死機;同時攔截對軟盤的讀取,如果讀軟盤的0磁軌 0磁頭1扇
區,就改成讀真正有引導程序和磁碟參數表的扇區,免得DOS在啟動中找不到軟盤的磁碟參數表而
死機。完成這些任務的同時,還要讀取軟盤真正的引導程序並把控制權交給 它。
該方法可以稱為萬能的,因為它在用軟盤啟動中,始終不與硬碟打交道,這樣不
管你硬碟用什麼方法加鎖了,對DOS的啟動都沒有影響。當然,這樣啟動的機子是不認 硬碟的,
但這沒有關系。你可在機子啟動後,用Debug調出駐留高端內存的新INT
13H程序,將其改為只有一條直接執行舊INT 13H的語句,這樣在Debug下可以用
INT
13H讀取硬碟0柱面0磁頭1扇區的內容,如果你有備份,將分區表參數恢復後再寫
入0柱面0磁頭1扇區,重新啟動計算機就可以了。如果實在沒有備份,去掉分區表中的 循環鏈,
用正常DOS啟動盤重啟機子後至少也可以重新對硬碟分區,不至於硬碟被鎖住打不開了。
四·程序及說明
1·下面是寫入軟盤0磁軌0頭1扇區的源程序key.com,程序用debug輸入。
C>debug
-a100
100 CLI
101 XOR AX,AX
103 MOV DS,AX
105 MOV ES,AX
107 MOV SS,AX
109 MOV AX,7C00
10C MOV SP,AX
10E STI
10F MOV SI,AX
111 MOV DI,7E00
114 CLD
115 MOV CX,0200
118 REPNZ
119 MOVSB
11A JMP 0000:7E1F
11F MOV CX,0003
122 PUSH CX
123 MOV AX,0201;讀啟動軟盤的引導扇區
126 MOV BX,7C00
129 MOV CX,4F01
12C MOV DX,0100
12F INT 13
131 POP CX
132 DEC CX
133 JNZ 0122
135 MOV AX,[004C];搶先獲取INT 13H的位置
138 MOV [7E88],AX
13B MOV AX,[004E]
13E MOV [7E8A],AX
141 MOV AX,[0413]
144 DEC AX
145 MOV [0413],AX
148 MOV CL,06
14A SHL AX,CL
14C MOV ES,AX
14E XOR AX,AX
150 MOV DS,AX
152 MOV SI,7E6D;復制改寫的INT 13H程序到高端內存
155 MOV DI,0000
158 MOV CX,0030
15B REPNZ
015C MOVSB
015D MOV AX,0000;將新INT 13H位置寫入中斷向量表
0160 MOV [004C],AX
0163 MOV AX,ES
0165 MOV [004E],AX
0168 JMP 0000:7C00
016D PUSHF;新INT 13H程序
016E CMP DX,0080;是否是硬碟
0172 JNZ 0176;不是硬碟則繼續
0174 POPF
0175 IRET;是硬碟則直接返回
0176 CMP DX,+00;是否讀軟盤BOOT區?
0179 JNZ 0186
017B CMP CX,+01
017E JNZ 0186
0180 MOV CX,4F01;是則讀79磁軌1磁頭1扇區
0183 MOV DX,0100
0186 POPF
0187 JMP 0000:0000;此處跳轉去執行舊INT 13,
;舊INT 13H的位置由前面程序獲得後寫入。
N key.com
RCX
200
W
Q
2·程序的裝載
在進行下面工作前,先用DOS格式化一張啟動的系統盤,並保證沒有壞扇區,最好
進行啟動測試,確保其可以啟動機子。由於現在機子上大多隻有3寸軟碟機,因此選 擇1.44M的3.5
寸軟盤。然後用debug
key.com將程序key.com調入內存偏移地址為100H,同時在400H處寫入一段裝載程
序。即:
C>debug key.com
-a400
400 MOV CX,0003
403 PUSH CX
404 MOV AX,0201;將A盤引導程序讀入內存1000H處
407 MOV BX,1000;為確保成功,首次採用重復讀3次
40A MOV CX,0001
40D MOV DX,0000
410 INT 13
412 POP CX
413 DEC CX
414 JNZ 0403
416 MOV AX,0301;將已讀入內存的軟盤引導程序寫入軟盤
419 MOV BX,1000;最後一個磁軌的首扇區
41C MOV CX,4F01
41F MOV DX,0100
422 INT 13
424 MOV AX,0301;將key.com程序寫入軟盤0磁軌0磁頭1扇區
427 MOV BX,0100
42A MOV CX,0001
42D MOV DX,0000
430 INT 13
432 INT 3
為保證萬無一失,最好將軟盤這兩個扇區的內容重新讀出來看一看,以保證寫成
功了。做好這一切,保險的還是進行一次測試,即用該軟盤啟動一次機子,看能否成 功,若成功
啟動,你就可以用循環分區表法鎖住硬碟,看從正常DOS下能否啟動,然後再用此軟盤啟動機子試
試,看看功效如何?
從該軟盤啟動後,不認硬碟,並且在高端內存駐留了新INT
13H程序,該段程序實際上是key.com中從16D到187部分。由於有此段程序存在,
在debug下也無法讀硬碟,也就沒法恢復硬碟分區表,因此機子啟動後首先應修改這段 程序。現
在的機子基本內存通常都為640K,這樣這段程序就位於內存中9FC0:0000處,在debug下,用
U9FC0:0顯示這段程序,可以看到位於9FC0:001A處是一條跳轉指令,該跳轉指 令即轉去執行最
原始的INT
13H。由於BIOS版本不一樣,跳轉指令指向的位置可能不一樣,如筆者機子上是一
條JMP
F000:A5D4語句。這時在在debug下編寫這樣一語句:a9FC0:0 JMP
F000:A5D4。這樣,對硬碟的禁寫與禁讀都不再起作用了,在debug下用INT
13H的2號子功能可以讀出硬碟分區表,修改恢復後再用3號子功能將數據寫回分區
表。退出debug,重新用正常DOS啟動計算機,就可以了。
附帶提一下,在正常DOS下,該軟盤由於沒有BOOT區,也就沒有磁碟參數表,從而
不能使用,用DIR A:命令會出現General
failure reading drive A提示。不要理睬它,這並不影響它作特殊啟動盤。
五·建議
為更好的保護你的硬碟,筆者建議你最好將你的硬碟分區表信息備份起來。備份
有兩種方式,一種是以文件形式將硬碟每個邏輯盤的分區信息存儲起來;另一種是將 分區信息備
份在硬碟隱藏扇區里。比如可以將0柱面0磁頭1扇區備份在0柱面0磁頭3扇區,將D盤開始柱面號0
磁頭1扇區備份在該柱面0磁頭3扇區,其它邏輯盤也如此。這種方法簡單、 方便,也很可靠。用
NORTAN中的DISKEDI很容易操作和實現。有了備份分區表信息,就不怕破壞分區表的病毒了;再加
上我給你的程序,即使有人真鎖住了你的硬碟,你也可以輕而易 舉解開了。
I. 硬碟被鎖了,要怎麼解鎖
可以使用U盤來進入系統解決,步驟如下:
第一步、插入USB介面後,在開機的時候按對應按鍵進入BIOS。
J. 什麼是硬碟鎖如何解開
解除硬碟邏輯鎖的方法!
「硬碟邏輯鎖」是一種很常見的惡作劇手段。中了邏輯鎖之後,無論使用什麼設 備都不能正常引導系統,甚至是軟盤、光碟機、掛雙硬碟都一樣沒有任何作用。 「邏輯 鎖」的上鎖原理:計算機在引導DOS系統時將會搜索所有邏輯盤的順序, 當DOS被引導時,首先要去找主引導扇區的分區表信息,然後查找各擴展分區的邏輯盤。 「邏輯鎖修改了正常的主引導分區記錄,將擴展分區的第一個邏輯盤指向自己,使得DOS在啟動時查找到第一個邏輯盤後,查找下個邏輯盤總是找到自己, 這樣一來就形成了死循環。給「邏輯鎖」解鎖比較容易的方法是「熱拔插」硬碟電源。 就是在當系統啟動時,先不給被鎖的硬碟加電,啟動完成後再給硬碟「熱插」上電源線, 這樣系統就可以正常控制硬碟了。為了降低危險程度,碰到「邏輯鎖」後, 大家最好依照下面兩種比較簡單和安全的方法處理。
★UltraEdit★ 首先准備一張啟動盤, 然後在其他正常的機器上使用二進制編輯工具(推薦UltraEdit)修改軟盤上的IO.SYS文件(修改前記住先將該文件的屬性改為正常),具體是在這個文件裡面搜索第一個「55AA」字元串, 找到以後修改為任何其他數值即可。用這張修改過的系統軟盤你就可以順利地帶著被鎖的硬碟啟動了。 不過這時由於該硬碟正常的分區表已經被破壞,你無法用「Fdisk」來刪除和修改分區。
★DM★ 因為DM是不依賴於主板BIOS來識別硬碟的硬碟工具,就算在主板BIOS中將硬碟設為「NONE」,DM也可識別硬碟並進行分區和格式化等操作, 所以我們也可以利用DM軟體為硬碟解鎖。首先將DM拷到一張系統盤上,接上被鎖硬碟後開機,按「Del」鍵進入BIOS設置,將所有IDE介面設為「NONE」並保存後退出,然後用軟盤啟動系統,系統即可「帶鎖」啟動,因為此時系統根本就等於沒有硬碟。啟動後運行DM, 你會發現DM
可以識別出硬碟,選中該硬碟進行分區格式化就可以了。