ibm硬盤如何解鎖(放電)
作者:佚名 文章來源:本站原創(chuàng) 點(diǎn)擊數(shù): 更新時間:2012/7/2
核心提示:計算機(jī)在引導(dǎo)DOS系統(tǒng)時將會搜索所有邏輯盤的順序,當(dāng)DOS被引導(dǎo)時,首先要去找主引導(dǎo)扇區(qū)的分區(qū)表信息,位于硬盤的零頭零柱面的第一個扇區(qū)的OBEH地址開始的地方,當(dāng)分區(qū)信息開始的地方為80H時表示是主引導(dǎo)分區(qū).
計算機(jī)在引導(dǎo)DOS系統(tǒng)時將會搜索所有邏輯盤的順序,當(dāng)DOS被引導(dǎo)時,首先要去找主引導(dǎo)扇區(qū)的分區(qū)表信息,位于硬盤的零頭零柱面的第一個扇區(qū)的OBEH地址開始的地方,當(dāng)分區(qū)信息開始的地方為80H時表示是主引導(dǎo)分區(qū),其他的為擴(kuò)展分區(qū),主引導(dǎo)分區(qū)被定義為邏輯盤C盤,然后查找擴(kuò)展分區(qū)的邏輯盤,被定義為D盤,以此類推找到E,F(xiàn),G.....“邏輯鎖”就是在此下手,修改了正常的主引導(dǎo)分區(qū)記錄將擴(kuò)展分區(qū)的第一個邏輯盤指向自己,DOS在啟動時查找到第一個邏輯盤后,查找下個邏輯盤總是找到是自己,這樣一來就形成了死循環(huán),這就是使用軟驅(qū),光驅(qū),雙硬盤都不能正常啟動的原因。實(shí)際上這“邏輯鎖”只是利用了DOS在啟動時的一個小小缺陷,便令不少高手都束手無策。知道了“邏輯鎖”的“上鎖”原理,要解鎖也就比較容易了。以前我看到有位朋友采用“熱拔插”硬盤電源的方法來處理:就是在當(dāng)系統(tǒng)啟動時,先不給被鎖的硬盤插上電源線,等待啟動完成后再給硬盤“熱插”上電源線,這時如果硬盤沒有燒壞的話,系統(tǒng)就可以控制硬盤了。當(dāng)然這是一種非常危險的方法,大家不要輕易嘗試,下面介紹兩種比較簡單和安全的處理方法。 --------------------------------------------------------------------------------
方法一:修改DOS啟動文件
首先準(zhǔn)備一張DOS6.22的系統(tǒng)盤,帶上debug、pctools5.0、fdisk等工具。然后在一臺正常的機(jī)器上,使用你熟悉的二進(jìn)制編輯工具(debug、pctools5.0,或者windows下的ultraedit都行)修改軟盤上的IO.SYS文件(修改前記住改該文件的屬性為正常),具體是在這個文件里面搜索第一個“55aa”字符串,找到以后修改為任何其他數(shù)值即可。用這張修改過的系統(tǒng)軟盤你就可以順利地帶著被鎖的硬盤啟動了。不過這時由于該硬盤正常的分區(qū)表已經(jīng)被黑客程序給惡意修改了,你無法用FDISK來刪除和修改分區(qū),而且仍無法用正常的啟動盤啟動系統(tǒng),這時你可以用DEBUG來手工恢復(fù)。使用DEBUG手工修復(fù)硬盤步驟如下:
--------------------------------------------------------------------------------
a:\\>debug
-a
-xxxx:100 mov ax,0201 讀一個扇區(qū)的內(nèi)容
-xxxx:103 mov bx,500 設(shè)置一個緩存地址
-xxxx:106 mov cx,0001 設(shè)置第一個硬盤的硬盤指針
-xxxx:109 mov dx,0080 讀零磁頭
-xxxx:10c int 13 硬盤中斷
-xxxx:10e int 20
-xxxx:0110 退出程序返回到指示符
-g 運(yùn)行
-d500 查看運(yùn)行后500地址的內(nèi)容
這時候會發(fā)現(xiàn)地址6be開始的內(nèi)容是硬盤分區(qū)的信息,發(fā)現(xiàn)此硬盤的擴(kuò)展分區(qū)指向自己,這就使DOS或WINDOWS啟動時查找硬盤邏輯盤進(jìn)去死循環(huán),在DEBUG指示符下用E命令修改內(nèi)存數(shù)據(jù) 具體如下:
E6BE
xx.0 xx.0 xx.0...............
.............................
.......................55 AA
55 AA表示硬盤有效的標(biāo)記,不要修改,xx0表示把以前的數(shù)據(jù)“xx”改成0
再用硬盤中斷13把修改好的數(shù)據(jù)寫入硬盤就可以了,具體如下:
A:\\>debug
a 100 表示修改100地址的匯編指令
-xxxx:100 mov ax,0301 寫硬盤一個扇區(qū)
-xxxx: 這里直接按回車
-g 運(yùn)行
-q 退出
然后運(yùn)行 FDISK/MBR(重置硬盤引導(dǎo)扇區(qū)的引導(dǎo)程序),再重新啟動電腦就行了。
怎么樣?用這種方法處理夠簡單的吧?而且這種方法還有一個好處就是可以保住盤上的數(shù)據(jù)!如果你不需要保數(shù)據(jù)的話,還有更加簡單的處理方法:
方法二:巧設(shè)BIOS,用DM解鎖
大家知道DM軟件是不依賴于主板BIOS的硬盤識別安裝軟件,(所以在不能識別大硬盤的老主板上也可用DM來安裝使用大容量硬盤)。就算在BIOS中將硬盤設(shè)為“NONE”,DM也可識別并處理硬盤。
首先你要找到和硬盤配套的DM軟件(找JS要或去網(wǎng)上蕩),然后把DM拷到一張系統(tǒng)盤上。接上被鎖硬盤,開機(jī),按住DEL鍵,進(jìn)CMOS設(shè)置,將所有IDE硬盤設(shè)為NONE(這是關(guān)鍵所在!),保存設(shè)置,重啟動,這時系統(tǒng)即可 “帶鎖”啟動。啟動后運(yùn)行DM,你會發(fā)現(xiàn)DM可以繞過BIOS,識別出硬盤,選中該硬盤,分區(qū)格式化,就OK了。這么簡單?不過這種方法的弱點(diǎn)是硬盤上的數(shù)據(jù)將全部丟失。
再來說說怎么制作硬盤邏輯鎖
以Quantum SE 3.2G硬盤,C盤2.1G,D盤1.1G 為例
先將本硬盤的主引導(dǎo)程序(即0磁頭0柱面1扇區(qū)的內(nèi)容)備份到軟盤中,這里是保存在軟盤0磁頭0柱面2扇區(qū)中,以便萬一做不成功時,進(jìn)行恢復(fù)
C:\\DOS>DEBUG
-a 100
mov ax,201
mov bx,200
mov cx,1
mov dx,80
int 13 ;讀硬盤0磁頭0柱面1扇區(qū)的內(nèi)容到ES:200處
mov ax,301
mov bx,200
mov cx,2
mov dx, 0
int 13 ;寫ES:200處內(nèi)容到軟盤0磁頭0柱面2扇區(qū)
int 3
↙
-g=100
;然后制作一張“啟動盤1” :
-a 200
mov ax,201
mov bx,2000
mov cx,2
mov dx,0
int 13 ;讀軟盤0磁頭0柱面2扇區(qū)的內(nèi)容到ES:2000處
jb 200
mov ax,301
mov bx,2000
mov cx,1
mov dx,80
int 13
jmp ffff:0000
↙
-w 200 0 0 1 ;執(zhí)行此命令之前插入上述軟盤,將這一段起引導(dǎo)作用的程序?qū)懙杰洷P的0磁頭0柱面1扇區(qū),使之成為一張?zhí)厥獾摹皢颖P1”。
以上為準(zhǔn)備工作
現(xiàn)在開始制作
我們先看一看硬盤分區(qū)表的信息(下述為實(shí)例,讀者在**作中,顯示的段地址不一定是1186):
C:\\DOS>DEBUG
-a100
1186:0100 mov ax,201
1186:0103 mov bx,200
1186:0106 mov cx,1
1186:0109 mov dx,80
1186:010C int 13
1186:010E int 3
1186:010F ↙
-g=100
-d 3b0 L 50
1186:03B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01
起始磁頭號
起始柱面號(01的高2位并上00)
1186:03C0 01 00 06 7F BF 07 3F 00-00 00 C1 FB 3F 00 00 00
結(jié)束磁頭號、扇區(qū)號、柱面號(格式同前)
起始扇區(qū)號(01的低6位)
1186:03D0 81 08 05 7F FF 0C 00 FC-3F 00 80 1D 20 00 00 00
1186:03E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
1186:03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA
-e 3c2
02 ; 將分區(qū)類型 06 改為 02,即XENIX,該字節(jié)含義如下:
0-無效分區(qū)
1-DOS 12位FAT
2-XENIX
4-DOS 16位FAT 分區(qū)容量<32M
5-擴(kuò)展DOS分區(qū)
6-DOS 16位FAT 分區(qū)容量>32M
-e3d0
01 00 ;將D區(qū)的起始扇區(qū)號和柱面號改為與C區(qū)相同的起始扇區(qū)號和柱面號,形成循環(huán)鏈表
-a 100
1186:0100 mov ax,301
1186:0103 ↙
-g=100
;將改后的內(nèi)容寫入硬盤主引導(dǎo)扇區(qū)
-a 100
1186:0100 mov ax,201
1186:0103 ↙
-g=100
;再次讀出硬盤主引導(dǎo)扇區(qū)內(nèi)容
-d 3b0 L 50
1186:03B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 80 01
1186:03C0 01 00 02 7F BF 07 3F 00-00 00 C1 FB 3F 00 00 00
1186:03D0 01 00 05 7F FF 0C 00 FC-3F 00 80 1D 20 00 00 00
1186:03E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
1186:03F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA
;顯示表明以上分區(qū)表內(nèi)容已改好
-q
;退出DEBUG,重新啟動系統(tǒng),一切OK!Haha,軟盤、硬盤都不能啟動系統(tǒng)了!
癥狀說明:
1.只修改C盤的分區(qū)類型,即將分區(qū)類型06改為02后,硬盤不能啟動,A盤可以啟動。
2.只做循環(huán)鏈表,Win95/98不能啟動,但DOS 6.22可正常啟動,啟動后將有相同容量、相同數(shù)據(jù)的24個邏輯驅(qū)動器(從C盤到Z盤),啟動時提示如下錯誤信息:
Warning:Logical drives past Z exist and will be ignored
筆者在多年前就做過循環(huán)分區(qū)鏈表,它對DOS 6.22 的啟動可以說無效,但對付DOS 6.22 的FDISK命令很管用,一運(yùn)行就“死機(jī)”(同 Win95/98 啟動一樣,因循環(huán)檢查分區(qū)鏈表而呈死機(jī)狀)。
3.以上兩條都修改后,C盤、A盤的DOS 6.22 都不能啟動,但可用 A 盤的DOS 3.3啟動,啟動后可以運(yùn)行FDISK命令,也可用DEBUG等工具修改分區(qū)表(無需顧及C盤容量是否超過33M)。
由此可見,硬盤邏輯鎖只針對DOS高版本有效,對DOS 3.3根本不起作用,循環(huán)鏈表對Win95/98 的DOS 即已經(jīng)有效.