計算機硬碟加密的方法 修改硬碟分割槽表資訊、對硬碟啟動加口令、對硬碟實現使用者加密管理、對某個邏輯盤實現防寫。。。。。 一、修改硬碟分割槽表資訊 硬碟分割槽表資訊對硬碟的啟動至關重要,找不到有效的分割槽表,將不能從硬碟啟動或即使從軟盤啟動也找不到硬碟。通常,第一個分割槽表項的第0子節為80H,表示C盤為活動DOS分割槽,硬碟能否自舉就依*它。若將該位元組改為00H,則不能從硬碟啟動,但從軟盤啟動後,硬碟仍然可以訪問。分割槽表的第4位元組是分割槽型別標誌,第一分割槽的此處通常為06H,表示C盤為活動DOS分割槽,若對第一分割槽的此處進行修改可對硬碟起到一定加密作用。 具體表現在: 1.若將該位元組改為0,則表示該分割槽未使用,當然不能再從C盤啟動了。從軟盤啟動後,原來的C盤不見了,你看到的C盤是原來的D盤,D盤是原來的E盤,依此類推。 2.若將此處位元組改為05H,則不但不能從硬碟啟動,即使從軟盤啟動,硬碟的每個邏輯盤都不可訪問,這樣等於整個硬碟被加密了。另外,硬碟主引導記錄的有效標誌是該扇區的最後兩位元組為55AAH。若將這兩位元組變為0,也可以實現對整個硬碟加鎖而不能被訪問。硬碟分割槽表在物理0柱面0磁頭1扇區,可以用NortonforWin95中的Diskedit直接將該扇區調出並修改後存檔。或者在Debug下用INT13H的02H子功能將0柱面0磁頭1扇區讀到記憶體,在相應位置進行修改,再用INT13H的03H子功能寫入0柱面0磁頭1扇區就可以了。 上面的加密處理,對一般使用者來講已足夠了。但對有經驗的使用者,即使硬碟不可訪問,也可以用INT13H的02H子功能將0柱面0磁頭1扇區讀出,根據經驗將相應位置資料進行修改,可以實現對硬碟解鎖,因為這些位置的資料通常是固定的或有限的幾種情形。另外一種保險但顯得笨拙的方法是將硬碟的分割槽表項備份起來,將其全部變為0,這樣別人由於不知道分割槽資訊,就無法對硬碟解鎖和訪問硬碟了。 二、對硬碟啟動加口令 我們知道,在CMOS中可以設定系統口令,使非法使用者無法啟動計算機,當然也就無法使用硬碟了。但這並未真正鎖住硬碟,因為只要將硬碟掛在別的計算機上,硬碟上的資料和軟體仍可使用。要對硬碟啟動加口令,可以首先將硬碟0柱面0磁頭1扇區的主引導記錄和分割槽資訊都儲存在硬碟並不使用的隱含扇區,比如0柱面0磁頭3扇區。用Debug重寫一個不超過512位元組的程式(實際上100多位元組足矣)裝載到硬碟0柱面0磁頭1扇區。該程式的功能是執行它時首先需要輸入口令,若口令不對則進入死迴圈;若口令正確則讀取硬碟上存有主引導記錄和分割槽資訊的隱含扇區(0柱面0磁頭3扇區),並轉去執行主引導記錄。 由於硬碟啟動時首先是BIOS呼叫自舉程式INT19H將主硬碟的0柱面0磁頭1扇區的主引導記錄讀入記憶體0000:7C00H處執行,而我們已經偷樑換柱,將0柱面0磁頭1扇區變為我們自己設計的程式。這樣從硬碟啟動時,首先執行的不是主載入程式,而是我們設計的程式。在執行我們設計的程式時,口令若不對則無法繼續執行,也就無法啟動了。即使從軟盤啟動,由於0柱面0磁頭1扇區不再有分割槽資訊,硬碟也不能被訪問了。當然還可以將我們設計的程式像病毒一樣,將其中一部分駐留在高階記憶體,監視INT13H的使用,防止0柱面0磁頭1扇區被改寫。 三、對硬碟實現使用者加密管理 UNIX作業系統可以實現多使用者管理,在DOS系統下,將硬碟管理系統進行改進,也可實現類似功能的多使用者管理。該管理系統可以滿足這樣一些要求:1.將硬碟分為公用分割槽C和若干專用分割槽D。其中“超級使用者”來管理C區,可以對C區進行讀寫和更新系統;“特別使用者”(如機房內部人員)透過口令使用自己的分割槽,以保護自己的檔案和資料;“一般使用者”(如到機房上機的普通人員)任意使用劃定的公用分割槽。後兩種使用者都不能對C盤進行寫操作,這樣把作業系統和大量應用軟體裝在C盤,就能防止在公共機房中其他人有意或無意地對系統和軟體的破壞,保證了系統的安全性和穩定性。2.在系統啟動時,需要使用軟盤鑰匙盤才能啟動系統,否則硬碟被鎖住,不能被使用。此方法的實現可透過利用硬碟分割槽表中各邏輯盤的分割槽連結串列結構,採用彙編程式設計來實現。
計算機硬碟加密的方法 修改硬碟分割槽表資訊、對硬碟啟動加口令、對硬碟實現使用者加密管理、對某個邏輯盤實現防寫。。。。。 一、修改硬碟分割槽表資訊 硬碟分割槽表資訊對硬碟的啟動至關重要,找不到有效的分割槽表,將不能從硬碟啟動或即使從軟盤啟動也找不到硬碟。通常,第一個分割槽表項的第0子節為80H,表示C盤為活動DOS分割槽,硬碟能否自舉就依*它。若將該位元組改為00H,則不能從硬碟啟動,但從軟盤啟動後,硬碟仍然可以訪問。分割槽表的第4位元組是分割槽型別標誌,第一分割槽的此處通常為06H,表示C盤為活動DOS分割槽,若對第一分割槽的此處進行修改可對硬碟起到一定加密作用。 具體表現在: 1.若將該位元組改為0,則表示該分割槽未使用,當然不能再從C盤啟動了。從軟盤啟動後,原來的C盤不見了,你看到的C盤是原來的D盤,D盤是原來的E盤,依此類推。 2.若將此處位元組改為05H,則不但不能從硬碟啟動,即使從軟盤啟動,硬碟的每個邏輯盤都不可訪問,這樣等於整個硬碟被加密了。另外,硬碟主引導記錄的有效標誌是該扇區的最後兩位元組為55AAH。若將這兩位元組變為0,也可以實現對整個硬碟加鎖而不能被訪問。硬碟分割槽表在物理0柱面0磁頭1扇區,可以用NortonforWin95中的Diskedit直接將該扇區調出並修改後存檔。或者在Debug下用INT13H的02H子功能將0柱面0磁頭1扇區讀到記憶體,在相應位置進行修改,再用INT13H的03H子功能寫入0柱面0磁頭1扇區就可以了。 上面的加密處理,對一般使用者來講已足夠了。但對有經驗的使用者,即使硬碟不可訪問,也可以用INT13H的02H子功能將0柱面0磁頭1扇區讀出,根據經驗將相應位置資料進行修改,可以實現對硬碟解鎖,因為這些位置的資料通常是固定的或有限的幾種情形。另外一種保險但顯得笨拙的方法是將硬碟的分割槽表項備份起來,將其全部變為0,這樣別人由於不知道分割槽資訊,就無法對硬碟解鎖和訪問硬碟了。 二、對硬碟啟動加口令 我們知道,在CMOS中可以設定系統口令,使非法使用者無法啟動計算機,當然也就無法使用硬碟了。但這並未真正鎖住硬碟,因為只要將硬碟掛在別的計算機上,硬碟上的資料和軟體仍可使用。要對硬碟啟動加口令,可以首先將硬碟0柱面0磁頭1扇區的主引導記錄和分割槽資訊都儲存在硬碟並不使用的隱含扇區,比如0柱面0磁頭3扇區。用Debug重寫一個不超過512位元組的程式(實際上100多位元組足矣)裝載到硬碟0柱面0磁頭1扇區。該程式的功能是執行它時首先需要輸入口令,若口令不對則進入死迴圈;若口令正確則讀取硬碟上存有主引導記錄和分割槽資訊的隱含扇區(0柱面0磁頭3扇區),並轉去執行主引導記錄。 由於硬碟啟動時首先是BIOS呼叫自舉程式INT19H將主硬碟的0柱面0磁頭1扇區的主引導記錄讀入記憶體0000:7C00H處執行,而我們已經偷樑換柱,將0柱面0磁頭1扇區變為我們自己設計的程式。這樣從硬碟啟動時,首先執行的不是主載入程式,而是我們設計的程式。在執行我們設計的程式時,口令若不對則無法繼續執行,也就無法啟動了。即使從軟盤啟動,由於0柱面0磁頭1扇區不再有分割槽資訊,硬碟也不能被訪問了。當然還可以將我們設計的程式像病毒一樣,將其中一部分駐留在高階記憶體,監視INT13H的使用,防止0柱面0磁頭1扇區被改寫。 三、對硬碟實現使用者加密管理 UNIX作業系統可以實現多使用者管理,在DOS系統下,將硬碟管理系統進行改進,也可實現類似功能的多使用者管理。該管理系統可以滿足這樣一些要求:1.將硬碟分為公用分割槽C和若干專用分割槽D。其中“超級使用者”來管理C區,可以對C區進行讀寫和更新系統;“特別使用者”(如機房內部人員)透過口令使用自己的分割槽,以保護自己的檔案和資料;“一般使用者”(如到機房上機的普通人員)任意使用劃定的公用分割槽。後兩種使用者都不能對C盤進行寫操作,這樣把作業系統和大量應用軟體裝在C盤,就能防止在公共機房中其他人有意或無意地對系統和軟體的破壞,保證了系統的安全性和穩定性。2.在系統啟動時,需要使用軟盤鑰匙盤才能啟動系統,否則硬碟被鎖住,不能被使用。此方法的實現可透過利用硬碟分割槽表中各邏輯盤的分割槽連結串列結構,採用彙編程式設計來實現。