專利名稱:一種硬盤隱藏區(qū)的解除方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于硬盤隱藏區(qū)解除的領(lǐng)域,特別涉及一種可還原的硬盤隱藏區(qū)的解除方法、裝置和系統(tǒng)。
背景技術(shù):
高級技術(shù)附件規(guī)格(AdvancedTechnology Attachment,ΑΤΑ)標(biāo)準(zhǔn)從 1"4年至今共經(jīng)歷了 7代標(biāo)準(zhǔn),ATA接口發(fā)展到ΑΤΑ-6時候,這種并行接口的電纜屬性、連接器和信號協(xié)議遇到了很大的技術(shù)瓶頸,2002年最新的ΑΤΑ-7標(biāo)準(zhǔn)提出后并沒有得到廣泛應(yīng)用,只有邁拓公司推出一系列ΑΤΑ-7標(biāo)準(zhǔn)的硬盤,而其它廠商則轉(zhuǎn)向串行高級技術(shù)附件規(guī)格(SerialAdvanced Technology Attachment, SATA)接口規(guī)范,SATA 是由 DELL、IBM、Intel、Maxtor、Quantum, Seagate等公司合作開發(fā)用于取代并行ATA接口的技術(shù),兼容ATA協(xié)議規(guī)范,目前已經(jīng)發(fā)展到第三代SATA。2001 年,根據(jù) ATA-4 標(biāo)準(zhǔn),硬盤開始引入 HPA(Host Protected Area)特性。ΗΡΑ為通過用ATA命令直接把硬盤后部保護起來的一塊區(qū)域,不僅操作系統(tǒng)無法看到ΗΡΑ,甚至連主板BIOS都無法讀取HPA中的數(shù)據(jù)。只要不用ATA協(xié)議中定義的特別命令打開HPA,就不可能用普通方法對HPA進行讀寫操作??梢酝ㄟ^發(fā)送ATA指令“SET MAX ADDRESS”將硬盤分為用戶可訪問區(qū)域或受限區(qū)域,即解除HPA和設(shè)置ΗΡΑ。其中,解除HPA有兩種方法,一種是臨時解除ΗΡΑ,即執(zhí)行“SET MAX ADDRESS”指令前把指令的Count第O位置為1,解除后用戶可訪問HPA,硬盤掉電或硬件復(fù)位后,HPA自動還原,下次讀寫硬盤需要再次解除才能訪問;另一種是徹底解除HPA,即執(zhí)行“SET MAX ADDRESS”指令前把指令的Count第O位置為0,解除后用戶可訪問該HPA,硬盤掉電或硬件復(fù)位后,HPA消失,需要重新設(shè)置才能還原。而且,“SET MAX ADDRESS”指令只能發(fā)送一次,如果要再發(fā)送,則需要硬盤掉電再上電或硬件復(fù)位。在ATA-6 標(biāo)準(zhǔn)中,硬盤引入了 DCO (Device Configuration Overlay)特性。DCO特性主要可以允許設(shè)備廠商為PC (Personal Computer)制作商提供不同型號但容量基本一樣的硬盤,使得每個硬盤可以有完全相同的可用扇區(qū)數(shù)。這使得硬盤制造商在硬盤制造方面更加靈活,同時與其他系統(tǒng)供應(yīng)商保持一致,而且在DCO基礎(chǔ)上還可以同時設(shè)置HPA,而不影響HPA特性。只要不用ATA協(xié)議中定義的特別命令解除DC0,就不可能用普通方法對此區(qū)域進行讀寫操作??梢酝ㄟ^向硬盤發(fā)送ATA指令“DEVICE CONFI⑶RATION RESTORE”來解除DC0,解除后需要發(fā)送“DEVICE CONFI⑶RATION SET”來設(shè)置硬盤實際可用扇區(qū)數(shù)才能恢復(fù)DCO。為保證取證工作的司法有效性與數(shù)據(jù)完整性, 取證人員一般在計算機和硬盤之間串接一個只讀保護設(shè)備,保證硬盤的數(shù)據(jù)只被讀取,不被寫入。但是設(shè)置DCO的ATA指令“DEVICE CONFI⑶RATION SET”是寫操作,無法通過只讀保護設(shè)備對硬盤進行操作,無法還原DC0,因此會改變硬盤的可見容量大小。
發(fā)明內(nèi)容
本發(fā)明的目的是能夠在解除硬盤隱藏區(qū)、獲得硬盤內(nèi)部數(shù)據(jù)后還原硬盤隱藏區(qū),且能夠保證硬盤數(shù)據(jù)不被修改,從而保證取證工作的司法有效性與數(shù)據(jù)完整性。本發(fā)明提出一種硬盤隱藏區(qū)的解除方法,執(zhí)行所述方法的裝置連接于只讀保護設(shè)備與硬盤之間,所述方法包括
獲取硬盤信息;
根據(jù)硬盤信息包括的硬盤隱藏區(qū)校驗位來識別硬盤是否支持硬盤隱藏區(qū)指令,若支持硬盤隱藏區(qū)指令,則發(fā)送指令獲取硬盤隱藏區(qū)最大地址;
將硬盤信息包括的硬盤可見容量最大地址與所述硬盤隱藏區(qū)最大地址進行比較來識別硬盤是否包括硬盤隱藏區(qū);
若硬盤包括硬盤隱藏區(qū),以根據(jù)硬盤信息包括的第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送解除指令進行硬盤隱藏區(qū)的解除;
以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原或先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行硬盤隱藏區(qū)的還原。優(yōu)選的,本方法還包括將硬盤信息包括的第二設(shè)定參數(shù)與存儲的上個硬盤相應(yīng)的參數(shù)進行比對,判斷是否為同一硬盤,若不是同一硬盤,則將硬盤信息進行存儲,若是同一硬盤,則選擇是否進行硬盤隱藏區(qū)的還原。其中,所述硬盤隱藏區(qū)為HPA區(qū)域和/或DCO區(qū)域。其中,所述獲取硬盤信息為通過發(fā)送IDENTIFY DEVICE指令獲取IDENTIFY DEVICEDATA,共256字。所述獲取硬盤隱藏區(qū)最大地址包括獲取HPA區(qū)域的最大地址和/或獲取DCO區(qū)域的最大地址,其中,通過發(fā)送READ NATIVE MAX ADDRESS指令獲取HPA區(qū)域的最大地址 THE NATIVE MAX ADDRESS,共 4 字;通過發(fā)送 DEVICE CONFI⑶RATION IDENTIFY指令獲取DEVICE CONFI⑶RATION IDENTIFY DATA,所述DCO區(qū)域的最大地址為DEVICECONFI⑶RATION IDENTIFY DATA 的第 3 6 字。其中,所述硬盤可見容量的最大地址是通過IDENTIFY DEVICE DATA的第100-103字減I計算出來的。優(yōu)選的,所述硬盤隱藏區(qū)校驗位為IDENTIFY DEVICE DATA的第83字第11位和第82字第10位。優(yōu)選的,所述第一設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第7字第8位,根據(jù)所述第一設(shè)定參數(shù)確定用28-bit指令方式發(fā)送指令或用48-bit方式發(fā)送指令。所述第二設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第27 46字和第10 19字,分別代表硬盤的盤符和序列號。優(yōu)選的,若隱藏區(qū)包括HPA區(qū)域但不包括DCO區(qū)域時,對HPA區(qū)域的解除包括臨時解除HPA區(qū)域和徹底解除HPA區(qū)域。特別的,所述方法是基于FPGA控制芯片來控制的方法。本發(fā)明還提出一種硬盤隱藏區(qū)的解除裝置,所述裝置連接于只讀保護設(shè)備與硬盤之間,包括,
獲取單元,用于獲取硬盤信息; 第一識別單元,用于根據(jù)硬盤信息包括的硬盤隱藏區(qū)校驗位來識別硬盤是否支持硬盤隱藏區(qū)指令,若支持硬盤隱藏區(qū)指令,則發(fā)送指令獲取硬盤隱藏區(qū)最大地址;
第二識別單元,用于將硬盤信息包括的硬盤可見容量最大地址與所述硬盤隱藏區(qū)最大地址進行比較來識別硬盤是否包括硬盤隱藏區(qū);
解除單元,用于以根據(jù)硬盤信息包括的第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送解除指令進行硬盤隱藏區(qū)的解除;
還原單元,用于以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原或先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行硬盤隱藏區(qū)的還原。優(yōu)選的,所述裝置還包括判斷單元,用于將硬盤信息包括的第二設(shè)定參數(shù)與存儲的上個硬盤相應(yīng)的參數(shù)進行比對,判斷是否為同一硬盤,若不是同一硬盤,則將硬盤信息進行存儲,若是同一硬盤,則選擇是否進行硬盤隱藏區(qū)的還原。其中,所述硬盤隱藏區(qū)為HPA區(qū)域和/或DCO區(qū)域。其中,所述獲取單元獲取硬盤信息為通過發(fā)送IDENTIFY DEVICE指令獲取IDENTIFY DEVICE DATA,共256字。所述第一識別單元獲取硬盤隱藏區(qū)最大地址包括獲取HPA區(qū)域的最大地址和/或獲取DCO區(qū)域的最大地址,其中,通過發(fā)送READ NATIVE MAXADDRESS指令獲取HPA區(qū)域的最大地址THE NATIVE MAX ADDRESS,共4字;通過發(fā)送DEVICECONFI⑶RATION IDENTIFY 指令獲取 DEVICE CONFI⑶RATION IDENTIFY DATA,所述 DCO 區(qū)域的最大地址為DEVICE CONFI⑶RATION IDENTIFY DATA的第3 6字。其中,所述硬盤可見容量的最大地址是通過IDENTIFY DEVICE DATA的第100-103字減I計算出來的。優(yōu)選的,所述硬盤隱藏區(qū)校驗位為IDENTIFY DEVICE DATA的第83字第11位和第82字第10位。優(yōu)選的,所述第一設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第7字第8位,根據(jù)所述第一設(shè)定參數(shù)確定用28-bit指令方式發(fā)送指令或用48-bit方式發(fā)送指令。所述第二設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第27 46字和第10 19字,分別代表硬盤的盤符和序列號。優(yōu)選的,當(dāng)隱藏區(qū)包括HPA區(qū)域但不包括DCO區(qū)域時,所述解除單元執(zhí)行的對HPA區(qū)域的解除包括臨時解除和徹底解除。特別的,所述裝置還包含F(xiàn)PGA控制芯片,用于控制所述各單元的執(zhí)行。本發(fā)明另外提出一種硬盤隱藏區(qū)的解除系統(tǒng),包括本發(fā)明所述的裝置,還包括 第一 SATA控制器,用于將所述裝置與上位機連接,接收上位機發(fā)送的數(shù)據(jù)
并傳送給所述裝置;
第二 SATA控制器,用于將所述裝置與SATA硬盤連接,所述裝置通過第二 SATA控制器控制SATA硬盤;
FLASH控制器,用于在存儲FLASH數(shù)據(jù)時,將所述裝置傳送的FLASH數(shù)據(jù)存儲到FLASH存儲芯片對應(yīng)的存儲位置;在讀取FLASH數(shù)據(jù)時,讀取所述裝置指定存儲位置的FLASH存儲芯片中的FLASH數(shù)據(jù)傳送給所述裝置;
SATA硬盤電源控制器,用于將所述裝置的SATA硬盤電源通斷信號轉(zhuǎn)成SATA 硬盤電源控制模塊所需的信號;
按鍵和顯示屏控制器,用于驅(qū)動按鍵和顯示屏,將所述裝置傳送的信息在 顯示屏上顯示,將用戶按下的按鍵命令傳送給所述裝置;
FLASH存儲芯片,用于存儲所述裝置獲得的SATA硬盤信息;
配置存儲芯片,用于存儲FPGA的配置程序,上電時完成對FPGA控制芯片 的配置;
SATA硬盤電源控制模塊,用于控制SATA硬盤電源的通斷狀態(tài);
按鍵,用于用戶輸入命令;
顯示屏,用于顯示所述裝置的工作狀態(tài)及硬盤狀態(tài)。通過本發(fā)明提供的方法、裝置和系統(tǒng),能夠在解除硬盤隱藏區(qū)、獲得硬盤內(nèi)部數(shù)據(jù)后還原硬盤隱藏區(qū),且能夠保證硬盤數(shù)據(jù)不被修改,從而保證取證工作的司法有效性與數(shù)據(jù)完整性。
圖1是本發(fā)明一種硬盤隱藏區(qū)的解除方法實施例的流程 圖2是本發(fā)明一種硬盤隱藏區(qū)的解除裝置實施例的示意 圖3是本發(fā)明一種硬盤隱藏區(qū)的解除裝置另一實施例的示意 圖4是本發(fā)明一種硬盤隱藏區(qū)的解除系統(tǒng)實施例的示意圖。
具體實施例方式為使本發(fā)明的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細(xì)的說明。參照圖1,示出了本發(fā)明硬盤隱藏區(qū)的解除方法實施例的流程圖,將執(zhí)行本發(fā)明方法的裝置連接于只讀保護設(shè)備與硬盤之間,再將只讀保護設(shè)備連接于計算機。所述方法包括如下步驟,SI,獲取硬盤信息;S2,根據(jù)硬盤信息包括的硬盤隱藏區(qū)校驗位來識別硬盤是否支持硬盤隱藏區(qū)指令,若支持硬盤隱藏區(qū)指令,則發(fā)送指令獲取硬盤隱藏區(qū)最大地址;S3,將硬盤信息包括的硬盤可見容量最大地址與所述硬盤隱藏區(qū)最大地址進行比較來識別硬盤是否包括硬盤隱藏區(qū);S4,若硬盤包括硬盤隱藏區(qū),以根據(jù)硬盤信息包括的第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送解除指令進行硬盤隱藏區(qū)的解除;S5,以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原或先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行硬盤隱藏區(qū)的還原。其中,所述硬盤隱藏區(qū)為HPA區(qū)域和/或DCO區(qū)域。通過本發(fā)明提供的方法,能夠在解除硬盤隱藏區(qū)、獲得硬盤內(nèi)部數(shù)據(jù)后還原硬盤隱藏區(qū),且能夠保證硬盤數(shù)據(jù)不被修改,從而保證取證工作的司法有效性與數(shù)據(jù)完整性。具體的,在SI中,獲取硬盤信息為通過發(fā)送ATA指令I(lǐng)DENTIFY DEVICE獲取IDENTIFY DEVICE DATA,共256字,從中可以獲取硬盤屬性、硬盤支持的ATA指令等信息。具體的,在S2中,根據(jù)硬盤信息包含的硬盤隱藏區(qū)校驗位IDENTIFY DEVICE DATA的第83字第11位i和第82字第10位j來識別硬盤是否支持硬盤隱藏區(qū)指令,即HPA指令和/或DCO指令。設(shè)定硬盤可容量最大地址為X,HPA最大地址為Y,DCO最大地址為Z,當(dāng)ij=00b時,硬盤不支持HPA指令和DCO指令,賦值Y = X1Z = X ;當(dāng)i j=01b時,硬盤支持HPA指令但不支持DCO指令,發(fā)送ATA指令獲取HPA區(qū)域的最大地址Y,同時賦值Z = Y;當(dāng)i j=10b時,則硬盤不支持HPA指令但支持DCO指令,發(fā)送ATA指令獲取DCO區(qū)域的最大地址Z,同時賦值Y = X ;當(dāng)1_=1 Ib時,則硬盤同時支持HPA指令和DCO指令,發(fā)送ATA指令獲取HPA區(qū)域的最大地址Y和DCO區(qū)域的最大地址Z。具體的,通過發(fā)送ATA指令READNATIVE MAX ADDRESS獲取HPA區(qū)域的最大地址THE NATIVE MAX ADDRESS,共4字;通過發(fā)送ATA 指令 DEVICE CONFI⑶RATION IDENTIFY 獲取 DEVICE CONFI⑶RATION IDENTIFY DATA,共256字,所述DCO區(qū)域的最大地址為DEVICE CONFI⑶RATION IDENTIFY DATA的第3 6字;所述硬盤可見容量的最大地址是通過IDENTIFY DEVICE DATA的第100-103字減I計算出來的。具體的,在S3中,將上述X,Y,Z進行比較來識別硬盤是否包含HPA和/或DC0。當(dāng)X=Y且Y=Z時,硬盤不包含HPA和DCO ;當(dāng)Χ〈Υ且Y=Z時,硬盤有包含DCO ;當(dāng)X=Y且Υ〈Ζ時,硬盤包含HPA ;當(dāng)Χ〈Υ且Υ〈Ζ時,硬盤包含HPA和DCO。具體的,在S4中,所述第一設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第7字第8位,也就是說,根據(jù)IDENTIFY DEVICE DATA的第7字第8位確定用28_bit指令方式發(fā)送指令或用48-bit方式發(fā)送指令。若硬盤包含HPA區(qū)域但不包含DCO區(qū)域時,發(fā)送HPA解除指令進行HPA區(qū)域的解除;若硬盤包含DCO區(qū)域但不包含HPA區(qū)域時,發(fā)送DCO解除指令進行DCO區(qū)域的解除;若硬盤包括HPA區(qū)域和DCO區(qū)域時,以根據(jù)所述第一設(shè)定參數(shù)確定的指令發(fā)送方式先發(fā)送HPA解除指令進行HPA區(qū)域的解除,再發(fā)送DCO解除指令進行DCO區(qū)域的解除。具體的,在S5中,同樣是以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原。若硬盤 包含HPA區(qū)域但不包含DCO區(qū)域時,發(fā)送HPA還原指令進行HPA區(qū)域的還原;若硬盤包含DCO區(qū)域但不包含HPA區(qū)域時,發(fā)送DCO還原指令進行DCO區(qū)域的還原;若硬盤包含HPA區(qū)域和DCO區(qū)域時,先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,以保證硬盤內(nèi)電容有足夠的時間放電且可讓硬盤的盤片停止轉(zhuǎn)動以保護硬盤,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式先發(fā)送DCO還原指令進行DCO區(qū)域的還原,再發(fā)送HPA還原指令進行HPA區(qū)域的還原。其中,斷掉的電源和上電的電源可使用5V端電源,也可同時使用5V端電源和12V端電源。優(yōu)選的,上述方法還包括如下步驟將硬盤信息包括的第二設(shè)定參數(shù)與存儲的上個硬盤相應(yīng)的參數(shù)進行比對,判斷是否為同一硬盤,若不是同一硬盤,則將硬盤信息進行存儲,若是同一硬盤,則可選擇是否進行硬盤隱藏區(qū)的還原。其中,所述第二設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第27 46字和第10 19字,分別代表硬盤的盤符和序列號。也就是說,將獲取的硬盤盤符和序列號與存儲的上個硬盤的盤符和序列號進行比對,以判斷在工作過程中出現(xiàn)異常斷電等情況下,再次接入的硬盤是否為斷電之前的硬盤。優(yōu)選的,若隱藏區(qū)包括HPA區(qū)域但不包括DCO區(qū)域時,對HPA的解除包括臨時解除HPA區(qū)域和徹底解除HPA區(qū)域。其中,臨時解除HPA區(qū)域為執(zhí)行SET MAX ADDRESS指令前把指令的Count第O位置為1,解除后用戶可訪問該HPA區(qū)域,硬盤掉電或硬件復(fù)位后,HPA區(qū)域還存在,但需要再次解除才能訪問;徹底解除HPA區(qū)域為執(zhí)行SET MAX ADDRESS指令前把指令的Count第O位置為0,解除后用戶可訪問該HPA區(qū)域,硬盤掉電或硬件復(fù)位后,HPA區(qū)域消失,需要重新設(shè)置才能還原HPA區(qū)域。優(yōu)選的,所述方法是基于FPGA控制芯片來控制的方法。本發(fā)明還提出一種與上述硬盤隱藏區(qū)的解除方法相對應(yīng)的裝置,將所述裝置連接于只讀保護設(shè)備與硬盤之間,再將只讀保護設(shè)備連接于計算機。參看圖2,為本發(fā)明的硬盤隱藏區(qū)的解除裝置實施例的示意圖,所述裝置包括,獲取單元21,用于獲取硬盤信息;第一識別單元22,用于根據(jù)硬盤信息包括的硬盤隱藏區(qū)校驗位來識別硬盤是否支持硬盤隱藏區(qū)指令,若支持硬盤隱藏區(qū)指令,則發(fā)送指令獲取硬盤隱藏區(qū)最大地址;第二識別單元23,用于將硬盤信息包括的硬盤可見容量最大地址與所述硬盤隱藏區(qū)最大地址進行比較來識別硬盤是否包括硬盤隱藏區(qū);解除單元24,用于以根據(jù)硬盤信息包括的第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送解除指令進行硬盤隱藏區(qū)的解除;還原單元25,用于以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原或先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行硬盤隱藏區(qū)的還原。其中,所述硬盤隱藏區(qū)為HPA區(qū)域和/或DCO區(qū)域。通過本發(fā)明提供的裝置,能夠在解除硬盤隱藏區(qū)、獲得硬盤內(nèi)部數(shù)據(jù)后還原硬盤隱藏區(qū),且能夠保證硬盤數(shù)據(jù)不被修改,從而保證取證工作的司法有效性與數(shù)據(jù)完整性。優(yōu)選的,參看圖3,所述裝置還包括判斷單元26,用于將硬盤信息包括的第二設(shè)定參數(shù)與存儲的上個硬盤相應(yīng)的參數(shù)進行比對,判斷是否為同一硬盤,若不是同一硬盤,則將硬盤信息進行存儲,若是同一硬盤,則可選擇是否進行硬盤隱藏區(qū)的還原。其中,所述第二設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第27 46字和第10 19字,分別代表硬盤的盤符和序列號。也就是說,將獲取的硬盤盤符和序列號與存儲的上個硬盤的盤符和序列號進行比對,以判斷在工作過程中出現(xiàn)異常斷電等情況下,再次接入的硬盤是否為斷電之前的硬盤。具體的,在獲取單元21中,獲取硬盤信息為通過發(fā)送IDENTIFY DEVICE指令獲取IDENTIFY DEVICE DATA,共256字,從中可以獲取硬盤屬性、硬盤支持的ATA指令等信息。具體的,在第一識別單元22中,根據(jù)硬盤信息包含的硬盤隱藏區(qū)校驗位IDENTIFYDEVICE DATA的第83字第11位i和第82字第10位j來識別硬盤是否支持硬盤隱藏區(qū)指令,即HPA指令和/或DCO指令。設(shè)定硬盤可容量最大地址為X,HPA區(qū)域的最大地址為Y,DCO區(qū)域的最大地址為Z,當(dāng)ij=00b時,硬盤不支持HPA指令和DCO指令,賦值Y = X,Z = X ;當(dāng)Ij=Olb時,硬盤支持HPA指令但不支持DCO指令,發(fā)送ATA指令獲取HPA區(qū)域的最大地址Y,同時賦值Z = Y ;iij=10b時,則硬盤不支持HPA指令但支持DCO指令,發(fā)送ATA指令獲取DCO區(qū)域的最大地址Z,同時賦值Y = X ;當(dāng)1_=1 Ib時,則硬盤同時支持HPA指令和DCO指令,發(fā)送ATA指令獲取HPA區(qū)域的最大地址Y和DCO區(qū)域的最大地址Z。具體的,通過發(fā)送ATA 指令 READ NATIVE MAX ADDRESS 獲取 HPA 區(qū)域的最大地址 THE NATIVE MAX ADDRESS,共 4 字;通過發(fā)送 ATA 指令 DEVICE CONFI⑶RATION IDENTIFY 獲取 DEVICE CONFI⑶RATIONIDENTIFY DATA,共 256 字,所述 DCO 區(qū)域的最大地址為 DEVICE CONFI⑶RATION IDENTIFYDATA的第3 6字;所述硬盤可見容量的最大地址是通過IDENTIFY DEVICE DATA的第100-103字減I計算出來的。具體的,在第二識別單元23中,將上述X,Y,Z進行比較來識別硬盤是否包含HPA區(qū)域和/或DCO區(qū)域。當(dāng)X=Y且Y=Z時,硬盤不包含HPA區(qū)域和DCO區(qū)域;當(dāng)X〈Y且Y=Z時,硬盤有包含DCO區(qū)域;當(dāng)X=Y且Υ〈Ζ時,硬盤包含HPA區(qū)域;當(dāng)Χ〈Υ且Υ〈Ζ時,硬盤包含HPA區(qū)域和DCO區(qū)域。具體的,在解除單元24中,所述第一設(shè)定參數(shù)為IDENTIFY DEVICE DATA的第7字第8位,也就是說,根據(jù)IDENTIFY DEVICE DATA的第7字第8位確定用28_bit指令方式發(fā)送指令或用48-bit方式發(fā)送指令。若硬盤包含HPA區(qū)域但不包含DCO區(qū)域時,發(fā)送HPA解除指令進行HPA區(qū)域的解除;若硬盤包含DCO區(qū)域但不包含HPA區(qū)域時,發(fā)送DCO解除指令進行DCO區(qū)域的解除;若硬盤包括HPA區(qū)域和DCO區(qū)域時,以根據(jù)所述第一設(shè)定參數(shù)確定的指令發(fā)送方式先發(fā)送HPA解除指令進行HPA區(qū)域的解除,再發(fā)送DCO解除指令進行DCO區(qū)域的解除。具體的,在還原單元25中,同樣是以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原。若硬盤包含HPA區(qū)域但不包含DCO區(qū)域時,發(fā)送HPA還原指令進行HPA區(qū)域的還原;若硬盤包含DCO但不包含HPA時,發(fā)送DCO還原指令進行DCO區(qū)域的還原;若硬盤包含HPA區(qū)域和DCO區(qū)域時,先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,以保證硬盤內(nèi)電容有足夠的時間放電且可讓硬盤的盤片停止轉(zhuǎn)動以保護硬盤,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式先發(fā)送DCO還原指令進行DCO區(qū)域的還原,再發(fā)送HPA還原指令進行HPA區(qū)域的還原。其中,斷掉的電源和上電的電源可使用5V端電源,也可同時使用5V端電源和12V端電源。優(yōu)選的,若隱藏區(qū)包括HPA區(qū)域但不包括DCO區(qū)域時,解除單元24對HPA的解除包括臨時解除HPA區(qū)域和徹底解除HPA區(qū)域。其中,臨時解除HPA區(qū)域為執(zhí)行SET MAXADDRESS指令前把指令的Count第O位置為1,解除后用戶可訪問該HPA區(qū)域,硬盤掉電或硬件復(fù)位后,HPA區(qū)域還存在,但需要再次解除才能訪問;徹底解除HPA區(qū)域為執(zhí)行SET MAXADDRESS指令前把指令的Count第O位置為0,解除后用戶可訪問該HPA區(qū)域,硬盤掉電或硬件復(fù)位后,HPA區(qū)域消失,需要重新設(shè)置才能還原HPA區(qū)域。優(yōu)選的,所述 裝置還包含F(xiàn)PGA控制芯片作為主控芯片,用于控制所述各單元的執(zhí)行。所述FPGA控制芯片的配置可選用主動配置方式、被動配置方式或JTAG配置方式。通過FPGA控制芯片實現(xiàn)對SATA硬盤及滿足SATA協(xié)議設(shè)備的控制,可提高取證速度,且可減少PCB(Printed Circuit Board)面積,實現(xiàn)設(shè)備小型化,更便于攜帶,同時只有FPGA需要編寫程序,升級操作簡單。如圖4所示,為一種硬盤隱藏區(qū)的解除系統(tǒng)實施例的示意圖,所述系統(tǒng)包括上文所述的硬盤隱藏區(qū)的解除裝置,同時還包括第一 SATA控制器31-1,作為從設(shè)備控制器,用于將所述裝置30通過只讀保護設(shè)備41與計算機40連接,接收計算機40發(fā)送的數(shù)據(jù)并傳送給所述裝置30 ;第二 SATA控制器31-2,作為主設(shè)備控制器,用于將所述裝置30與SATA硬盤50連接,所述裝置30通過第二 SATA控制器31-2控制SATA硬盤50 ;FLASH控制器33,用于在存儲FLASH數(shù)據(jù)時,將所述裝置30傳送的FLASH數(shù)據(jù)存儲到FLASH存儲芯片60對應(yīng)的存儲位置;在讀取FLASH數(shù)據(jù)時,讀取所述裝置30指定存儲位置的FLASH存儲芯60片中的FLASH數(shù)據(jù)傳送給所述裝置30 ;SATA硬盤電源控制器34,用于將所述裝置30的SATA硬盤電源通斷信號轉(zhuǎn)成SATA硬盤電源控制模塊70所需的信號;按鍵和顯示屏控制器35,用于驅(qū)動按鍵80和顯示屏90,將所述裝置30傳送的信息在顯示屏90上顯示,將用戶按下的按鍵命令傳送給所述裝置30 ;FLASH存儲芯片60,用于存儲所述裝置30獲得的SATA硬盤信息;配置存儲芯片100,用于存儲FPGA的配置程序,上電時完成對FPGA控制芯片的配置;SATA硬盤電源控制模塊70,用于控制SATA硬盤電源的通斷狀態(tài);按鍵80,用于用戶輸入命令;顯示屏90,用于顯示所述裝置30的工作狀態(tài)及硬盤狀態(tài)。其中,F(xiàn)LASH存儲芯片60存儲的硬盤信息包括IDENTIFY DEVICE DATA,共256字;DEVICE CONFI⑶RATION IDENTIFY DATA,共 256 字和 THE NATIVE MAX ADDRESS。通過本發(fā)明提供的系統(tǒng),能夠在解除硬盤隱藏區(qū)、獲得硬盤內(nèi)部數(shù)據(jù)后還原硬盤隱藏區(qū),且能夠保證硬盤數(shù)據(jù)不被修改,從而保證取證工作的司法有效性與數(shù)據(jù)完整性。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上對本發(fā)明所提供的一種硬盤隱藏區(qū)的解除方法、裝置和系統(tǒng)進行了詳細(xì)介紹,本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。
權(quán)利要求
1.一種硬盤隱藏區(qū)的解除方法,其特征在于,執(zhí)行所述方法的裝置連接于只讀保護設(shè)備與硬盤之間,所述方法包括,獲取硬盤信息;根據(jù)硬盤信息包括的硬盤隱藏區(qū)校驗位來識別硬盤是否支持硬盤隱藏區(qū)指令,若支持硬盤隱藏區(qū)指令,則發(fā)送指令獲取硬盤隱藏區(qū)最大地址;將硬盤信息包括的硬盤可見容量最大地址與所述硬盤隱藏區(qū)最大地址進行比較來識別硬盤是否包括硬盤隱藏區(qū);若硬盤包括硬盤隱藏區(qū),以根據(jù)硬盤信息包括的第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送解除指令進行硬盤隱藏區(qū)的解除;以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原或先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行硬盤隱藏區(qū)的還原。
2.如權(quán)利要求1所述的方法,其特征在于,還包括將硬盤信息包括的第二設(shè)定參數(shù)與存儲的上個硬盤相應(yīng)的參數(shù)進行比對,判斷是否為同一硬盤,若不是同一硬盤,則將硬盤信息進行存儲,若是同一硬盤,則選擇是否進行硬盤隱藏區(qū)的還原。
3.如權(quán)利要求2所述的方法,其特征在于,所述硬盤隱藏區(qū)為HPA區(qū)域和/或DCO區(qū)域。
4.如權(quán)利要求3所述的方法,其特征在于,所述獲取硬盤信息為通過發(fā)送IDENTIFY DEVICE 指令獲取 IDENTIFY DEVICE DATA,共 256 字。
5.如權(quán)利要求3所述的方法,其特征在于,所述獲取硬盤隱藏區(qū)最大地址包括獲取 HPA區(qū)域的最大地址和/或獲取DCO區(qū)域的最大地址,其中,通過發(fā)送READ NATIVE MAX ADDRESS指令獲取HPA區(qū)域的最大地址THE NATIVE MAX ADDRESS,共4字;通過發(fā)送DEVICE CONFI⑶RATION IDENTIFY指令獲取 DEVICE CONFI⑶RATION IDENTIFY DATA,所述DCO 區(qū)域的最大地址為DEVICE CONFI⑶RATION IDENTIFY DATA的第3 6字。
6.如權(quán)利要求4所述的方法,其特征在于,所述硬盤可見容量的最大地址是通過 IDENTIFY DEVICE DATA的第100-103字減I計算出來的。
7.如權(quán)利要求4所述的方法,其特征在于,所述硬盤隱藏區(qū)校驗位為IDENTIFY DEVICE DATA的第83字第11位和第82字第10位。
8.如權(quán)利要求4所述的方法,其特征在于,所述第一設(shè)定參數(shù)為IDENTIFYDEVICE DATA的第7字第8位,根據(jù)所述第一設(shè)定參數(shù)確定用28-bit指令方式發(fā)送指令或用48_bit 方式發(fā)送指令。
9.如權(quán)利要求4所述的方法,其特征在于,所述第二設(shè)定參數(shù)為IDENTIFYDEVICE DATA的第27 46字和第10 19字,分別代表硬盤的盤符和序列號。
10.如權(quán)利要求3所述的方法,其特征在于,若隱藏區(qū)包括HPA區(qū)域但不包括DCO區(qū)域時,對HPA區(qū)域的解除包括臨時解除HPA區(qū)域和徹底解除HPA區(qū)域。
11.如權(quán)利要求1至10中任一項所述的方法,其特征在于,所述方法是基于FPGA控制芯片來控制的方法。
12.—種硬盤隱藏區(qū)的解除裝置,其特征在于,所述裝置連接于只讀保護設(shè)備與硬盤之間,包括,獲取單元,用于獲取硬盤信息;第一識別單元,用于根據(jù)硬盤信息包括的硬盤隱藏區(qū)校驗位來識別硬盤是否支持硬盤隱藏區(qū)指令,若支持硬盤隱藏區(qū)指令,則發(fā)送指令獲取硬盤隱藏區(qū)最大地址;第二識別單元,用于將硬盤信息包括的硬盤可見容量最大地址與所述硬盤隱藏區(qū)最大地址進行比較來識別硬盤是否包括硬盤隱藏區(qū);解除單元,用于以根據(jù)硬盤信息包括的第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送解除指令進行硬盤隱藏區(qū)的解除;還原單元,用于以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行隱藏區(qū)的還原或先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,然后再以根據(jù)第一設(shè)定參數(shù)確定的指令發(fā)送方式發(fā)送還原指令進行硬盤隱藏區(qū)的還原。
13.如權(quán)利要求12所述的裝置,其特征在于,還包括判斷單元,用于將硬盤信息包括的第二設(shè)定參數(shù)與存儲的上個硬盤相應(yīng)的參數(shù)進行比對,判斷是否為同一硬盤,若不是同一硬盤,則將硬盤信息進行存儲,若是同一硬盤,則選擇是否進行硬盤隱藏區(qū)的還原。
14.如權(quán)利要求13所述的裝置,其特征在于,所述硬盤隱藏區(qū)為HPA區(qū)域和/或DCO區(qū)域。
15.如權(quán)利要求14所述的裝置,其特征在于,所述獲取單元獲取硬盤信息為通過發(fā)送 IDENTIFY DEVICE 指令獲取 IDENTIFY DEVICE DATA,共 256 字。
16.如權(quán)利要求14所述的裝置,其特征在于,所述第一識別單元獲取硬盤隱藏區(qū)最大地址包括獲取HPA區(qū)域的最大地址和/或獲取DCO區(qū)域的最大地址,其中,通過發(fā)送READ NATIVE MAX ADDRESS指令獲取HPA區(qū)域的最大地址THE NATIVE MAX ADDRESS,共4字;通過發(fā)送 DEVICE CONFI⑶RATION IDENTIFY 指令獲取 DEVICE CONFI⑶RATION IDENTIFY DATA, 所述DCO區(qū)域的最大地址為DEVICE CONFI⑶RATION IDENTIFY DATA的第3 6字。
17.如權(quán)利要求15所述的裝置,其特征在于,所述硬盤可見容量的最大地址是通過 IDENTIFY DEVICE DATA的第100-103字減I計算出來的。
18.如權(quán)利要求15所述的裝置,其特征在于,所述硬盤隱藏區(qū)校驗位為IDENTIFY DEVICE DATA的第83字第11位和第82字第10位。
19.如權(quán)利要求15所述的裝置,其特征在于,所述第一設(shè)定參數(shù)為IDENTIFYDEVICE DATA的第7字第8位,根據(jù)所述第一設(shè)定參數(shù)確定用28-bit指令方式發(fā)送指令或用48_bit 方式發(fā)送指令。
20.如權(quán)利要求15所述的裝置,其特征在于,所述第二設(shè)定參數(shù)為IDENTIFYDEVICE DATA的第27 46字和第10 19字,分別代表硬盤的盤符和序列號。
21.如權(quán)利要求14所述的裝置,其特征在于,當(dāng)隱藏區(qū)包括HPA區(qū)域但不包括DCO區(qū)域時,所述解除單元執(zhí)行的對HPA區(qū)域的解除包括臨時解除和徹底解除。
22.如權(quán)利要求12至21中任一項所述的裝置,其特征在于,還包含F(xiàn)PGA控制芯片,用于控制所述各單元的執(zhí)行。
23.一種硬盤隱藏區(qū)的解除系統(tǒng),其特征在于,包括如權(quán)利要求12至22中任一項所述的裝置,所述系統(tǒng)還包括第一 SATA控制器,用于將所述裝置與上位機連接,接收上位機發(fā)送的數(shù)據(jù)并傳送給所述裝置;第二 SATA控制器,用于將所述裝置與SATA硬盤連接,所述裝置通過第二 SATA控制器控制SATA硬盤;FLASH控制器,用于在存儲FLASH數(shù)據(jù)時,將所述裝置傳送的FLASH數(shù)據(jù)存儲到FLASH 存儲芯片對應(yīng)的存儲位置;在讀取FLASH數(shù)據(jù)時,讀取所述裝置指定存儲位置的FLASH存儲芯片中的FLASH數(shù)據(jù)傳送給所述裝置;SATA硬盤電源控制器,用于將所述裝置的SATA硬盤電源通斷信號轉(zhuǎn)成SATA 硬盤電源控制模塊所需的信號;按鍵和顯示屏控制器,用于驅(qū)動按鍵和顯示屏,將所述裝置傳送的信息在顯示屏上顯示,將用戶按下的按鍵命令傳送給所述裝置; FLASH存儲芯片,用于存儲所述裝置獲得的SATA硬盤信息;配置存儲芯片,用于存儲FPGA的配置程序,上電時完成對FPGA控制芯片的配置;SATA硬盤電源控制模塊,用于控制SATA硬盤電源的通斷狀態(tài);按鍵,用于用戶輸入命令;顯示屏,用于顯示所述裝置的工作狀態(tài)及硬盤狀態(tài)。
全文摘要
本發(fā)明提供了一種硬盤隱藏區(qū)的解除方法、裝置及系統(tǒng),其中執(zhí)行所述方法的裝置連接于只讀保護設(shè)備與硬盤之間,所述方法包括,獲取硬盤信息;根據(jù)硬盤信息包括的硬盤隱藏區(qū)校驗位識別硬盤是否支持硬盤隱藏區(qū)指令,若支持硬盤隱藏區(qū)指令,則發(fā)送指令獲取硬盤隱藏區(qū)最大地址;將硬盤信息包括的硬盤可見容量最大地址與硬盤隱藏區(qū)最大地址進行比較識別硬盤是否包括硬盤隱藏區(qū);若硬盤包括硬盤隱藏區(qū),發(fā)送解除指令進行硬盤隱藏區(qū)的解除;發(fā)送還原指令進行隱藏區(qū)的還原或先斷掉硬盤連接和硬盤電源一設(shè)定時間后重新進行硬盤連接和硬盤上電,然后再發(fā)送還原指令進行硬盤隱藏區(qū)的還原;通過本方法可實現(xiàn)解除及還原硬盤隱藏區(qū),且能保證硬盤數(shù)據(jù)不被修改。
文檔編號G06F3/06GK103049223SQ201210582938
公開日2013年4月17日 申請日期2012年12月28日 優(yōu)先權(quán)日2012年12月28日
發(fā)明者沈順孝, 吳神培, 郭文瓊, 陳大鈹 申請人:廈門市美亞柏科信息股份有限公司