有關硬碟的相關資訊集錦

才智咖 人氣:2.02W

硬碟分割槽表資訊對硬碟的啟動至關重要,如果找不到有效的分割槽表,將不能從硬碟啟動或即使從軟盤啟動也找不到硬碟。 通常,第一個分割槽表項的第0子節為80H,表示C盤為活動DOS分割槽,硬碟能否自舉就依*它。

有關硬碟的相關資訊集錦

若將該位元組改為00H,則不能從硬碟啟動,但從軟盤啟動後,硬碟仍然可以訪問。分割槽表的第4位元組是分割槽型別標誌,第一分割槽的此處通常為06H,表示C盤為活動DOS分割槽,若對第一分割槽的此處進行修改可對硬碟起到一定加密作用。

一、具體表現在:

1.若將該位元組改為0,則表示該分割槽未使用,當然不能再從C盤啟動了。從軟盤啟動後,原來的C盤不見了,你看到的C盤是原來的D盤,D盤是原來的E盤,依此類推。

2.若將此處位元組改為05H,則不但不能從硬碟啟動,即使從軟盤啟動,硬碟的每個邏輯盤都不可訪問,這樣等於整個硬碟被加密了。另外,硬碟主引導記錄的有效標誌是該扇區的最後兩位元組為55AAH。若將這兩位元組變為0,也可以實現對整個硬碟加鎖而不能被訪問。硬碟分割槽表在物理0柱面0磁頭1扇區,可以用Norton for Win95中的Diskedit直接將該扇區調出並修改後存檔。或者在Debug下用INT 13H的02H子功能將0柱面0磁頭1扇區讀到記憶體,在相應位置進行修改,再用INT 13H的03H子功能寫入0柱面0磁頭1扇區就可以了。

上面的加密處理,對一般使用者來講已足夠了。但對有經驗的使用者,即使硬碟不可訪問,也可以用INT 13H的02H子功能將0柱面0磁頭1扇區讀出,根據經驗將相應位置資料進行修改,可以實現對硬碟解鎖,因為這些位置的資料通常是固定的'或有限的幾種情形。

另外一種保險但顯得笨拙的方法是將硬碟的分割槽表項備份起來,然後將其全部變為0,這樣別人由於不知道分割槽資訊,就無法對硬碟解鎖和訪問硬碟了。

二、對硬碟啟動加口令

我們知道,在CMOS中可以設定系統口令,使非法使用者無法啟動計算機,當然也就無法使用硬碟了。但這並未真正鎖住硬碟,因為只要將硬碟掛在別的計算機上,硬碟上的資料和軟體仍可使用。要對硬碟啟動加口令,可以首先將硬碟0柱面0磁頭1扇區的主引導記錄和分割槽資訊都儲存在硬碟並不使用的隱含扇區,比如0柱面0磁頭3扇區。

然後用Debug重寫一個不超過512位元組的程式(實際上100多位元組足矣)裝載到硬碟0柱面0磁頭1扇區。該程式的功能是執行它時首先需要輸入口令,若口令不對則進入無窮迴圈;若口令正確則讀取硬碟上存有主引導記錄和分割槽資訊的隱含扇區(0柱面0磁頭3扇區),並轉去執行主引導記錄。

由於硬碟啟動時首先是BIOS呼叫自舉程式INT 19H將主硬碟的0柱面0磁頭1扇區的主引導記錄讀入記憶體0000:7C00H處執行,而我們已經偷樑換柱,將0柱面0磁頭1扇區變為我們自己設計的程式。這樣從硬碟啟動時,首先執行的不是主載入程式,而是我們設計的程式。

在執行我們設計的程式時,口令若不對則無法繼續執行,也就無法啟動了。即使從軟盤啟動,由於0柱面0磁頭1扇區不再有分割槽資訊,硬碟也不能被訪問了。當然還可以將我們設計的程式像病毒一樣,將其中一部分駐留在高階記憶體,監視INT 13H的使用,防止0柱面0磁頭1扇區被改寫。

三、對硬碟實現使用者加密管理

UNIX作業系統可以實現多使用者管理,在DOS系統下,將硬碟管理系統進行改進,也可實現類似功能的多使用者管理。該管理系統可以滿足這樣一些要求:

1.將硬碟分為公用分割槽C和若干專用分割槽D。其中“超級使用者”來管理C區,可以對C區進行讀寫和更新系統;“特別使用者”(如機房內部人員)通過口令使用自己的分割槽,以保護自己的檔案和資料;“一般使用者”(如到機房上機的普通人員)任意使用劃定的公用分割槽。後兩種使用者都不能對C盤進行寫操作,這樣如果把作業系統和大量應用軟體裝在C盤,就能防止在公共機房中其他人有意或無意地對系統和軟體的破壞,保證了系統的安全性和穩定性。

2.在系統啟動時,需要使用軟盤鑰匙盤才能啟動系統,否則硬碟被鎖住,不能被使用。 此方法的實現可通過利用硬碟分割槽表中各邏輯盤的分割槽連結串列結構,採用彙編程式設計來實現。

四、對某個邏輯盤實現防寫

我們知道,軟盤上有防寫缺口,在對軟盤進行寫操作前,BIOS要檢查軟盤狀態,如果防寫缺口被封住,則不能進行寫操作。而防寫功能對硬碟而言,在硬體上無法進行,但可通過軟體來實現。

在DOS系統下,磁碟的寫操作包括幾種情況:

①在支援下的寫操作,如MD、RD、COPY等;

②在DOS功能呼叫中的一些子功能如功能號為10H、13H、3EH、5BH等可以對硬碟進行寫操作;

③通過INT 26H將邏輯扇區轉換為絕對扇區進行寫;

④通過INT 13H的子功能號03H、05H等對磁碟進行寫操作。 但每一種寫操作最後都要呼叫INT 13H的子功能去實現。

因此,如果對INT 13H進行攔截,可以實現禁止對硬碟特定邏輯盤的寫操作。由於磁碟上檔案的寫操作是通過INT 13H的03H子功能進行寫,呼叫此子功能時,暫存器CL表示起始扇區號(實際上只用到低6位);CH表示磁軌號,在硬碟即為柱面號,該柱面號用10位表示,其最高兩位放在CL的最高兩位。

對硬碟進行分割槽時可以將硬碟分為多個邏輯驅動器,而每個邏輯驅動器都是從某一個完整的柱面開始。如筆者的硬碟為2.5GB,分為C、D、E、F、G五個盤。其中C盤起始柱面號為00H,D盤起始柱面號為66H,E盤起始柱面號為E5H,F盤起始柱面號為164H,G盤起始柱面號為26BH。如果對INT 13H進行攔截,當AH=03H,並且由CL高兩位和CH共同表示的柱面號大於E4H並小於164H,就什麼也不做就返回,這樣就可以實現對E盤禁止寫。

TAGS:硬碟 集錦