本發(fā)明涉及數(shù)據(jù)安全領(lǐng)域,尤其涉及一種數(shù)據(jù)安全存儲(chǔ)方法及裝置。
背景技術(shù):現(xiàn)有的電子信息安全領(lǐng)域包括系統(tǒng)安全、數(shù)據(jù)安全和設(shè)備安全三個(gè)子領(lǐng)域。在數(shù)據(jù)安全領(lǐng)域內(nèi),一般采用下面三種技術(shù)確保數(shù)據(jù)安全:(1)數(shù)據(jù)內(nèi)容安全技術(shù),包括數(shù)據(jù)加密解密技術(shù)和端到端數(shù)據(jù)加密技術(shù),保障數(shù)據(jù)在存儲(chǔ)和傳輸過程中內(nèi)容不被非法讀?。?2)數(shù)據(jù)安全轉(zhuǎn)移技術(shù),包括防止非法拷貝、打印或其它輸出,保障數(shù)據(jù)在使用和轉(zhuǎn)移過程中的安全;(3)網(wǎng)絡(luò)阻斷技術(shù),包括網(wǎng)絡(luò)物理阻斷和設(shè)置網(wǎng)絡(luò)屏障等技術(shù)。由于上述技術(shù)在應(yīng)對(duì)計(jì)算機(jī)內(nèi)核病毒、木馬、操作系統(tǒng)漏洞、系統(tǒng)后門以及人為泄密時(shí)能力不足,事實(shí)上任何計(jì)算設(shè)備上,如計(jì)算機(jī),都有可能存在惡意代碼。但根據(jù)AV實(shí)驗(yàn)室分析,目前針對(duì)計(jì)算機(jī)的所有危害總有效偵測(cè)能力最多在50%左右。由于危害檢出能力的不足,事實(shí)上任何電腦上都可能存在惡意代碼,一旦惡意代碼進(jìn)入終端系統(tǒng),上述的加密技術(shù)、防拷貝技術(shù)以及網(wǎng)絡(luò)阻斷技術(shù)在這種情況下將失去作用,現(xiàn)有的黑客技術(shù)可以輕松地利用系統(tǒng)漏洞、系統(tǒng)后門穿透上述安全技術(shù)、植入惡意代碼,并利用惡意代碼取得用戶數(shù)據(jù)。上述技術(shù)更無法防范涉密人員的主動(dòng)或被動(dòng)泄密,例如,內(nèi)部人員可以攜帶存儲(chǔ)設(shè)備,從內(nèi)部網(wǎng)絡(luò)或終端上下載所需的資料并帶走存儲(chǔ)設(shè)備,導(dǎo)致內(nèi)部泄密。如圖1所示為現(xiàn)有技術(shù)中的計(jì)算機(jī)終端系統(tǒng)示意圖,包括:用戶界面層101,應(yīng)用層102,操作系統(tǒng)內(nèi)核層103,硬件映射層104以及硬件層105。終端系統(tǒng)的用戶通過處于用戶界面層101的用戶界面對(duì)計(jì)算機(jī)終端系統(tǒng)進(jìn)行操作并得到圖形化或非圖形化反饋。以保存數(shù)據(jù)操作為例:(1)用戶通過某應(yīng)用程序提供的用戶界面,選擇“保存”功能;(2)應(yīng)用層102調(diào)用對(duì)應(yīng)代碼,將保存指令轉(zhuǎn)化為一個(gè)或多個(gè)的操作系統(tǒng)提供的接口函數(shù),即保存操作成為對(duì)一系列操作系統(tǒng)提供的接口函數(shù)的調(diào)用;(3)操作系統(tǒng)內(nèi)核層103接收到上述的操作系統(tǒng)的接口函數(shù)調(diào)用,將每一個(gè)操作系統(tǒng)接口函數(shù)轉(zhuǎn)化為一個(gè)或多個(gè)硬件映射層104提供的接口函數(shù);即保存操作成為對(duì)一系列硬件映射層104提供的接口函數(shù)的調(diào)用;(4)上述每一個(gè)硬件映射層104提供的接口函數(shù)在硬件映射層104中轉(zhuǎn)化為一個(gè)或多個(gè)硬件指令調(diào)用,例如設(shè)備操作指令;(5)處于硬件層105的硬件,例如CPU,接收上述硬件指令調(diào)用并執(zhí)行硬件指令。上述計(jì)算機(jī)終端中,當(dāng)其被惡意代碼侵入后,惡意代碼可以從計(jì)算機(jī)系統(tǒng)中取得數(shù)據(jù),惡意代碼在竊取數(shù)據(jù)后。惡意代碼的行為模式為:(1)存儲(chǔ)行為:將目標(biāo)數(shù)據(jù)內(nèi)容保存到某個(gè)存儲(chǔ)位置;(2)傳輸行為:將竊取的數(shù)據(jù)直接通過網(wǎng)絡(luò)傳輸?shù)街付ǖ哪繕?biāo)地址。另外,使用上述計(jì)算設(shè)備或信息設(shè)備的人員進(jìn)行內(nèi)部泄密的行為模式包括:(1)主動(dòng)泄密:涉密人員通過主動(dòng)拷貝、通過惡意工具穿透安全系統(tǒng)、置入木馬等手段直接取得涉密數(shù)據(jù),并進(jìn)行泄密;(2)被動(dòng)泄密:涉密人員使用的電腦或存儲(chǔ)介質(zhì)因保管不善丟失或使用不當(dāng),例如將涉密裝備直接接入Internet造成的泄密。應(yīng)用上述數(shù)據(jù)安全方法在該計(jì)算機(jī)終端系統(tǒng)中,仍然無法解決:1.基于設(shè)備過濾的防拷貝技術(shù)無法保證涉密信息在終端不被非法存儲(chǔ);2.基于網(wǎng)絡(luò)過濾無法確保涉密信息不失控;3.涉密人員可通過惡意代碼或惡意工具造成泄密;4.涉密人員因涉密設(shè)備或存儲(chǔ)介質(zhì)失控造成泄密。綜上所述,現(xiàn)有技術(shù)仍缺乏一種在終端系統(tǒng)遭到惡意代碼侵入后仍然能夠保證數(shù)據(jù)安全的方法。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明解決的問題是提供一種在終端系統(tǒng)遭到惡意代碼侵入后仍然能夠保證數(shù)據(jù)安全的方法,提高數(shù)據(jù)安全性。為了解決上述問題,本發(fā)明的實(shí)施例中提供了一種數(shù)據(jù)安全存儲(chǔ)方法,包括:接收硬件指令;分析所述硬件指令;如果所述硬件指令是存儲(chǔ)指令,修改所述存儲(chǔ)指令中的目標(biāo)地址為對(duì)應(yīng)的在安全存儲(chǔ)設(shè)備上的存儲(chǔ)地址;將修改后的存儲(chǔ)指令發(fā)送到硬件層。可選的,修改所述存儲(chǔ)指令中的目標(biāo)地址為對(duì)應(yīng)的在安全存儲(chǔ)設(shè)備上的存儲(chǔ)地址之后,還包括:更新映射位圖中所述目標(biāo)地址對(duì)應(yīng)的位;所述映射位圖用于表示本地存儲(chǔ)地址的數(shù)據(jù)是否轉(zhuǎn)儲(chǔ)到所述安全存儲(chǔ)設(shè)備??蛇x的,更新映射位圖之后,還包括:將已經(jīng)更新的映射位圖同步到所述安全存儲(chǔ)設(shè)備,保存為第二映射位圖??蛇x的,接收硬件指令之前,還包括:建立計(jì)算終端系統(tǒng)與所述安全存儲(chǔ)設(shè)備的通訊;將所述安全存儲(chǔ)設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng),保存為映射位圖??蛇x的,如果所述將所述安全存儲(chǔ)設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng)失敗,將計(jì)算終端系統(tǒng)中的本地存儲(chǔ)空間映射到所述安全存儲(chǔ)設(shè)備上,并建立映射位圖和第二映射位圖??蛇x的,所述的硬件指令為硬件端口I/O指令。可選的,所述安全存儲(chǔ)設(shè)備為遠(yuǎn)程存儲(chǔ)設(shè)備,所述遠(yuǎn)程存儲(chǔ)設(shè)備被多個(gè)計(jì)算終端系統(tǒng)共享。可選的,所述硬件指令來自硬件映射層。進(jìn)一步的,本發(fā)明的實(shí)施例中提供了一種數(shù)據(jù)安全存儲(chǔ)裝置,包括:接收單元,適于接收硬件指令;指令分析單元,適于分析所述硬件指令并判斷所述硬件指令是否為存儲(chǔ)指令;指令修改單元,適于修改所述存儲(chǔ)指令中的目標(biāo)地址為對(duì)應(yīng)的在安全存儲(chǔ)設(shè)備上的存儲(chǔ)地址;發(fā)送單元,適于將修改后的存儲(chǔ)指令發(fā)送到硬件層??蛇x的,還包括:更新單元,與指令修改單元耦接,適于在指令修改單元修改所述存儲(chǔ)指令之后,更新映射位圖中所述目標(biāo)地址對(duì)應(yīng)的位;所述映射位圖用于表示本地存儲(chǔ)地址的數(shù)據(jù)是否轉(zhuǎn)儲(chǔ)到所述安全存儲(chǔ)設(shè)備??蛇x的,還包括同步單元,與所述更新單元耦接,適于建立計(jì)算終端系統(tǒng)與所述安全存儲(chǔ)設(shè)備的通訊,并將映射位圖在所述計(jì)算終端系統(tǒng)和所述安全存儲(chǔ)設(shè)備之間進(jìn)行同步。可選的,所述硬件指令來自硬件映射層??蛇x的,所述安全存儲(chǔ)設(shè)備為遠(yuǎn)程存儲(chǔ)設(shè)備,所述遠(yuǎn)程存儲(chǔ)設(shè)備被多個(gè)計(jì)算終端系統(tǒng)共享。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):1、數(shù)據(jù)安全存儲(chǔ)方法實(shí)現(xiàn)了指令級(jí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)即數(shù)據(jù)全轉(zhuǎn)儲(chǔ),以此為基礎(chǔ),實(shí)現(xiàn)了計(jì)算終端系統(tǒng)全運(yùn)行周期的數(shù)據(jù)安全存儲(chǔ)方法,一方面,使木馬或惡意工具即使取得了涉密信息也無法保存所取得的信息,使數(shù)據(jù)始終存在于可控的安全范圍內(nèi);另一方面,本地不再保存涉密數(shù)據(jù),因此防止了涉密人員的主動(dòng)泄密和被動(dòng)泄密;2、接收來自硬件映射層的硬件指令可以100%的篩查所有指令,進(jìn)一步提高數(shù)據(jù)安全性。附圖說明圖1是現(xiàn)有技術(shù)中計(jì)算機(jī)終端系統(tǒng)包含軟件和硬件的分層示意圖;圖2是本發(fā)明的第一個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖;圖3是本發(fā)明的第一個(gè)實(shí)施例中指令重組過程和重組指令片段的示意圖;圖4是本發(fā)明的第二個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的流程圖;圖5是本發(fā)明的第三個(gè)實(shí)施例中提供的重組指令的生成方法流程圖;圖6是本發(fā)明的第七個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組裝置的框圖;圖7是本發(fā)明的第八個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組裝置的框圖;圖8是本發(fā)明的第九個(gè)實(shí)施例中提供的運(yùn)行時(shí)指令重組裝置的指令重組單元的框圖;圖9是本發(fā)明的第十個(gè)實(shí)施例中提供的計(jì)算機(jī)終端系統(tǒng)的層次結(jié)構(gòu)框圖;圖10是本發(fā)明的第十個(gè)實(shí)施例中提供的數(shù)據(jù)轉(zhuǎn)儲(chǔ)過程整體流程圖;圖11是圖10中初始化過程S1000的流程圖;圖12是本發(fā)明的第十個(gè)實(shí)施例中提供的Bitmap示意圖;圖13是本發(fā)明的第十個(gè)實(shí)施例中提供的數(shù)據(jù)安全存儲(chǔ)方法的流程圖;圖14是本發(fā)明的第十個(gè)實(shí)施例中提供的數(shù)據(jù)安全讀取方法的流程圖;圖15是本發(fā)明的第十一個(gè)實(shí)施例中提供的數(shù)據(jù)安全傳輸方法的流程圖;圖16是本發(fā)明的第十一個(gè)實(shí)施例中提供的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖17是本發(fā)明第十二個(gè)實(shí)施例中提供的數(shù)據(jù)安全存儲(chǔ)裝置的結(jié)構(gòu)框圖;圖18是本發(fā)明第十三個(gè)實(shí)施例中提供的數(shù)據(jù)安全讀取裝置的結(jié)構(gòu)框圖。具體實(shí)施方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式做詳細(xì)的說明。在以下描述中闡述了具體細(xì)節(jié)以便于充分理解本發(fā)明。但是本發(fā)明能夠以多種不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本發(fā)明內(nèi)涵的情況下做類似推廣。因此本發(fā)明不受下面公開的具體實(shí)施方式的限制。計(jì)算機(jī)運(yùn)行過程中,CPU地址寄存器保存下一條將要運(yùn)行的機(jī)器指令的地址;為了實(shí)現(xiàn)運(yùn)行時(shí)機(jī)器指令監(jiān)控,本發(fā)明一些實(shí)施例中將獲取該寄存器中的數(shù)據(jù),并按照該數(shù)據(jù)指向的地址,讀取下一條、多條將要運(yùn)行的機(jī)器指令;并且,修改所述一條、多條機(jī)器指令所組成的待調(diào)度的指令片段,從而在每一條機(jī)器指令運(yùn)行前獲得控制權(quán),不斷的進(jìn)行后續(xù)指令的分析。進(jìn)一步的,本發(fā)明的一些實(shí)施例中,在獲取到待調(diào)度的機(jī)器指令片段后,還包括對(duì)其中的目標(biāo)指令進(jìn)行處理的步驟,從而不僅對(duì)運(yùn)行時(shí)指令進(jìn)行了重組以監(jiān)控運(yùn)行時(shí)指令,還完成對(duì)所述目標(biāo)指令的修改和更新。本發(fā)明的第一個(gè)實(shí)施例中提供了一種運(yùn)行時(shí)指令重組方法。如圖2所示,該方法包括:S101,緩存指令運(yùn)行環(huán)境;S102,獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺(tái)的入口地址,生成具有地址A"的重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";S103,恢復(fù)所述指令運(yùn)行環(huán)境。具體的,在步驟S101執(zhí)行之前,本方法獲取CPU執(zhí)行權(quán)或控制權(quán)。CPU執(zhí)行本方法的步驟時(shí),首先緩存指令運(yùn)行環(huán)境(即步驟S101),即緩存剛剛執(zhí)行的被監(jiān)控指令的結(jié)果。所述CPU在本實(shí)施例中為X86架構(gòu)中央處理器;在本發(fā)明的其他實(shí)施例中,也可以是MIPS處理器或基于ARM架構(gòu)的處理器,而且本領(lǐng)域普通技術(shù)人員可以了解,所述CPU也可以是任何其他類型的計(jì)算設(shè)備中的指令處理單元。在步驟S101中,所述緩存指令運(yùn)行環(huán)境包括:向緩存棧中壓入指令運(yùn)行相關(guān)的寄存器數(shù)據(jù)。在本發(fā)明的其他實(shí)施例中,緩存或保存指令運(yùn)行環(huán)境也可以在指定的、默認(rèn)的其他緩存數(shù)據(jù)結(jié)構(gòu)、地址中進(jìn)行。在步驟S102中,獲取待調(diào)度的機(jī)器指令片段包括:S1021,從CPU地址寄存器讀取待調(diào)度的機(jī)器指令地址;S1022,以跳轉(zhuǎn)指令為檢索目標(biāo),檢索所述機(jī)器指令地址對(duì)應(yīng)的機(jī)器指令,直到發(fā)現(xiàn)第一個(gè)跳轉(zhuǎn)指令;所述跳轉(zhuǎn)指令包括Jump指令和Call指令;S1023,將所述第一個(gè)跳轉(zhuǎn)指令及其之前的所有機(jī)器指令作為一個(gè)待調(diào)度的機(jī)器指令片段;將該機(jī)器指令片段保存在指令重組平臺(tái)中,或其他指令重組平臺(tái)能夠讀取的存儲(chǔ)位置。在本發(fā)明的其他實(shí)施例中,獲取待調(diào)度的機(jī)器指令片段也可以以非跳轉(zhuǎn)指令,例如寫入指令、讀取指令等,為檢索目標(biāo),切分機(jī)器指令片段;這時(shí),需要保證其中的跳轉(zhuǎn)指令執(zhí)行后,指令重組平臺(tái)仍能夠獲取CPU控制權(quán),所以跳轉(zhuǎn)指令需要作為補(bǔ)充檢索目標(biāo)或者第二檢索目標(biāo),即得到粒度更小的機(jī)器指令片段。仍然在步驟S102中,在插入第二跳轉(zhuǎn)指令JP2之前,本實(shí)施例提供的方法還可以包括:S1025,解析所述機(jī)器指令片段,利用指令集匹配所述機(jī)器指令片段,得到待處理的目標(biāo)機(jī)器指令;所述指令集包括X86,MIPS和ARM指令集;S1026,按照預(yù)定的方式,修改所述目標(biāo)機(jī)器指令。利用上述步驟,不僅可以完成運(yùn)行時(shí)指令監(jiān)控,還可以進(jìn)行其他處理過程,將在下面的實(shí)施例中進(jìn)一步展開描述。由于本實(shí)施例只是為了可以實(shí)現(xiàn)運(yùn)行時(shí)指令的重組,所以步驟S1025~S1026沒有在本實(shí)施例中執(zhí)行,直接執(zhí)行步驟:在所述機(jī)器指令片段的最后一條指令(即跳轉(zhuǎn)指令JP1)前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺(tái)的入口地址,生成具有地址A"的重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A"。其中的指令重組平臺(tái)就是本實(shí)施例中提供的指令重組方法的執(zhí)行平臺(tái)。插入JP2是為了在CPU運(yùn)行所述待調(diào)度的機(jī)器指令片段時(shí),在JP1運(yùn)行前,重新開始運(yùn)行所述指令重組平臺(tái),指令重組平臺(tái)將繼續(xù)分析下一段待調(diào)度的機(jī)器指令片段,重復(fù)本方法中的步驟進(jìn)而完成對(duì)所有運(yùn)行指令的重組。更具體的描述見下面對(duì)步驟S103的分析。在步驟S103中,恢復(fù)所述指令運(yùn)行環(huán)境包括:從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù);其中地址寄存器保存的跳轉(zhuǎn)指令的目標(biāo)地址已經(jīng)修改為以A"為入口地址的新的機(jī)器指令片段?;謴?fù)所述指令運(yùn)行環(huán)境后,指令重組平臺(tái)完成運(yùn)行,CPU繼續(xù)執(zhí)行上一個(gè)機(jī)器指令片段的最后一條指令即跳轉(zhuǎn)指令,其目標(biāo)地址如上所述成為A",CPU將執(zhí)行A"為入口地址的新的機(jī)器指令片段。所述以A"為入口地址的指令片段執(zhí)行到倒數(shù)第二跳指令(即第二跳轉(zhuǎn)指令JP2)后,所述指令重組平臺(tái)重新得到CPU控制權(quán);所述指令重組平臺(tái)重新開始執(zhí)行步驟S101~步驟S103。為了進(jìn)一步說明指令重組過程和重組指令片段的生成,請(qǐng)參考圖3;其中包括:待調(diào)度的機(jī)器指令集合401,其中的第一個(gè)跳轉(zhuǎn)指令為4012,也稱為第一跳轉(zhuǎn)指令4012;假設(shè)第一跳轉(zhuǎn)指令4012指向機(jī)器指令4013,在指令4012之前的指令運(yùn)行結(jié)束之前,如果指令4012的目標(biāo)地址為變量,則其指向地址是不可知的,所以這里假設(shè)第一跳轉(zhuǎn)指令4012指向機(jī)器指令4013;從第一跳轉(zhuǎn)指令4012以前的包括第一跳轉(zhuǎn)指令4012的所有機(jī)器指令構(gòu)成了機(jī)器指令片段4011。繼續(xù)參考圖3,當(dāng)指令重組平臺(tái)411運(yùn)行后,首先緩存指令運(yùn)行環(huán)境;然后獲取機(jī)器指令片段4011;指令重組平臺(tái)在第一跳轉(zhuǎn)指令4012前插入了第二跳轉(zhuǎn)指令4113,第二跳轉(zhuǎn)指令4113指向指令重組平臺(tái)411本身,從而生成了重組指令片段4111,重組指令片段的地址為A";將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";最后恢復(fù)所述指令運(yùn)行環(huán)境。指令重組平臺(tái)411結(jié)束運(yùn)行后,CPU繼續(xù)執(zhí)行上一個(gè)重組指令片段的最后一條跳轉(zhuǎn)指令,其中的地址寄存器的值已經(jīng)改為A"。以A"為地址的重組指令片段運(yùn)行后,當(dāng)執(zhí)行到第二跳轉(zhuǎn)指令4113時(shí),指令重組平臺(tái)411會(huì)重新獲得CPU控制權(quán),并繼續(xù)分析后續(xù)的待調(diào)度的機(jī)器指令,從而完成了運(yùn)行時(shí)指令重組的方法。進(jìn)一步的,由于程序運(yùn)行過程中所生成的機(jī)器指令具有很高的重復(fù)性,為了提高指令重組效率,節(jié)省計(jì)算設(shè)備的計(jì)算資源(CPU資源),如圖4所示,本發(fā)明第二實(shí)施例中提供了一種運(yùn)行時(shí)指令重組方法。具體過程包括:S201,緩存指令運(yùn)行環(huán)境;S202,利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對(duì)應(yīng)表;所述地址對(duì)應(yīng)表用于表示地址A對(duì)應(yīng)的待重組的機(jī)器指令片段是否具有已保存的重組過的指令片段,所述已保存的重組過的指令片段具有地址A’;S203,如果找到相應(yīng)的記錄,將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’,恢復(fù)所述指令運(yùn)行環(huán)境;S204,如果沒有找到相應(yīng)的記錄,獲取待調(diào)度的機(jī)器指令片段;在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組平臺(tái)的入口地址,生成具有地址A"的重組指令片段;將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";S205,恢復(fù)所述指令運(yùn)行環(huán)境。進(jìn)一步的,步驟S204還包括:所述利用地址A"與地址A在所述地址對(duì)應(yīng)表中建立一條記錄。具有地址A"重組指令片段被保存在重組指令平臺(tái)中,以供重用。本方法利用地址對(duì)應(yīng)表,極大的節(jié)省了計(jì)算資源,提高了運(yùn)行時(shí)指令重組的效率。上述實(shí)施例中直接操作機(jī)器指令,即二進(jìn)制機(jī)器碼,在本發(fā)明的其他實(shí)施例中,由于還有進(jìn)一步的指令處理、指令修改的操作,所述的待調(diào)度的機(jī)器指令片段可以經(jīng)過反匯編生成匯編代碼片段,以供后續(xù)操作使用,然后在恢復(fù)所述指令運(yùn)行環(huán)境之前匯編所述的匯編代碼片段,再得到二進(jìn)制機(jī)器碼。本發(fā)明第三實(shí)施例中提供了一種運(yùn)行時(shí)指令重組方法。具體過程包括:S301,緩存當(dāng)前指令運(yùn)行環(huán)境;S302,利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對(duì)應(yīng)表;S303,如果找到相應(yīng)的記錄,將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’,恢復(fù)所述指令運(yùn)行環(huán)境;S304,如果沒有找到相應(yīng)的記錄,如圖5所示,重組指令的生成方法包括:S3041,獲取待調(diào)度的機(jī)器指令片段;S3042,反匯編所述機(jī)器指令片段,得到匯編指令片段;S3043,解析所述匯編指令片段,利用指令集匹配所述匯編指令片段,得到待處理的目標(biāo)匯編指令;S3044,在所述匯編指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺(tái)的入口地址,生成具有地址A"的重組指令片段;S3045,匯編修改過的匯編指令片段,得到重組后的機(jī)器指令片段;S3046,利用地址A"與地址A在所述地址對(duì)應(yīng)表中建立一條記錄;S3047,將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";S305,恢復(fù)所述指令運(yùn)行環(huán)境。步驟S3042與S3045為相對(duì)應(yīng)的反匯編與匯編步驟。利用反匯編技術(shù)將機(jī)器指令片段轉(zhuǎn)換成為匯編指令片段之后,易于做其他匹配、分析及修改的后續(xù)步驟。其余步驟的具體內(nèi)容與上述實(shí)施例中的內(nèi)容相同或基本相同,這里不再贅述。上述的運(yùn)行時(shí)指令重組方法為進(jìn)一步的應(yīng)用提供了基礎(chǔ)。下面的實(shí)施例中提供了各種針對(duì)不同機(jī)器指令進(jìn)行處理的運(yùn)行時(shí)指令重組方法,其中包括存儲(chǔ)/讀取指令,I/O指令,以及網(wǎng)絡(luò)傳輸指令。針對(duì)存儲(chǔ)/讀取指令,本發(fā)明第四實(shí)施例中提供了一種運(yùn)行時(shí)指令重組方法。具體過程包括:S401,緩存當(dāng)前指令運(yùn)行環(huán)境;S402,利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對(duì)應(yīng)表;S403,如果找到相應(yīng)的記錄,將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’,恢復(fù)所述指令運(yùn)行環(huán)境;S404,如果沒有找到相應(yīng)的記錄,重組指令的生成方法包括:S4041,獲取待調(diào)度的機(jī)器指令片段;S4042,反匯編所述機(jī)器指令片段,得到匯編指令片段;S4043,解析所述匯編指令片段,利用指令集匹配所述匯編指令片段,得到待處理的目標(biāo)匯編指令;所述目標(biāo)指令為存儲(chǔ)/讀取指令;S4044,如果所述匯編指令包括存儲(chǔ)/讀取指令,修改其中的存儲(chǔ)和讀取地址為安全存儲(chǔ)設(shè)備上的地址;S4045,在所述匯編指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺(tái)的入口地址,生成具有地址A"的重組指令片段;S4046,匯編修改過的匯編指令片段,得到重組后的機(jī)器指令片段;S4047,利用地址A"與地址A在所述地址對(duì)應(yīng)表中建立一條記錄;S4048,將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";S405,恢復(fù)所述指令運(yùn)行環(huán)境。本實(shí)施例是在反匯編步驟之后進(jìn)行指令處理的;在其他實(shí)施例中,也可以省略反匯編和對(duì)應(yīng)的匯編步驟,直接處理機(jī)器指令。在步驟S4044中,針對(duì)存儲(chǔ)和讀取指令進(jìn)行操作,修改其中的目標(biāo)和源地址,以實(shí)現(xiàn)轉(zhuǎn)移存儲(chǔ);并且通過轉(zhuǎn)移存儲(chǔ)到安全存儲(chǔ)設(shè)備上,實(shí)現(xiàn)數(shù)據(jù)安全。更具體的安全存儲(chǔ)/讀取的方法將在本發(fā)明提供的下面的實(shí)施例中介紹。針對(duì)I/O指令,本發(fā)明第五實(shí)施例中提供了一種運(yùn)行時(shí)指令重組方法。具體過程包括:S501,緩存當(dāng)前指令運(yùn)行環(huán)境;S502,利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對(duì)應(yīng)表;S503,如果找到相應(yīng)的記錄,將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’,恢復(fù)所述指令運(yùn)行環(huán)境;S504,如果沒有找到相應(yīng)的記錄,重組指令的生成方法包括:S5041,獲取待調(diào)度的機(jī)器指令片段;S5042,反匯編所述機(jī)器指令片段,得到匯編指令片段;S5043,解析所述匯編指令片段,利用指令集匹配所述匯編指令片段,得到待處理的目標(biāo)匯編指令;目標(biāo)指令為I/O指令;S5044,如果所述匯編指令包括I/O指令,將所述I/O指令中的輸入指令全部阻止;S5045,在所述匯編指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺(tái)的入口地址,生成具有地址A"的重組指令片段;S5046,匯編修改過的匯編指令片段,得到重組后的機(jī)器指令片段;S5047,利用地址A"與地址A在所述地址對(duì)應(yīng)表中建立一條記錄;S5048,將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";S505,恢復(fù)所述指令運(yùn)行環(huán)境。本實(shí)施例是在反匯編步驟之后進(jìn)行指令處理的;在其他實(shí)施例中,也可以省略反匯編和對(duì)應(yīng)的匯編步驟,直接處理機(jī)器指令。在步驟S5044中,針對(duì)I/O指令進(jìn)行操作,將所述I/O指令中的輸入指令全部阻止,以實(shí)現(xiàn)徹底阻斷對(duì)本地硬件設(shè)備的寫操作;結(jié)合上一個(gè)實(shí)施例中的存儲(chǔ)指令處理過程,還可以實(shí)現(xiàn)對(duì)除存儲(chǔ)指令之外的輸入指令的阻止,可以提高計(jì)算設(shè)備中的數(shù)據(jù)安全性。針對(duì)網(wǎng)絡(luò)傳輸指令,本發(fā)明第六實(shí)施例中提供了一種運(yùn)行時(shí)指令重組方法。具體過程包括:S601,緩存當(dāng)前指令運(yùn)行環(huán)境;S602,利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對(duì)應(yīng)表;S603,如果找到相應(yīng)的記錄,將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’,恢復(fù)所述指令運(yùn)行環(huán)境;S604,如果沒有找到相應(yīng)的記錄,重組指令的生成方法包括:S6041,獲取待調(diào)度的機(jī)器指令片段;S6042,反匯編所述機(jī)器指令片段,得到匯編指令片段;S6043,解析所述匯編指令片段,利用指令集匹配所述匯編指令片段,得到待處理的目標(biāo)匯編指令;目標(biāo)指令為網(wǎng)絡(luò)傳輸指令;S6044,如果所述匯編指令包括網(wǎng)絡(luò)傳輸指令,檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對(duì)應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址;如果不是,阻止所述網(wǎng)絡(luò)傳輸指令;S6045,在所述匯編指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令JP2,所述JP2指向指令重組平臺(tái)的入口地址,生成具有地址A"的重組指令片段;S6046,匯編修改過的匯編指令片段,得到重組后的機(jī)器指令片段;S6047,利用地址A"與地址A在所述地址對(duì)應(yīng)表中建立一條記錄;S6048,將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";S605,恢復(fù)所述指令運(yùn)行環(huán)境。本實(shí)施例是在反匯編步驟之后進(jìn)行指令處理的;在其他實(shí)施例中,也可以省略反匯編和對(duì)應(yīng)的匯編步驟,直接處理機(jī)器指令。在步驟S6044中,針對(duì)網(wǎng)絡(luò)傳輸指令進(jìn)行操作,檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對(duì)應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址;如果不是,阻止所述網(wǎng)絡(luò)傳輸指令,以實(shí)現(xiàn)數(shù)據(jù)安全傳輸。上述多個(gè)實(shí)施例中的地址對(duì)應(yīng)表是由指令重組平臺(tái)建立并維護(hù)的,可以是固定長(zhǎng)度的數(shù)組結(jié)構(gòu),也可以是可變長(zhǎng)度的鏈表結(jié)構(gòu),還可以是其他存儲(chǔ)二位數(shù)據(jù)的適當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)。優(yōu)選的,其長(zhǎng)度可調(diào)節(jié),并且其占用空間可釋放。釋放地址對(duì)應(yīng)表的操作可以隨機(jī)進(jìn)行,也可以周期進(jìn)行。在一些實(shí)施例中,所述的地址對(duì)應(yīng)表還可以包括記錄建立時(shí)間字段,用于在釋放空間刪除記錄時(shí),按照建立時(shí)間的長(zhǎng)短刪除記錄。在一些實(shí)施例中,所述的地址對(duì)應(yīng)表還可以包括記錄使用次數(shù)字段,在查找地址對(duì)應(yīng)表步驟中,如果找到,將改變?cè)撟侄蔚闹?;所述記錄使用次?shù)字段也用于在釋放空間刪除記錄時(shí),按照使用次數(shù)的多少刪除記錄。進(jìn)一步的,為了從系統(tǒng)啟動(dòng)后即執(zhí)行運(yùn)行時(shí)的指令監(jiān)控,實(shí)現(xiàn)計(jì)算設(shè)備運(yùn)行階段的運(yùn)行時(shí)指令全監(jiān)控,本發(fā)明另一個(gè)實(shí)施例中,修改計(jì)算機(jī)啟動(dòng)時(shí)的load指令,在load指令執(zhí)行前調(diào)用本發(fā)明提供的指令重組平臺(tái),執(zhí)行上述運(yùn)行時(shí)指令重組方法,由于load指令跳轉(zhuǎn)地址為已知的固定地址,指令重組平臺(tái)可以事先建立好地址對(duì)應(yīng)表及該第一條記錄,并建立好第一個(gè)重組指令片段。進(jìn)一步的,本發(fā)明還提供一種計(jì)算機(jī)可讀介質(zhì),其中,所述可讀介質(zhì)中存儲(chǔ)有計(jì)算機(jī)可執(zhí)行的程序代碼,所述程序代碼用于執(zhí)行上述實(shí)施例中提供的運(yùn)行時(shí)指令重組方法的步驟。另一個(gè)方面,與上述運(yùn)行時(shí)指令重組方法相對(duì)應(yīng),本發(fā)明的第七個(gè)實(shí)施例中提供了一種運(yùn)行時(shí)指令重組裝置。如圖6所示,指令重組裝置500包括:指令運(yùn)行環(huán)境緩存/恢復(fù)單元501,適于緩存和恢復(fù)指令運(yùn)行環(huán)境;指令獲取單元502,適于在指令運(yùn)行環(huán)境緩存/釋放單元緩存指令運(yùn)行環(huán)境后,獲取待調(diào)度的機(jī)器指令片段;指令重組單元503,適于解析、修改所述待調(diào)度的機(jī)器指令片段,以生成具有地址A"的重組指令片段;和指令替換單元504,適于將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址。所述指令運(yùn)行環(huán)境緩存/恢復(fù)單元501分別與指令獲取單元502以及指令替換單元504耦接,所述指令獲取單元502,指令重組單元503和指令替換單元504依次耦接。指令重組裝置500的執(zhí)行運(yùn)行時(shí)指令重組時(shí):首先,指令運(yùn)行環(huán)境緩存/恢復(fù)單元501緩存指令運(yùn)行環(huán)境,即向緩存棧中壓入指令運(yùn)行相關(guān)的寄存器數(shù)據(jù);然后,所述指令獲取單元502從CPU地址寄存器讀取待調(diào)度的機(jī)器指令地址,并從所述機(jī)器指令地址讀取機(jī)器指令片段,所述機(jī)器指令片段最后一條指令為跳轉(zhuǎn)指令。具體的,指令獲取單元502從CPU地址寄存器511讀取待調(diào)度的機(jī)器指令地址;以跳轉(zhuǎn)指令為檢索目標(biāo),檢索所述機(jī)器指令地址對(duì)應(yīng)的機(jī)器指令,直到發(fā)現(xiàn)第一個(gè)跳轉(zhuǎn)指令;所述跳轉(zhuǎn)指令包括Jump指令和Call指令;將所述第一個(gè)跳轉(zhuǎn)指令及其之前的所有機(jī)器指令作為一個(gè)待調(diào)度的機(jī)器指令片段;將該機(jī)器指令片段保存在指令重組裝置500中,或其他指令重組裝置500能夠讀取的存儲(chǔ)位置;然后,指令重組單元503在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組裝置的入口地址,生成具有地址A"的重組指令片段;然后,指令替換單元504將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";最后,指令運(yùn)行環(huán)境緩存/恢復(fù)單元501恢復(fù)所述指令運(yùn)行環(huán)境,即從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù)。進(jìn)一步的,在本發(fā)明的第八個(gè)實(shí)施例中提供了一種運(yùn)行時(shí)指令重組裝置,充分利用運(yùn)行時(shí)指令重復(fù)性,提高重組效率,節(jié)省計(jì)算裝置的計(jì)算資源。如圖7所示,指令重組裝置600包括:指令運(yùn)行環(huán)境緩存/恢復(fù)單元601,適于緩存和恢復(fù)指令運(yùn)行環(huán)境;指令獲取單元602,適于在指令運(yùn)行環(huán)境緩存/釋放單元緩存指令運(yùn)行環(huán)境后,獲取待調(diào)度的機(jī)器指令片段;指令重組單元603,適于解析、修改所述待調(diào)度的機(jī)器指令片段,以生成具有地址A"的重組指令片段;指令替換單元604,適于將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值修改為重組指令片段的地址;和指令檢索單元605,適于利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對(duì)應(yīng)表;所述地址對(duì)應(yīng)表用于表示地址A對(duì)應(yīng)的待重組的機(jī)器指令片段是否具有已保存的重組過的指令片段,所述已保存的重組過的指令片段具有地址A’;如果找到相應(yīng)的記錄,指令檢索單元適于調(diào)用指令替換單元,將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’;如果沒有找到相應(yīng)的記錄,指令檢索單元適于利用地址A"與地址A在所述地址對(duì)應(yīng)表中建立一條記錄。所述指令運(yùn)行環(huán)境緩存/恢復(fù)單元601分別與指令檢索單元605以及指令替換單元604耦接,所述指令檢索單元605分別與指令獲取單元602,指令重組單元603和指令替換單元604耦接,所述指令獲取單元602,指令重組單元603和指令替換單元604依次耦接。指令重組裝置600的執(zhí)行運(yùn)行時(shí)指令重組時(shí):首先,指令運(yùn)行環(huán)境緩存/恢復(fù)單元601緩存指令運(yùn)行環(huán)境,即向緩存棧中壓入指令運(yùn)行相關(guān)的寄存器數(shù)據(jù);然后,指令檢索單元605利用所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)查找地址對(duì)應(yīng)表;如果找到相應(yīng)的記錄,指令檢索單元605調(diào)用指令替換單元604,指令替換單元604將所述地址寄存器的值A(chǔ)修改為記錄中的值A(chǔ)’;指令替換單元604調(diào)用指令運(yùn)行環(huán)境緩存/恢復(fù)單元602,以恢復(fù)所述指令運(yùn)行環(huán)境,即從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù),重組結(jié)束;如果沒有找到相應(yīng)的記錄,所述指令獲取單元602從CPU地址寄存器讀取待調(diào)度的機(jī)器指令地址,并從所述機(jī)器指令地址讀取機(jī)器指令片段,所述機(jī)器指令片段最后一條指令為跳轉(zhuǎn)指令。具體的,指令獲取單元602從CPU地址寄存器611讀取待調(diào)度的機(jī)器指令地址;以跳轉(zhuǎn)指令為檢索目標(biāo),檢索所述機(jī)器指令地址對(duì)應(yīng)的機(jī)器指令,直到發(fā)現(xiàn)第一個(gè)跳轉(zhuǎn)指令;所述跳轉(zhuǎn)指令包括Jump指令和Call指令;將所述第一個(gè)跳轉(zhuǎn)指令及其之前的所有機(jī)器指令作為一個(gè)待調(diào)度的機(jī)器指令片段;將該機(jī)器指令片段保存在指令重組裝置600中,或其他指令重組裝置600能夠讀取的存儲(chǔ)位置;然后,指令重組單元603在所述獲取的機(jī)器指令片段的最后一條指令前,插入第二跳轉(zhuǎn)指令,所述第二跳轉(zhuǎn)指令指向指令重組裝置的入口地址,生成具有地址A"的重組指令片段;然后,指令重組單元603將地址A"發(fā)送給指令檢索單元605,指令檢索單元605利用地址A"與地址A在其中的地址對(duì)應(yīng)表中建立一條記錄;以備后續(xù)指令重用;然后,指令替換單元604將所述緩存的指令運(yùn)行環(huán)境中的地址寄存器的值A(chǔ)修改為地址A";最后,指令運(yùn)行環(huán)境緩存/恢復(fù)單元501恢復(fù)所述指令運(yùn)行環(huán)境,即從緩存棧中彈出指令運(yùn)行相關(guān)的寄存器數(shù)據(jù)。本實(shí)施例中,指令重組單元603還包括:指令解析單元6031,適于利用指令集匹配所述機(jī)器指令片段,得到待處理的目標(biāo)機(jī)器指令;所述指令集包括X86,MIPS和ARM指令集;指令修改單元6032,適于按照預(yù)定的方式,修改所述目標(biāo)機(jī)器指令。如果所述目標(biāo)指令為存儲(chǔ)/讀取指令,所述指令解析單元6031將負(fù)責(zé)獲取待調(diào)度的機(jī)器指令片段中的存儲(chǔ)/讀取指令,所述指令修改單元6032修改其中的存儲(chǔ)和讀取地址為安全存儲(chǔ)設(shè)備上的地址。其作用和效果與上述對(duì)應(yīng)的方法實(shí)施例相同,這里不再贅述。如果所述目標(biāo)指令為I/O指令,所述指令解析單元6031將負(fù)責(zé)獲取待調(diào)度的機(jī)器指令片段中的I/O指令,所述指令修改單元6032將所述I/O指令中的輸入指令全部阻止。其作用和效果與上述對(duì)應(yīng)的方法實(shí)施例相同,這里不再贅述。如果所述目標(biāo)指令為網(wǎng)絡(luò)傳輸指令,所述指令解析單元6031將負(fù)責(zé)獲取待調(diào)度的機(jī)器指令片段中的網(wǎng)絡(luò)傳輸指令,所述指令修改單元6032檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對(duì)應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址;如果不是,所述指令修改單元適于阻止所述網(wǎng)絡(luò)傳輸指令。其作用和效果與上述對(duì)應(yīng)的方法實(shí)施例相同,這里不再贅述。在本發(fā)明的第九個(gè)實(shí)施例中,如圖8所示,指令重組單元703還可以包括反匯編單元7031和匯編單元7034。反匯編單元7031,指令解析單元7032,指令修改單元7033和匯編單元7034依次耦接。本實(shí)施的其他單元與上述的第八實(shí)施例相同,這里不再贅述。其中,反匯編單元7031適于在解析、修改所述待調(diào)度的機(jī)器指令片段之前,反匯編所述待調(diào)度的機(jī)器指令片段,生成待調(diào)度的匯編指令片段;發(fā)送給指令解析單元7032。匯編單元7034適于在解析、修改所述待調(diào)度的機(jī)器指令片段之后,匯編重組后的匯編指令片段,得到機(jī)器碼表示的重組指令片段;發(fā)送給指令替換單元。在該實(shí)施例中,所述指令解析單元7032和指令修改單元7033將操作待調(diào)度的匯編指令片段,其過程與上述對(duì)應(yīng)的方法實(shí)施例相同。上面詳細(xì)的介紹了本發(fā)明的實(shí)施例中提供的運(yùn)行時(shí)指令重組方法和裝置,與現(xiàn)有技術(shù)相比,具有以下優(yōu)點(diǎn):(1)通過指令重組方法,在指令運(yùn)行狀態(tài)下監(jiān)控計(jì)算設(shè)備的指令;(2)利用地址對(duì)應(yīng)表,提高了指令重組效率,節(jié)省了計(jì)算資源;(3)針對(duì)存儲(chǔ)和讀取指令進(jìn)行操作,修改其中的目標(biāo)和源地址,以實(shí)現(xiàn)轉(zhuǎn)移存儲(chǔ);并且通過轉(zhuǎn)移存儲(chǔ)到安全存儲(chǔ)設(shè)備上,實(shí)現(xiàn)數(shù)據(jù)安全;(4)針對(duì)I/O指令進(jìn)行操作,將所述I/O指令中的輸入指令全部阻止,以實(shí)現(xiàn)徹底阻斷對(duì)本地硬件設(shè)備的寫操作;還可以實(shí)現(xiàn)對(duì)除存儲(chǔ)指令之外的輸入指令的阻止,可以提高計(jì)算設(shè)備中的數(shù)據(jù)安全性;(5)針對(duì)網(wǎng)絡(luò)傳輸指令進(jìn)行操作,檢驗(yàn)所述網(wǎng)絡(luò)傳輸指令中的目標(biāo)地址對(duì)應(yīng)的遠(yuǎn)端計(jì)算設(shè)備是否為安全地址;如果不是,阻止所述網(wǎng)絡(luò)傳輸指令,以實(shí)現(xiàn)數(shù)據(jù)安全傳輸。針對(duì)目標(biāo)指令為存儲(chǔ)/讀取指令的情況,上面給出了一個(gè)對(duì)存儲(chǔ)和讀取機(jī)器指令的處理的實(shí)施例,下面將給出更多的實(shí)施例;并在這些實(shí)施例中,提供了數(shù)據(jù)安全存儲(chǔ)和讀取方法,以及數(shù)據(jù)安全存儲(chǔ)和讀取裝置。當(dāng)背景技術(shù)中的計(jì)算機(jī)終端系統(tǒng),被惡意代碼侵入后,惡意代碼可以從計(jì)算機(jī)系統(tǒng)中取得數(shù)據(jù),惡意代碼在竊取數(shù)據(jù)后。惡意代碼的行為模式為:(1)存儲(chǔ)行為:將目標(biāo)數(shù)據(jù)內(nèi)容保存到某個(gè)存儲(chǔ)位置;(2)傳輸行為:將竊取的數(shù)據(jù)直接通過網(wǎng)絡(luò)傳輸?shù)街付ǖ哪繕?biāo)地址。另外,使用上述計(jì)算設(shè)備或信息設(shè)備的人員進(jìn)行內(nèi)部泄密的行為模式包括:(1)主動(dòng)泄密:涉密人員通過主動(dòng)拷貝、通過惡意工具穿透安全系統(tǒng)、置入木馬等手段直接取得涉密數(shù)據(jù),并進(jìn)行泄密;(2)被動(dòng)泄密:涉密人員使用的電腦或存儲(chǔ)介質(zhì)因保管不善丟失或使用不當(dāng),例如將涉密裝備直接接入Internet造成的泄密。為了解決上述問題,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式做詳細(xì)的說明。圖9是本發(fā)明第十個(gè)實(shí)施例中計(jì)算機(jī)終端系統(tǒng)層次結(jié)構(gòu)示意圖。其中,計(jì)算機(jī)終端系統(tǒng)200包括用戶界面層201,應(yīng)用層202,操作系統(tǒng)內(nèi)核層203,硬件映射層204,安全層205,硬件層206;計(jì)算機(jī)終端系統(tǒng)200與存儲(chǔ)設(shè)備100(安全存儲(chǔ)設(shè)備)耦接。硬件層206包括CPU2061,硬盤2062(即本地存儲(chǔ)設(shè)備)以及網(wǎng)卡2063。本實(shí)施例中,存儲(chǔ)設(shè)備100為遠(yuǎn)程磁盤陣列,通過網(wǎng)絡(luò)連接硬件層206的網(wǎng)卡2063,與計(jì)算機(jī)終端系統(tǒng)200交換數(shù)據(jù);在本發(fā)明的其他實(shí)施例中,存儲(chǔ)設(shè)備100也可以是其他已知或未知類型的存儲(chǔ)設(shè)備。結(jié)合上述層次結(jié)構(gòu),參考圖10,本實(shí)施例提供的數(shù)據(jù)轉(zhuǎn)儲(chǔ)過程為:S1000,初始化;S2000,數(shù)據(jù)寫入;S3000,數(shù)據(jù)讀取。在其他實(shí)施例中,上述的數(shù)據(jù)寫入、讀取過程以及初始化過程不需全部執(zhí)行,執(zhí)行所需的過程或步驟即可。進(jìn)一步的,參考圖11,上述的初始化過程S1000包括:S1010,建立計(jì)算機(jī)終端系統(tǒng)200與存儲(chǔ)設(shè)備100的通訊;S1020,從存儲(chǔ)設(shè)備100上同步映射位圖(Bitmap)至當(dāng)前計(jì)算機(jī)終端系統(tǒng)200,保存在計(jì)算機(jī)終端系統(tǒng)200的內(nèi)存中;所述映射位圖用于表示本地存儲(chǔ)地址的數(shù)據(jù)是否轉(zhuǎn)儲(chǔ)到所述安全存儲(chǔ)設(shè)備。為了區(qū)分計(jì)算機(jī)終端200上的Bitmap與存儲(chǔ)設(shè)備100上的兩份轉(zhuǎn)儲(chǔ)表,下文中,除非另有說明,將計(jì)算機(jī)終端系統(tǒng)200上的Bitmap稱為映射位圖或第一映射位圖,將存儲(chǔ)設(shè)備100上的Bitmap稱為第二映射位圖。如果從存儲(chǔ)設(shè)備100上同步第二映射位圖至當(dāng)前計(jì)算機(jī)終端系統(tǒng)200的操作失敗,說明存儲(chǔ)設(shè)備100與計(jì)算機(jī)終端系統(tǒng)200之間是第一次連接,或者上次連接時(shí)計(jì)算機(jī)終端系統(tǒng)200沒有進(jìn)行存儲(chǔ)操作。初始化過程S1000還包括:S1030,在存儲(chǔ)設(shè)備100與計(jì)算機(jī)終端系統(tǒng)200上建立Bitmap。具體的,首先將計(jì)算機(jī)終端系統(tǒng)中的本地存儲(chǔ)空間映射到存儲(chǔ)設(shè)備100上,具體的映射關(guān)系為:以1扇區(qū)(或其他存儲(chǔ)的基本單位)為單位的一一映射,同時(shí)建立映射位圖(Bitmap)。在本發(fā)明的其他實(shí)施例中,也可以使用其他基本容量為單位建立本地存儲(chǔ)空間到存儲(chǔ)設(shè)備100上的Bitmap。圖12為本實(shí)施例中Bitmap示意圖;圖中包括本地存儲(chǔ)設(shè)備(即硬盤2062)上的存儲(chǔ)介質(zhì)3000,與本地存儲(chǔ)設(shè)備網(wǎng)絡(luò)連接的存儲(chǔ)設(shè)備100上的存儲(chǔ)介質(zhì)4000。對(duì)存儲(chǔ)介質(zhì)3000,在存儲(chǔ)介質(zhì)4000上建立與其大小相同的存儲(chǔ)空間4010,作為一一映射空間。這時(shí)存儲(chǔ)空間4010中只保存一張Bitmap4020。Bitmap4020為一張位圖,其中1位代表1扇區(qū),每一位的數(shù)據(jù)(0或1)標(biāo)識(shí)存儲(chǔ)介質(zhì)3000上對(duì)應(yīng)的扇區(qū)是否轉(zhuǎn)儲(chǔ)在存儲(chǔ)介質(zhì)4000上的存儲(chǔ)空間4010中。本實(shí)施例Bitmap4020中,轉(zhuǎn)儲(chǔ)的扇區(qū)標(biāo)記為1,非轉(zhuǎn)儲(chǔ)的扇區(qū)標(biāo)記為0。Bitmap4020建立完成之后同步到計(jì)算機(jī)終端系統(tǒng)200中。當(dāng)應(yīng)用程序或操作系統(tǒng)保存一個(gè)數(shù)據(jù),例如文件時(shí),操作系統(tǒng)內(nèi)部的文件系統(tǒng)將在本地存儲(chǔ)設(shè)備的存儲(chǔ)介質(zhì)3000上開辟一定量的存儲(chǔ)空間,例如扇區(qū)3040和扇區(qū)3050,并分配給該文件使用,并改寫本地的文件分配表。該文件轉(zhuǎn)儲(chǔ)時(shí),Bitmap4020中記載相應(yīng)的扇區(qū)3040和扇區(qū)3050對(duì)應(yīng)的位數(shù)據(jù)將改寫為1。在存儲(chǔ)介質(zhì)4000上相同的位置,分配扇區(qū)4040和4050用于保存轉(zhuǎn)儲(chǔ)數(shù)據(jù)。本實(shí)施例的初始化過程結(jié)束之后,所述計(jì)算機(jī)終端系統(tǒng)200和存儲(chǔ)設(shè)備100上將分別保存內(nèi)容一致的Bitmap數(shù)據(jù)。進(jìn)一步的,上述的數(shù)據(jù)寫入過程S2000包括:S2010,應(yīng)用層202通過操作系統(tǒng)內(nèi)核層203的文件系統(tǒng)發(fā)出寫文件操作請(qǐng)求或操作系統(tǒng)內(nèi)核層203直接發(fā)出寫文件操作請(qǐng)求;或應(yīng)用層202直接向硬件映射層204發(fā)出寫數(shù)據(jù)操作請(qǐng)求;或操作系統(tǒng)內(nèi)核層203直接向硬件映射層204發(fā)出寫數(shù)據(jù)操作請(qǐng)求;S2020,操作系統(tǒng)內(nèi)核層203將寫文件請(qǐng)求解析成硬件端口指令(即硬件指令),下發(fā)至硬件映射層204,其中端口指令包含需要寫存儲(chǔ)設(shè)備的位置(即扇區(qū));如果是直接向硬件映射層204發(fā)出寫數(shù)據(jù)操作請(qǐng)求,則該請(qǐng)求已經(jīng)為硬件端口指令;S2030,安全層205將端口指令中的寫入位置(即扇區(qū))改寫為在存儲(chǔ)設(shè)備100上的存儲(chǔ)地址,更新第一映射位圖,將所述扇區(qū)對(duì)應(yīng)的位數(shù)據(jù)修改為1,表示該扇區(qū)已經(jīng)轉(zhuǎn)儲(chǔ);安全層205將修改后的端口指令發(fā)送給硬件層206。完成上述操作后,寫入過程S2000還可以包括:S2040,將第一映射位圖同步到存儲(chǔ)設(shè)備100上,保存為第二映射位圖,以確保計(jì)算機(jī)終端系統(tǒng)200上的第一映射位圖與存儲(chǔ)設(shè)備上的第二映射位圖一致。在本發(fā)明的其他實(shí)施例中,該同步操作也可以在最后進(jìn)行,即本地的計(jì)算機(jī)終端系統(tǒng)200關(guān)機(jī)前進(jìn)行。寫入過程執(zhí)行完成之后,計(jì)算機(jī)終端系統(tǒng)200并沒有存儲(chǔ)寫入的數(shù)據(jù),相應(yīng)的數(shù)據(jù)已經(jīng)轉(zhuǎn)存在存儲(chǔ)設(shè)備100上。進(jìn)一步的,上述的數(shù)據(jù)讀取過程S3000包括:S3010,將存儲(chǔ)設(shè)備100上的第二映射位圖同步到計(jì)算機(jī)終端系統(tǒng)200上,保存為第一映射位圖;S3020,應(yīng)用層202通過操作系統(tǒng)內(nèi)核層203的文件系統(tǒng)發(fā)出讀文件操作請(qǐng)求,或操作系統(tǒng)內(nèi)核層203直接發(fā)出讀文件操作請(qǐng)求;或應(yīng)用層202直接向硬件映射層204發(fā)出讀數(shù)據(jù)操作請(qǐng)求;或操作系統(tǒng)內(nèi)核層203直接向硬件映射層204發(fā)出讀數(shù)據(jù)操作請(qǐng)求;S3030,安全層205接收來自硬件映射層204的數(shù)據(jù)讀取指令,獲取其中的讀取地址(源地址),如果該地址不是存儲(chǔ)設(shè)備100上的地址,查找第一映射位圖,如果第一映射位圖中的位數(shù)據(jù)表示所述讀取地址為轉(zhuǎn)儲(chǔ)地址,安全層205修改端口指令的讀取地址為存儲(chǔ)設(shè)備100上的讀取地址;安全層205將修改后的端口指令發(fā)送給硬件層206。在步驟S3010中,從存儲(chǔ)設(shè)備100同步第二映射位圖到本地的過程是為了在計(jì)算機(jī)終端系統(tǒng)200重新啟動(dòng)了以后,保持本地?cái)?shù)據(jù)與安全存儲(chǔ)設(shè)備上的數(shù)據(jù)的一致性。上述讀取過程沒有影響用戶既有的操作模式,并且實(shí)現(xiàn)了對(duì)于安全存儲(chǔ)設(shè)備,即存儲(chǔ)設(shè)備100上已經(jīng)轉(zhuǎn)儲(chǔ)的數(shù)據(jù)的讀取。進(jìn)一步的,基于上述數(shù)據(jù)寫入過程,參考圖13,本實(shí)施例提供的數(shù)據(jù)安全存儲(chǔ)方法包括如下步驟:S4010,接收硬件指令;S4020,分析所述硬件指令;S4030,判斷該硬件指令是否為存儲(chǔ)指令;S4040,如果該硬件指令是存儲(chǔ)指令,修改存儲(chǔ)指令中的目標(biāo)地址為對(duì)應(yīng)的存儲(chǔ)設(shè)備100(即安全存儲(chǔ)設(shè)備)上的存儲(chǔ)地址;S4050,將修改后的存儲(chǔ)指令發(fā)送到硬件層。具體的,本實(shí)施例中,計(jì)算機(jī)終端系統(tǒng)運(yùn)行的是Windows操作系統(tǒng),Windows系統(tǒng)中的硬件抽象層HAL為硬件映射層。在其他實(shí)施例中,計(jì)算機(jī)終端也可以運(yùn)行其他操作系統(tǒng),例如Linux,Unix或嵌入式操作系統(tǒng)等,硬件映射層為L(zhǎng)inux或Unix或嵌入式操作系統(tǒng)對(duì)應(yīng)的硬件映射層。在步驟S4010中,所述硬件指令是來自硬件映射層的硬件指令。接收來自硬件映射層的硬件指令可以100%的篩查所有發(fā)送到CPU等處理器的硬件指令(接口指令),進(jìn)一步提高數(shù)據(jù)安全性。在本發(fā)明的其他實(shí)施中,所述硬件指令也可以來自操作系統(tǒng)內(nèi)核層或其他計(jì)算機(jī)層次對(duì)應(yīng)的單元。另外,結(jié)合上述運(yùn)行時(shí)指令重組的方法,接收硬件指令的過程可以包括:采用運(yùn)行時(shí)指令重組的方法獲取硬件指令。這步驟S4020中,安全層205中內(nèi)置了多種指令分析機(jī)制,包括對(duì)X86指令、ARM指令、MIPS指令等指令集的分析機(jī)制,以處理不同類型的CPU指令。在步驟S4040中,修改存儲(chǔ)指令中的目標(biāo)地址為對(duì)應(yīng)的存儲(chǔ)設(shè)備100中的存儲(chǔ)地址之后,還包括:更新第一映射位圖,將目標(biāo)地址(扇區(qū))在第一映射位圖中對(duì)應(yīng)的“位”設(shè)置為1。進(jìn)一步的,步驟S4040中,還可以包括將已經(jīng)更新的映射位圖同步到所述安全存儲(chǔ)設(shè)備,保存為第二映射位圖。在步驟S4050中,安全層205轉(zhuǎn)發(fā)已經(jīng)修改過的,或者沒有修改過的硬件指令到硬件層206。本實(shí)施例中,安全層205的轉(zhuǎn)儲(chǔ)工作對(duì)于上層應(yīng)用以及用戶完全透明,不影響現(xiàn)有計(jì)算機(jī)操作、應(yīng)用系統(tǒng)的工作流程。本實(shí)施例提供的上述方法不僅可以在計(jì)算機(jī)終端系統(tǒng)中使用,還可以應(yīng)用在任何包含應(yīng)用層、操作系統(tǒng)內(nèi)核層、硬件層的計(jì)算設(shè)備和智能終端上,在硬件層執(zhí)行指令前,實(shí)現(xiàn)指令級(jí)轉(zhuǎn)移存儲(chǔ)(即基于硬件存儲(chǔ)指令的轉(zhuǎn)移存儲(chǔ))。根據(jù)上述數(shù)據(jù)讀取過程,參考圖14,本實(shí)施例中提供了一種數(shù)據(jù)安全讀取方法。該方法包括:S5010,接收硬件指令;S5020,分析所述硬件指令;S5030,判斷該硬件指令是否為讀取指令;S5040,如果是讀取指令,獲取讀取指令中的源地址,判斷所述源地址是否為存儲(chǔ)設(shè)備100上的地址;S5050,如果所述源地址不是存儲(chǔ)設(shè)備100上的地址,查找第一映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改讀取指令中的讀取地址;S5060,將修改后的硬件指令發(fā)送到硬件層。步驟S5010之前,該方法還可以包括S5000:將存儲(chǔ)設(shè)備100上的第二映射位圖同步到計(jì)算機(jī)終端系統(tǒng)200上,保存為第一映射位圖。步驟S5010中,本實(shí)施例中,所述的硬件指令來自硬件映射層。另外,結(jié)合上述運(yùn)行時(shí)指令重組的方法,接收硬件指令的過程可以包括:采用運(yùn)行時(shí)指令重組的方法獲取硬件指令。步驟S5030中,如果該硬件指令不是讀取指令,則安全層205直接將硬件指令發(fā)送給硬件層去執(zhí)行。步驟S5040中,如果該讀取指令的源地址已經(jīng)為存儲(chǔ)設(shè)備100上的地址,則安全層205不用再次查找第一映射位圖中的數(shù)據(jù),直接將硬件指令發(fā)送給硬件層去執(zhí)行。進(jìn)一步的,為了節(jié)約網(wǎng)絡(luò)資源,在本發(fā)明的一些實(shí)施例中,存儲(chǔ)設(shè)備100可以作為多個(gè)終端系統(tǒng)的共享資源。進(jìn)一步的,基于上述的數(shù)據(jù)安全存儲(chǔ)和數(shù)據(jù)安全讀取方法,本發(fā)明第十一個(gè)實(shí)施例中提供了一種數(shù)據(jù)安全傳輸方法,如圖15所示,包括如下步驟:S7010,接收來自硬件映射層的硬件指令;S7020,分析所述硬件指令;S7030,判斷該硬件指令是否為網(wǎng)絡(luò)傳輸指令;S7040,如果該硬件指令是傳輸指令,讀取目標(biāo)地址;S7050,判斷目標(biāo)地址是否為安全地址;S7060,如果是安全地址,將硬件指令發(fā)送到硬件層;如果不是安全地址,結(jié)束;S7070,硬件層發(fā)送傳輸指令和數(shù)據(jù)到目標(biāo)地址的終端系統(tǒng);S7080,目標(biāo)地址的終端系統(tǒng)接收并利用數(shù)據(jù)安全存儲(chǔ)方法保存數(shù)據(jù)。步驟S7060中,如果判斷目標(biāo)地址不是安全地址,即目標(biāo)地址的計(jì)算終端沒有應(yīng)用本發(fā)明中提供的數(shù)據(jù)安全存儲(chǔ)和數(shù)據(jù)安全讀取方法,那么不允許其作為目標(biāo)地址進(jìn)行網(wǎng)絡(luò)傳輸操作。步驟S7050中,判斷目標(biāo)地址是否為安全地址,本實(shí)施例中采用如下方法。如圖16所示,安全服務(wù)器820通過網(wǎng)絡(luò)與終端系統(tǒng)800、810連接,終端系統(tǒng)800、810在部署本發(fā)明上述實(shí)施例中提供的數(shù)據(jù)安全傳輸方法時(shí),都自動(dòng)向安全服務(wù)器820進(jìn)行了注冊(cè)操作,安全服務(wù)器820內(nèi)部維護(hù)一個(gè)安全地址表,記錄了已經(jīng)注冊(cè)的所有終端系統(tǒng)。當(dāng)安全地址表有更改的時(shí)候,安全服務(wù)器820自動(dòng)將更新的安全地址表發(fā)送給各個(gè)終端,終端系統(tǒng)800的架構(gòu)包括應(yīng)用層801,操作系統(tǒng)內(nèi)核層802,安全層803以及硬件層804,安全層803負(fù)責(zé)維護(hù)該安全地址表。安全層803將根據(jù)目標(biāo)地址是否在安全地址表中,判斷目標(biāo)地址是否為安全地址。即在步驟S7050中,如果目標(biāo)地址列入了安全地址表,則目標(biāo)地址為安全地址。上述安全傳輸方法的實(shí)施,使木馬或惡意工具即使取得了涉密信息也無法傳輸所取得的信息。雖然本發(fā)明上述實(shí)施例中以計(jì)算機(jī)終端系統(tǒng)作為應(yīng)用本發(fā)明提供的方法的主體,但是,任何手持設(shè)備、智能終端等能夠提供文件或數(shù)據(jù)編輯、保存或傳輸?shù)碾娮釉O(shè)備,統(tǒng)稱為計(jì)算終端系統(tǒng),都可以成為應(yīng)用本發(fā)明提供的數(shù)據(jù)安全保存及傳輸方法的終端系統(tǒng)。另外,本領(lǐng)域的技術(shù)人員可以知道上述的數(shù)據(jù)安全存儲(chǔ)方法、讀取方法及傳輸方法也可使用軟件或硬件的方法實(shí)現(xiàn),如果以軟件實(shí)現(xiàn),則上述方法對(duì)應(yīng)的步驟以計(jì)算機(jī)代碼的形式存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,成為軟件產(chǎn)品。與上述的數(shù)據(jù)安全存儲(chǔ)方法相對(duì)應(yīng),本發(fā)明第十二個(gè)實(shí)施例中,提供一種數(shù)據(jù)安全存儲(chǔ)裝置。參考圖17,數(shù)據(jù)安全存儲(chǔ)裝置7100包括接收單元7110,指令分析單元7120,指令修改單元7130和發(fā)送單元7140。其中,接收單元7110與指令分析單元7120耦接,指令分析單元7120分別與指令修改單元7130以及發(fā)送單元7140耦接,發(fā)送單元7140分別與指令修改單元7130以及硬件層7200耦接。接收單元7110適于接收硬件指令,本實(shí)施例中,所述硬件指令來自硬件映射層;指令分析單元7120適于分析所述硬件指令并判斷所述硬件指令是否為存儲(chǔ)指令;如果是存儲(chǔ)指令,指令修改單元7130修改所述存儲(chǔ)指令中的目標(biāo)地址為對(duì)應(yīng)的在安全存儲(chǔ)設(shè)備上的存儲(chǔ)地址,然后將修改后的存儲(chǔ)指令發(fā)送給發(fā)送單元7140;如果不是存儲(chǔ)指令,指令分析單元7120直接將硬件指令發(fā)送給發(fā)送單元7140;發(fā)送單元7150適于將接收到的指令發(fā)送給硬件層7200。進(jìn)一步的,該數(shù)據(jù)安全存儲(chǔ)裝置還可以包括更新單元7150和同步單元7160。其中,更新單元7150與指令修改單元7130耦接;同步單元7160與更新單元7150耦接。所述更新單元7150適于在指令修改單元7130修改所述存儲(chǔ)指令之后,更新映射位圖中所述目標(biāo)地址對(duì)應(yīng)的位。本實(shí)施例中,將存儲(chǔ)指令目標(biāo)地址包含的扇區(qū),在第一映射位圖中對(duì)應(yīng)的“位”數(shù)據(jù)置“1”,表示已經(jīng)轉(zhuǎn)儲(chǔ)。所述同步單元7160適于建立計(jì)算終端系統(tǒng)與所述安全存儲(chǔ)設(shè)備的通訊,并將映射位圖在所述計(jì)算終端系統(tǒng)和所述安全存儲(chǔ)設(shè)備之間進(jìn)行同步。具體的,在計(jì)算終端系統(tǒng)啟動(dòng)時(shí),同步單元7160建立計(jì)算終端系統(tǒng)與所述安全存儲(chǔ)設(shè)備的通訊,并將所述安全存儲(chǔ)設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng),保存為第一映射位圖。如果將所述安全存儲(chǔ)設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng)失敗,表示計(jì)算終端系統(tǒng)與安全存儲(chǔ)設(shè)備是第一次通訊,同步單元7160將計(jì)算機(jī)終端系統(tǒng)中的本地存儲(chǔ)空間映射到所述安全存儲(chǔ)設(shè)備上,并建立映射位圖和第二映射位圖。本實(shí)施例中,先在安全存儲(chǔ)裝置上建立第二映射位圖,然后同步到本地,成為第一映射位圖。當(dāng)更新單元7150更新了第一映射位圖(即映射位圖)中所述目標(biāo)地址對(duì)應(yīng)的位,同步單元7160將把更新后的第一映射位圖發(fā)送給安全存儲(chǔ)設(shè)備,并在安全存儲(chǔ)設(shè)備上保存為第二映射位圖。本實(shí)施例中,所述安全存儲(chǔ)設(shè)備為遠(yuǎn)程存儲(chǔ)設(shè)備,所述遠(yuǎn)程存儲(chǔ)設(shè)備被多個(gè)計(jì)算終端系統(tǒng)共享。所述硬件指令為硬件端口I/O指令。進(jìn)一步的,與上述的數(shù)據(jù)安全讀取方法相對(duì)應(yīng),本發(fā)明的第十三個(gè)實(shí)施例中提供了一種數(shù)據(jù)安全讀取裝置。參考圖18,數(shù)據(jù)安全讀取裝置8100包括:接收單元8110,指令分析單元8120,指令修改單元8130以及發(fā)送單元8140。其中,接收單元8110與指令分析單元8120耦接,指令分析單元8120分別與指令修改單元8130以及發(fā)送單元8140耦接,指令修改單元8130還與發(fā)送單元8140耦接。發(fā)送單元8140與硬件層8200耦接。所述接收單元8110適于接收硬件指令,本實(shí)施例中,所述硬件指令來自硬件映射層。所述指令分析單元8120適于分析所述硬件指令并判斷所述硬件指令是否為讀取指令,如果所述硬件指令是讀取指令,獲取讀取指令的源地址并判斷所述源地址是否為安全存儲(chǔ)設(shè)備上的地址。如果所述硬件指令不是讀取指令,或者所述源地址是安全存儲(chǔ)設(shè)備上的地址,指令分析單元8120將所述硬件指令發(fā)送到發(fā)送單元8140。如果所述源地址不是安全存儲(chǔ)設(shè)備上的地址,指令修改單元8130查找映射位圖,并根據(jù)映射位圖的數(shù)據(jù)修改所述讀取指令中的讀取地址。與上述映射位圖相同,本實(shí)施例中所述映射位圖用于表示本地存儲(chǔ)地址的數(shù)據(jù)是否轉(zhuǎn)儲(chǔ)到所述安全存儲(chǔ)設(shè)備。具體的,指令修改單元8130查找源地址包含的扇區(qū)在第一映射位圖中對(duì)應(yīng)的位。如果“位”數(shù)據(jù)顯示為1,表示已經(jīng)發(fā)生轉(zhuǎn)儲(chǔ),如果“位”數(shù)據(jù)顯示為0,表示沒有發(fā)生轉(zhuǎn)儲(chǔ)。如果已經(jīng)發(fā)生轉(zhuǎn)儲(chǔ),指令修改單元8130將所述源地址(讀取地址)改為對(duì)應(yīng)的轉(zhuǎn)儲(chǔ)地址,并將修改后的硬件指令發(fā)送給發(fā)送單元8140。進(jìn)一步的,所述數(shù)據(jù)安全讀取裝置還可以包括同步單元8150。所述同步單元8150與指令修改單元8130耦接。所述同步單元8150適于建立計(jì)算終端系統(tǒng)與所述安全存儲(chǔ)設(shè)備的通訊,并將映射位圖在所述計(jì)算終端系統(tǒng)和所述安全存儲(chǔ)設(shè)備之間進(jìn)行同步。具體的,同步單元8150在計(jì)算終端系統(tǒng)啟動(dòng)時(shí),建立計(jì)算終端系統(tǒng)與所述安全存儲(chǔ)設(shè)備的通訊,并將所述安全存儲(chǔ)設(shè)備上的第二映射位圖同步到所述計(jì)算終端系統(tǒng),保存為第一映射位圖,提供指令修改單元8130使用。本實(shí)施例中,所述安全存儲(chǔ)設(shè)備為遠(yuǎn)程存儲(chǔ)設(shè)備,所述遠(yuǎn)程存儲(chǔ)設(shè)備被多個(gè)計(jì)算終端系統(tǒng)共享。在本發(fā)明的其他實(shí)施例中,所述的安全存儲(chǔ)設(shè)備也可以為本地存儲(chǔ)設(shè)備。本領(lǐng)域技術(shù)人員可以知道,安全層的實(shí)現(xiàn)方法也可以在操作系統(tǒng)內(nèi)核層至硬件層中的各個(gè)層內(nèi)完成。具體功能的實(shí)現(xiàn)位置并不脫離本發(fā)明的精神和范圍。上述實(shí)施例中詳細(xì)的介紹了本發(fā)明提供的安全存儲(chǔ)方法和裝置,與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):1、數(shù)據(jù)安全存儲(chǔ)方法實(shí)現(xiàn)了指令級(jí)數(shù)據(jù)轉(zhuǎn)儲(chǔ)即數(shù)據(jù)全轉(zhuǎn)儲(chǔ),以此為基礎(chǔ),實(shí)現(xiàn)了計(jì)算終端系統(tǒng)全運(yùn)行周期的數(shù)據(jù)安全存儲(chǔ)方法,一方面,使木馬或惡意工具即使取得了涉密信息也無法保存所取得的信息,使數(shù)據(jù)始終存在于可控的安全范圍內(nèi);另一方面,本地將不再保存在涉密狀態(tài)下的任何數(shù)據(jù),因此防止了涉密人員的主動(dòng)泄密和被動(dòng)泄密;2、接收來自硬件映射層的硬件指令可以100%的篩查所有指令,進(jìn)一步提高數(shù)據(jù)安全性。上述實(shí)施例中還詳細(xì)的介紹了本發(fā)明提供的安全讀取方法和裝置,,與現(xiàn)有技術(shù)相比,具有如下優(yōu)點(diǎn):1、數(shù)據(jù)安全讀取方法配合數(shù)據(jù)安全存儲(chǔ)方法使數(shù)據(jù)始終存在于可控的安全范圍內(nèi),并且保證在安全存儲(chǔ)數(shù)據(jù)(轉(zhuǎn)儲(chǔ))之后,可以將轉(zhuǎn)儲(chǔ)數(shù)據(jù)讀出;由于本地將不再保存在涉密狀態(tài)下的任何數(shù)據(jù),因此防止了涉密人員的主動(dòng)泄密和被動(dòng)泄密;2、安全存儲(chǔ)設(shè)備為遠(yuǎn)程存儲(chǔ)設(shè)備時(shí),可以為多個(gè)終端共享,提高安全存儲(chǔ)設(shè)備的空間使用效率。在本發(fā)明的其他實(shí)施例中,安全層的實(shí)現(xiàn)方法也可以在操作系統(tǒng)內(nèi)部的最底層至硬件層的最上層中的各個(gè)層內(nèi)完成。本領(lǐng)域技術(shù)人員可以知道,具體功能的實(shí)現(xiàn)位置并不脫離本發(fā)明的精神和范圍。本發(fā)明雖然已以較佳實(shí)施例公開如上,但其并不是用來限定本發(fā)明,任何本領(lǐng)域技術(shù)人員在不脫離本發(fā)明的精神和范圍內(nèi),都可以利用上述揭示的方法和技術(shù)內(nèi)容對(duì)本發(fā)明技術(shù)方案做出可能的變動(dòng)和修改,因此,凡是未脫離本發(fā)明技術(shù)方案的內(nèi)容,依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化及修飾,均屬于本發(fā)明技術(shù)方案的保護(hù)范圍。