再論制硬碟邏輯鎖

2021-08-29 03:13:38 字數 3876 閱讀 3505

姜卓睿 雷必武

一、序言

二、製作前的準備:

先將本硬碟(筆者使用的是quantum se 3.2g硬碟,c盤2.1g,d盤1.1g)的主引導程式(即0磁頭0柱面1扇區的內容)備份到軟盤中,這裡是儲存在軟盤0磁頭0柱面2扇區中,以便萬一做不成功時,進行恢復。

c:\dos>debug

-a 100

mov ax,201

mov bx,200

mov cx,1

mov dx,80

int 13      ;讀硬碟0磁頭0柱面1扇區的內容到es:200處

mov ax,301

mov bx,200

mov cx,2

mov dx, 0

int 13      ;寫es:200處內容到軟盤0磁頭0柱面2扇區

int 3

-g=100

;然後製作一張「啟動盤1」 :

-a 200

mov ax,201

mov bx,2000

mov cx,2  

mov dx,0  

int 13     ;讀軟盤0磁頭0柱面2扇區的內容到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 ;執行此命令之前插入上述軟盤,將這一段起引導作用的程式寫到軟盤的0磁頭0柱面1扇區,使之成為一張特殊的「啟動盤1」。

三、製作硬碟鎖   

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  

結束磁頭號、扇區號、柱面號(格式同前)

起始扇區號(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   ; 將分割槽型別 06 改為 02,即xenix,該位元組含義如下:

0-無效分割槽

1-dos 12位fat

2-xenix

4-dos 16位fat 分割槽容量<32m

5-擴充套件dos分割槽

6-dos 16位fat 分割槽容量》32m   

-e3d0

01  00 ;將d區的起始扇區號和柱面號改為與c區相同的起始扇區號和柱面號,形成迴圈鍊錶

-a 100

1186:0100 mov ax,301

1186:0103 ↙

-g=100

;將改後的內容寫入硬碟主引導扇區

-a 100

1186:0100 mov ax,201

1186:0103 ↙

-g=100

;再次讀出硬碟主引導扇區內容

-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 ;退出debug,重新啟動系統,一切ok!haha,軟盤、硬碟都不能啟動系統了!

四、症狀說明:

1.只修改c盤的分割槽型別,即將分割槽型別06改為02後,硬碟不能啟動,a盤可以啟動。

2.只做迴圈鍊錶,win95/98不能啟動,但dos 6.22可正常啟動,啟動後將有相同容量、相同資料的24個邏輯驅動器(從c盤到z盤),啟動時提示如下錯誤資訊:

warning:logical drives past z exist and will be ignored

筆者在多年前就做過迴圈分割槽鍊錶,它對dos 6.22 的啟動可以說無效,但對付dos 6.22 的fdisk命令很管用,一執行就「宕機」(同 win95/98 啟動一樣,因迴圈檢查分割槽鍊錶而呈宕機狀)。

3.以上兩條都修改後,c盤、a盤的dos 6.22 都不能啟動,但可用 a 盤的dos 3.3啟動,啟動後可以執行fdisk命令,也可用debug等工具修改分割槽表(無需顧及c盤容量是否超過33m)。

由此可見,硬碟邏輯鎖只針對dos高版本有效,對dos 3.3根本不起作用,迴圈鍊錶對win95/98 的dos 即已經有效。

五、解開硬碟鎖的方法:

採用貴刊98年第4期《硬碟邏輯鎖技術研究及應用》文中所述修改cmos的方法也無法啟動系統,也就無法解開此邏輯鎖,需在另一台機器上製作一張「啟動盤2」,具體過程如下:

c:\dos>debug

-a 100

mov ax,201     

mov bx,2000    

mov cx,1       

mov dx,80      

int 13 

mov al,06     ; c的分割槽型別改為06    

mov [21c2],al 

mov al,0                             

mov [21d2],al  ; d的分割槽型別改為0 ,遮蔽其它分割槽

mov [21e2],al  ; e的分割槽型別改為0                  目的在於破壞迴圈鏈

mov [21f2],al  ; f的分割槽型別改為0    

mov ax,301   

mov bx,2000  

mov cx,1     

mov dx,80

int 13

jmp ffff:0000

-w 100 0 0 1  ;將本段程式寫到軟盤的邏輯0扇區,使之成為引導程式

-q 用作好的「啟動盤2」啟動死鎖機器,然後取出該「啟動盤2」,再次開機切換到dos 6.22系統,此時用 norton 的 diskedit.exe 等工具或直接用 debug 即可修復分割槽表。

如果按照前面講的將原主引導備份到軟盤物理第二扇,也可以用「啟動盤1」恢復主引導扇區的內容,一啟動即告成功恢復。

e-mail:   [email protected]

or   [email protected]

再論制硬碟邏輯鎖

姜卓睿 雷必武 一 序言 二 製作前的準備 先將本硬碟 筆者使用的是quantum se 3.2g硬碟,c盤2.1g,d盤1.1g 的主引導程式 即0磁頭0柱面1扇區的內容 備份到軟盤中,這裡是儲存在軟盤0磁頭0柱面2扇區中,以便萬一做不成功時,進行恢復。c dos debug a 100 mov ...

再論制硬碟邏輯鎖

姜卓睿 雷必武 一 序言 二 製作前的準備 先將本硬碟 筆者使用的是quantum se 3.2g硬碟,c盤2.1g,d盤1.1g 的主引導程式 即0磁頭0柱面1扇區的內容 備份到軟盤中,這裡是儲存在軟盤0磁頭0柱面2扇區中,以便萬一做不成功時,進行恢復。c dos debug a 100 mov ...

制硬碟邏輯鎖

製作前的準備 先將本硬碟備份到軟盤中,這裡是儲存在軟盤0磁頭0柱面2扇區中,以便萬一做不成功時,進行恢復。c dos debug a 100 mov ax,201 mov bx,200 mov cx,1 mov dx,80 int 13 讀硬碟0磁頭0柱面1扇區的內容到es 200處 mov ax,...