再论制硬盘逻辑锁
姜卓睿 雷必武
?一、序言
由于教學(xué)工作需要,本人在參看了貴刊98年第4期《硬盤邏輯鎖技術(shù)研究及應(yīng)用》與99年第3期《解開硬盤邏輯死鎖的一種有效方法》的文章之后,決定以同類方法嘗試一下,結(jié)果未獲得成功,又“苦于”沒有KV300 L++ 版,不得不自己做一個(gè)硬盤邏輯鎖。在制作過程中發(fā)現(xiàn),僅僅只做循環(huán)鏈表是不夠的,并不能鎖住硬盤。以下是本人經(jīng)過多次實(shí)驗(yàn)后,總結(jié)出的一套加鎖和解鎖的方法,(本文所述均在本機(jī)上獲得通過!)以供大家參考。硬盤邏輯鎖的原理請(qǐng)參見以上文章。
二、制作前的準(zhǔn)備:
??? 先將本硬盤(筆者使用的是Quantum SE 3.2G硬盤,C盤2.1G,D盤1.1G)的主引導(dǎo)程序(即0磁頭0柱面1扇區(qū)的內(nèi)容)備份到軟盤中,這里是保存在軟盤0磁頭0柱面2扇區(qū)中,以便萬一做不成功時(shí),進(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
;然后制作一張“啟動(dòng)盤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í)厥獾摹皢?dòng)盤1”。
三、制作硬盤鎖???
??? 我們先看一看硬盤分區(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??
?????????????????????????????????? 起始磁頭號(hào)
???????????????? 起始柱面號(hào)(01的高2位并上00)?
1186:03C0? 01 00 06 7F BF 07 3F 00-00 00 C1 FB 3F 00 00 00??
???????????????????????? 結(jié)束磁頭號(hào)、扇區(qū)號(hào)、柱面號(hào)(格式同前)
???????????????? 起始扇區(qū)號(hào)(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ū)號(hào)和柱面號(hào)改為與C區(qū)相同的起始扇區(qū)號(hào)和柱面號(hào),形成循環(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,重新啟動(dòng)系統(tǒng),一切OK!Haha,軟盤、硬盤都不能啟動(dòng)系統(tǒng)了!
四、癥狀說明:
??? 1.只修改C盤的分區(qū)類型,即將分區(qū)類型06改為02后,硬盤不能啟動(dòng),A盤可以啟動(dòng)。
??? 2.只做循環(huán)鏈表,Win95/98不能啟動(dòng),但DOS 6.22可正常啟動(dòng),啟動(dòng)后將有相同容量、相同數(shù)據(jù)的24個(gè)邏輯驅(qū)動(dòng)器(從C盤到Z盤),啟動(dòng)時(shí)提示如下錯(cuò)誤信息:
?????? Warning:Logical drives past Z exist and will be ignored
?????????? 筆者在多年前就做過循環(huán)分區(qū)鏈表,它對(duì)DOS 6.22 的啟動(dòng)可以說無效,但對(duì)付DOS 6.22 的FDISK命令很管用,一運(yùn)行就“死機(jī)”(同 Win95/98 啟動(dòng)一樣,因循環(huán)檢查分區(qū)鏈表而呈死機(jī)狀)。
??? 3.以上兩條都修改后,C盤、A盤的DOS 6.22 都不能啟動(dòng),但可用 A 盤的DOS 3.3啟動(dòng),啟動(dòng)后可以運(yùn)行FDISK命令,也可用DEBUG等工具修改分區(qū)表(無需顧及C盤容量是否超過33M)。
?????? 由此可見,硬盤邏輯鎖只針對(duì)DOS高版本有效,對(duì)DOS 3.3根本不起作用,循環(huán)鏈表對(duì)Win95/98 的DOS 即已經(jīng)有效。
五、解開硬盤鎖的方法:
??? 采用貴刊98年第4期《硬盤邏輯鎖技術(shù)研究及應(yīng)用》文中所述修改CMOS的方法也無法啟動(dòng)系統(tǒng),也就無法解開此邏輯鎖,需在另一臺(tái)機(jī)器上制作一張“啟動(dòng)盤2”,具體過程如下:
C:/DOS>DEBUG
-a 100
mov ax,201?????
mov bx,2000????
mov cx,1???????
mov dx,80??????
int 13?
mov al,06???? ; C的分區(qū)類型改為06????
mov [21c2],al?
mov al,0?????????????????????????????
mov [21d2],al? ; D的分區(qū)類型改為0 ,屏蔽其它分區(qū)
mov [21e2],al? ; E的分區(qū)類型改為0????????????????? 目的在于破壞循環(huán)鏈
mov [21f2],al? ; F的分區(qū)類型改為0????
mov ax,301???
mov bx,2000??
mov cx,1?????
mov dx,80
int 13
jmp ffff:0000
↙
-w 100 0 0 1? ;將本段程序?qū)懙杰洷P的邏輯0扇區(qū),使之成為引導(dǎo)程序
-q
??? 用作好的“啟動(dòng)盤2”啟動(dòng)死鎖機(jī)器,然后取出該“啟動(dòng)盤2”,再次開機(jī)切換到DOS 6.22系統(tǒng),此時(shí)用 Norton 的 DISKEDIT.EXE 等工具或直接用 DEBUG 即可修復(fù)分區(qū)表。
??? 如果按照前面講的將原主引導(dǎo)備份到軟盤物理第二扇,也可以用“啟動(dòng)盤1”恢復(fù)主引導(dǎo)扇區(qū)的內(nèi)容,一啟動(dòng)即告成功恢復(fù)。
??
通訊地址:?? 430062? 湖北大學(xué)經(jīng)濟(jì)學(xué)院???? 雷必武
E-mail:?? laybw@163.net
???? Or?? jiangzhuorui@163.net
總結(jié)
- 上一篇: 全国IP地址分配表
- 下一篇: ASP.NET 2.0 中的新增安全功能