專利名稱:磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法
磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法
技術(shù)領(lǐng)域:
本發(fā)明涉及磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法。
背景技術(shù):
在當(dāng)前復(fù)雜的網(wǎng)絡(luò)環(huán)境中,各種病毒和木馬無處不在,人們對(duì)系統(tǒng)和其中的重要數(shù)據(jù)的保護(hù)越來越重視,保護(hù)系統(tǒng)的軟件也越來越多。不過隨著客戶的應(yīng)用環(huán)境越來越復(fù)雜,數(shù)據(jù)量越來越大,普通的保護(hù)軟件根本無法滿足需求。為了保證Windows系統(tǒng)引導(dǎo)分區(qū)的健壯性、避免不必要的數(shù)據(jù)寫入、延長(zhǎng)存儲(chǔ)介質(zhì)的壽命,需要對(duì)引導(dǎo)分區(qū)開啟磁盤保護(hù)模式,該機(jī)制可有效控制對(duì)引導(dǎo)分區(qū)的寫操作,保證磁盤系統(tǒng)不會(huì)被病毒木馬等破壞,但同時(shí)帶來了另一個(gè)問題Windows操作系統(tǒng)的核心機(jī)制之一注冊(cè)表是以Hive文件的形式存在于系統(tǒng)分區(qū),若要安裝應(yīng)用軟件,即使選擇安裝在非系統(tǒng)分區(qū)也不可避免地要往注冊(cè)表中寫數(shù)據(jù),但磁盤保護(hù)機(jī)制對(duì)寫操作進(jìn)行了重定向,導(dǎo)致相關(guān)數(shù)據(jù)無法寫入注冊(cè)表,這樣就無法保存用戶對(duì)注冊(cè)表鍵值的修改,從而導(dǎo)致在操作系統(tǒng)重啟后,所有對(duì)系統(tǒng)分區(qū)的修改都會(huì)恢復(fù)到初始狀態(tài),這些軟件將無法正常使用,對(duì)系統(tǒng)某些設(shè)置的修改也無法保存。微軟的EWF保護(hù)模式是微軟為其嵌入式操作系統(tǒng)提供的一套磁盤保護(hù)系統(tǒng),可以保護(hù)磁盤分區(qū)數(shù)據(jù)不被修改,微軟針對(duì)EWF保護(hù)模式,提供了一種注冊(cè)表穿透方案regflt,該方案可以在EWF保護(hù)模式開啟的情況下允許用戶將部分注冊(cè)表數(shù)據(jù)保存到系統(tǒng)中。但該方案主要存在以下不足I、對(duì)部分注冊(cè)表鍵的穿透不穩(wěn)定,容易出現(xiàn)穿透出錯(cuò)或無法穿透的情況;2、不能穿透用戶注冊(cè)表HK⑶下的注冊(cè)表鍵,并且不能進(jìn)行多用戶注冊(cè)表穿透;3、不支持多還原層磁盤保護(hù)下的注冊(cè)表穿透;4、沒有人機(jī)交互界面,配置需要穿透的注冊(cè)表鍵比較麻煩;5、只有 Windows XP Embedded^ Windows Embedded Standard 7 操作系統(tǒng)上的版 本,沒有提供在Windows XP和Windows 7操作系統(tǒng)上運(yùn)行的版本。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題,在于提供一種磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,其不僅可以實(shí)現(xiàn)對(duì)用戶下和多還原層磁盤保護(hù)系統(tǒng)下注冊(cè)表的透明穿透,而且具有友好的交互界面,使配置方便快捷。本發(fā)明是這樣實(shí)現(xiàn)的磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,包括備份步驟和還原步驟,所述備份步驟是系統(tǒng)關(guān)機(jī),在捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包時(shí),將需要穿透的注冊(cè)表鍵進(jìn)行備份,保存在一穿透數(shù)據(jù)文件中;所述還原步驟是開機(jī)后,在啟動(dòng)類型為Systenustart的驅(qū)動(dòng)程序初始化時(shí),從所述穿透數(shù)據(jù)文件中讀取需要穿透的注冊(cè)表鍵并還原至各注冊(cè)表鍵在注冊(cè)表中的對(duì)應(yīng)位置。進(jìn)一步地,本發(fā)明還包括一穿透配置文件,所述穿透配置文件由文件頭和需要穿透的注冊(cè)表鍵信息組成;所述文件頭包括如下信息需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)、穿透配置文件的有效總長(zhǎng)度、第一個(gè)需要穿透的注冊(cè)表鍵的開始位置以及注冊(cè)表過濾功能啟用狀態(tài);所述需要穿透的注冊(cè)表鍵信息包括需要穿透的注冊(cè)表鍵的路徑以及指定用戶的用戶配置文件的路徑,所述系統(tǒng)包括多個(gè)用戶的賬戶,當(dāng)需要穿透的注冊(cè)表鍵為用戶ffiCU下的注冊(cè)表鍵時(shí),該注冊(cè)表鍵需要穿透的用戶即為指定用戶。進(jìn)一步地,所述需要穿透的注冊(cè)表鍵是HKLM\S0FTWARE下的注冊(cè)表鍵,所述備份步驟和還原步驟如下所述備份步驟具體為步驟I、系統(tǒng)關(guān)機(jī)時(shí),捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包,讀取穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束備份步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)彳丁步驟2 ;
步驟2、讀取所述穿透配置文件中記錄的需要穿透的HKLM\S0FTWARE下注冊(cè)表鍵的路徑,備份該路徑下的注冊(cè)表子鍵,并生成一第一臨時(shí)文件,將該第一臨時(shí)文件以該路徑為索引寫入所述穿透數(shù)據(jù)文件;根據(jù)文件頭中第一個(gè)需要穿透的注冊(cè)表鍵的開始位置讀取第一個(gè)需要穿透的注冊(cè)表健的路徑;根據(jù)文件頭中需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表鍵是否全部備份完畢,若否,則重復(fù)步驟2 ;若是,完成注冊(cè)表的備份;所述還原步驟具體為步驟3、開機(jī)后,在啟動(dòng)類型為System_start的驅(qū)動(dòng)程序初始化時(shí),讀取所述穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束還原步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟4 ;步驟4、讀取所述文件頭中記錄的需要穿透的HKLM\S0FTWARE下注冊(cè)表鍵的路徑,以該路徑為索引,從所述穿透數(shù)據(jù)文件中讀取該路徑對(duì)應(yīng)的第一臨時(shí)文件,將該第一臨時(shí)文件還原到HKLM\S0FTWARE下對(duì)應(yīng)的位置;根據(jù)文件頭中需要穿透的注冊(cè)表子鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表子健是否全部還原完畢,若否,則重復(fù)步驟4 ;若是,完成注冊(cè)表的還原。進(jìn)一步地,所述需要穿透的注冊(cè)表鍵是用戶HK⑶下的注冊(cè)表鍵,所述備份步驟和還原步驟如下所述備份步驟具體為步驟10、系統(tǒng)關(guān)機(jī)時(shí),捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包,讀取穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束備份步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟20 ;步驟20、從所述穿透配置文件中讀取指定用戶的用戶配置文件的路徑,根據(jù)該路徑獲取該用戶配置文件,并將該用戶配置文件還原到注冊(cè)表的HKLM\SOFTWARE\UserAfter下;因?yàn)樵谙到y(tǒng)關(guān)機(jī)時(shí),用戶配置文件已經(jīng)不存在了,因此必須人為加載;步驟30、從所述穿透配置文件中讀取需要穿透的用戶HK⑶下注冊(cè)表鍵的路徑,并根據(jù)該路徑從HKLM\SOFTWARE\USerAfter下備份出對(duì)應(yīng)的注冊(cè)表子鍵,并生成一第二臨時(shí)文件,該第二臨時(shí)文件以用戶HKCU下注冊(cè)表鍵的路徑為索引;根據(jù)文件頭中需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表健是否全部還原完畢,若否,則重復(fù)步驟30,直至需要穿透的用戶HKCU下的注冊(cè)表鍵都生成以其路徑為索引的第二臨時(shí)文件,各第二臨時(shí)文件通過不同的路徑索引進(jìn)行識(shí)別;若是,執(zhí)行步驟40 ;步驟40、復(fù)制所述用戶配置文件,生成備份用戶配置文件,將所述備份用戶配置文件還原至 HKLM\SOFTWARE\UserFilter 下;步驟50、將各所述第二臨時(shí)文件均還原至HKLM\SOFTWARE\UserFilter下對(duì)應(yīng)的子??;步驟60、備份HKLM\SOFTWARE\UserFilter下注冊(cè)表鍵并生成用戶穿透配置文件,所述用戶穿透配置文件即保存有需要過濾的指定用戶的fficu的數(shù)據(jù);步驟70、將所述用戶穿透配置文件以該用戶的用戶配置文件的路徑為索引寫入所述穿透數(shù)據(jù)文件,完成該用戶的用戶HKCU下的注冊(cè)表鍵的備份;當(dāng)指定多個(gè)用戶時(shí),重復(fù) 步驟20至70,直至完成所有指定用戶的用戶HK⑶下的注冊(cè)表鍵的備份;所述還原步驟具體為步驟80、開機(jī)后,在啟動(dòng)類型為Systenustart的驅(qū)動(dòng)程序初始化時(shí),讀取所述穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束還原步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟90 ;步驟90、讀取所述文件頭中記錄的指定用戶的用戶配置文件的路徑,以該路徑為索引,從所述穿透數(shù)據(jù)文件中讀取該路徑對(duì)應(yīng)的用戶穿透配置文件;步驟100、將所述用戶穿透配置文件覆蓋所述用戶配置文件,即完成了用戶HK⑶的注冊(cè)表還原;當(dāng)需要還原多個(gè)用戶的注冊(cè)表鍵是,重復(fù)步驟90和步驟100。進(jìn)一步地,用戶通過一配置界面進(jìn)行操作,保存后生成所述穿透配置文件。本發(fā)明具有如下優(yōu)點(diǎn)本發(fā)明實(shí)現(xiàn)了磁盤保護(hù)模式下注冊(cè)表數(shù)據(jù)的修改,且能夠?qū)Χ鄠€(gè)用戶的用戶注冊(cè)表數(shù)據(jù)進(jìn)行透明穿透,解決了不能穿透HKCU注冊(cè)表的難題。本發(fā)明可通過配置界面靈活配置,支持Windows XP、Windows 7等主流Windows操作系統(tǒng)且支持在多還原層磁盤保護(hù)模式下的注冊(cè)表透明穿透。
具體實(shí)施方式在磁盤保護(hù)系統(tǒng)下,所有對(duì)系統(tǒng)分區(qū)的修改都會(huì)在計(jì)算機(jī)重啟后恢復(fù)到初始狀態(tài),這樣就無法保存用戶對(duì)注冊(cè)表鍵值的修改。本發(fā)明在計(jì)算機(jī)關(guān)機(jī)前(用戶注銷后,文件系統(tǒng)關(guān)閉前),將需要穿透的注冊(cè)表鍵值保存到穿透數(shù)據(jù)文件中,并按照鍵值、用戶等分類保存。開機(jī)時(shí),文件系統(tǒng)開啟后,配置管理器初始化完成后,在啟動(dòng)類型為Systenustart的驅(qū)動(dòng)程序的初始化時(shí),再將備份的注冊(cè)表鍵值按照注冊(cè)表鍵、用戶等還原到系統(tǒng)中,這樣,對(duì)于計(jì)算機(jī)來說,注冊(cè)表穿透部分的功能就是透明的,文件系統(tǒng)感覺不到注冊(cè)表數(shù)據(jù)的變化;對(duì)用戶來說,他的注冊(cè)表數(shù)據(jù)在關(guān)機(jī)前和重啟后是一樣的,這樣也就實(shí)現(xiàn)了注冊(cè)表穿透的目的。磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,包括一穿透配置文件、備份步驟和還原步驟。
所述穿透配置文件由文件頭和需要穿透的注冊(cè)表鍵信息組成;所述文件頭包括如下信息需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)、穿透配置文件的有效總長(zhǎng)度、第一個(gè)需要穿透的注冊(cè)表鍵的開始位置以及注冊(cè)表過濾功能啟用狀態(tài);所述需要穿透的注冊(cè)表鍵信息包括需要穿透的注冊(cè)表鍵的路徑以及指定用戶的用戶配置文件的路徑,所述系統(tǒng)包括多個(gè)用戶的賬戶,當(dāng)需要穿透的注冊(cè)表鍵為用戶ffiCU下的注冊(cè)表鍵時(shí),該注冊(cè)表鍵需要穿透的用戶即為指定用戶;用戶通過一配置界面進(jìn)行操作,保存后生成所述穿透配置文件。所述備份步驟是系統(tǒng)關(guān)機(jī),在捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包時(shí),將需要穿透的注冊(cè)表鍵進(jìn)行備份,保存在一穿透數(shù)據(jù)文件中。所述還原步驟是開機(jī)后,在啟動(dòng)類型為System_start的驅(qū)動(dòng)程序初始化時(shí),從所述穿透數(shù)據(jù)文件中讀取需要穿透的注冊(cè)表鍵并還原至各注冊(cè)表鍵在注冊(cè)表中的對(duì)應(yīng)位置。
HKLM\S0FTWARE是系統(tǒng)的注冊(cè)表鍵,HK⑶是用戶的注冊(cè)表鍵,開機(jī)時(shí)用戶登錄前和關(guān)機(jī)時(shí)用戶注銷后HKCU注冊(cè)表鍵在注冊(cè)表中不存在,所以其注冊(cè)表鍵的穿透方法與HKLM\S0FTWARE不相同?,F(xiàn)針對(duì)HKLM\S0FTWARE下的注冊(cè)表鍵和用戶HKCU下的注冊(cè)表鍵分別闡述穿透方法。實(shí)施例一所述需要穿透的注冊(cè)表鍵是HKLM\S0FTWARE下的注冊(cè)表鍵,所述備份步驟和還原步驟如下所述備份步驟具體為步驟I、系統(tǒng)關(guān)機(jī)時(shí),捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包,讀取穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束備份步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)彳丁步驟2 ;步驟2、讀取所述穿透配置文件中記錄的需要穿透的HKLM\S0FTWARE下注冊(cè)表鍵的路徑,備份該路徑下的注冊(cè)表子鍵,并生成一第一臨時(shí)文件,將該第一臨時(shí)文件以該路徑為索引寫入所述穿透數(shù)據(jù)文件;由于系統(tǒng)關(guān)機(jī)時(shí),當(dāng)捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包時(shí),HKLM\SOFTWARE下注冊(cè)表鍵還存在于注冊(cè)表中,所以可以直接對(duì)注冊(cè)表中HKLM\S0FTWARE下注冊(cè)表子鍵進(jìn)行備份操作;根據(jù)文件頭中第一個(gè)需要穿透的注冊(cè)表鍵的開始位置讀取第一個(gè)需要穿透的注冊(cè)表健的路徑;根據(jù)文件頭中需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表鍵是否全部備份完畢,若否,則重復(fù)步驟2 ;若是,完成注冊(cè)表的備份;所述還原步驟具體為步驟3、開機(jī)后,在啟動(dòng)類型為System_start的驅(qū)動(dòng)程序初始化時(shí),讀取所述穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束還原步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)彳丁步驟4 ;由于系統(tǒng)開機(jī)時(shí),在啟動(dòng)類型為SyStem_Start的驅(qū)動(dòng)程序初始化時(shí)HKLM\S0FTWARE下注冊(cè)表鍵已經(jīng)存在于注冊(cè)表中,所以可以直接對(duì)注冊(cè)表中HKLM\S0FTWARE下注冊(cè)表子進(jìn)行還原操作;步驟4、讀取所述文件頭中記錄的需要穿透的HKLM\S0FTWARE下注冊(cè)表鍵的路徑,以該路徑為索引,從所述穿透數(shù)據(jù)文件中讀取該路徑對(duì)應(yīng)的第一臨時(shí)文件,將該第一臨時(shí)文件還原到HKLM\S0FTWARE下對(duì)應(yīng)的位置;
根據(jù)文件頭中需要穿透的注冊(cè)表子鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表子健是否全部還原完畢,若否,則重復(fù)步驟4 ;若是,完成注冊(cè)表的還原。實(shí)施例二 所述需要穿透的注冊(cè)表鍵是用戶HKCU下的注冊(cè)表鍵,由于HKCU是用戶注冊(cè)表,當(dāng)用戶登錄時(shí)被操作系統(tǒng)加載到注冊(cè)表中,當(dāng)用戶注銷時(shí)被操作系統(tǒng)從注冊(cè)表中卸載。由于系統(tǒng)關(guān)機(jī)時(shí),當(dāng)捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包時(shí)用戶已經(jīng)注銷,所以HK⑶下注冊(cè)表鍵已經(jīng)不存在于注冊(cè)表中,所以必須先將用戶的注冊(cè)表文件加載到注冊(cè)表中后才可以對(duì)用戶注冊(cè)表鍵進(jìn)行備份操作。系統(tǒng)開機(jī)時(shí),在啟動(dòng)類型為Systenustart的驅(qū)動(dòng)程序初始化時(shí)用戶還未登錄,所以HKCU下注冊(cè)表鍵還不存在于注冊(cè)表中,所以只需用關(guān)機(jī)時(shí)備份的用戶注冊(cè)表文件替換系統(tǒng)中的用戶注冊(cè)表文件即可實(shí)現(xiàn)用戶注冊(cè)表鍵的還原操作。因此,所述備份步驟和還原步驟如下
所述備份步驟具體為步驟10、系統(tǒng)關(guān)機(jī)時(shí),捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包,讀取穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束備份步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟20 ;步驟20、從所述穿透配置文件中讀取指定用戶的用戶配置文件的路徑,根據(jù)該路徑獲取該用戶配置文件,并將該用戶配置文件還原到注冊(cè)表的HKLM\SOFTWARE\UserAfter下;因?yàn)樵谙到y(tǒng)關(guān)機(jī)時(shí),用戶配置文件已經(jīng)不存在了,因此必須人為加載;所述UserAfter是自定義的注冊(cè)表鍵值名稱,命名為任何名稱都可以;步驟30、從所述穿透配置文件中讀取需要穿透的用戶HK⑶下注冊(cè)表鍵的路徑,并根據(jù)該路徑從HKLM\SOFTWARE\USerAfter下備份出對(duì)應(yīng)的注冊(cè)表子鍵,并生成一第二臨時(shí)文件,該第二臨時(shí)文件以用戶HKCU下注冊(cè)表鍵的路徑為索引;根據(jù)文件頭中需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表健是否全部還原完畢,若否,則重復(fù)步驟30,直至需要穿透的用戶HKCU下的注冊(cè)表鍵都生成以其路徑為索引的第二臨時(shí)文件,各第二臨時(shí)文件通過不同的路徑索引進(jìn)行識(shí)別;若是,執(zhí)行步驟40 ;步驟40、復(fù)制所述用戶配置文件,生成備份用戶配置文件,將所述備份用戶配置文件還原至HKLM\SOFTWARE\UserFi I ter下;所述UserFi I ter是自定義的注冊(cè)表鍵值名稱,命名為任何名稱都可以;步驟50、將各所述第二臨時(shí)文件均還原至HKLM\SOFTWARE\UserFilter下對(duì)應(yīng)的子?。徊襟E60、備份HKLM\SOFTWARE\UserFilter下注冊(cè)表鍵并生成用戶穿透配置文件,所述用戶穿透配置文件即保存有需要過濾的指定用戶的fficu的數(shù)據(jù);步驟70、將所述用戶穿透配置文件以該用戶的用戶配置文件的路徑為索引寫入所述穿透數(shù)據(jù)文件,完成該用戶的用戶HKCU下的注冊(cè)表鍵的備份;當(dāng)指定多個(gè)用戶時(shí),重復(fù)步驟20至70,直至完成所有指定用戶的用戶HK⑶下的注冊(cè)表鍵的備份;所述還原步驟具體為步驟80、開機(jī)后,在啟動(dòng)類型為System_start的驅(qū)動(dòng)程序初始化時(shí),讀取所述穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束還原步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟90 ;步驟90、讀取所述文件頭中記錄的指定用戶的用戶配置文件的路徑,以該路徑為索引,從所述穿透數(shù)據(jù)文件中讀取該路徑對(duì)應(yīng)的用戶穿透配置文件;步驟100、將所述用戶穿透配置文件覆蓋所述用戶配置文件,即完成了用戶HK⑶的注冊(cè)表還原;當(dāng)需要還原多個(gè)用戶的注冊(cè)表鍵是,重復(fù)步驟90和步驟100。本發(fā)明實(shí)現(xiàn)了磁盤保護(hù)模式下注冊(cè)表數(shù)據(jù)的修改,且能夠?qū)Χ鄠€(gè)用戶的用戶注冊(cè)表數(shù)據(jù)進(jìn)行透明穿透,解決了不能穿透HKCU注冊(cè)表的難題。本發(fā)明可通過配置界面靈活配置,支持Windows XP、Windows 7等主流Windows操作系統(tǒng)且支持在多還原層磁盤保護(hù)模式下的注冊(cè)表透明穿透。
雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。
權(quán)利要求
1.磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,其特征在于包括備份步驟和還原步驟,所述備份步驟是系統(tǒng)關(guān)機(jī),在捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包時(shí),將需要穿透的注冊(cè)表鍵進(jìn)行備份,保存在一穿透數(shù)據(jù)文件中;所述還原步驟是開機(jī)后,在啟動(dòng)類型為System_start的驅(qū)動(dòng)程序初始化時(shí),從所述穿透數(shù)據(jù)文件中讀取需要穿透的注冊(cè)表鍵并還原至各注冊(cè)表鍵在注冊(cè)表中的對(duì)應(yīng)位置。
2.根據(jù)權(quán)利要求I所述的磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,其特征在于還包括一穿透配置文件,所述穿透配置文件由文件頭和需要穿透的注冊(cè)表鍵信息組成;所述文件頭包括如下信息需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)、穿透配置文件的有效總長(zhǎng)度、第一個(gè)需要穿透的注冊(cè)表鍵的開始位置以及注冊(cè)表過濾功能啟用狀態(tài);所述需要穿透的注冊(cè)表鍵信息包括需要穿透的注冊(cè)表鍵的路徑以及指定用戶的用戶配置文件的路徑,所述系統(tǒng)包括多個(gè)用戶的賬戶,當(dāng)需要穿透的注冊(cè)表鍵為用戶HKCU下的注冊(cè)表鍵時(shí),該注冊(cè)表鍵需要穿透的用戶即為指定用戶。
3.根據(jù)權(quán)利要求2所述的磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,其特征在于所述需要穿透的注冊(cè)表鍵是HKLM\SOFTWARE下的注冊(cè)表鍵,所述備份步驟和還原步驟如下 所述備份步驟具體為 步驟I、系統(tǒng)關(guān)機(jī)時(shí),捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包,讀取穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束備份步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)彳丁步驟2 ; 步驟2、讀取所述穿透配置文件中記錄的需要穿透的HKLM\SOFTWARE下注冊(cè)表鍵的路徑,備份該路徑下的注冊(cè)表子鍵,并生成一第一臨時(shí)文件,將該第一臨時(shí)文件以該路徑為索引寫入所述穿透數(shù)據(jù)文件; 根據(jù)文件頭中第一個(gè)需要穿透的注冊(cè)表鍵的開始位置讀取第一個(gè)需要穿透的注冊(cè)表健的路徑;根據(jù)文件頭中需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表鍵是否全部備份完畢,若否,則重復(fù)步驟2 ;若是,完成注冊(cè)表的備份; 所述還原步驟具體為 步驟3、開機(jī)后,在啟動(dòng)類型為Systenustart的驅(qū)動(dòng)程序初始化時(shí),讀取所述穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束還原步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟4 ; 步驟4、讀取所述文件頭中記錄的需要穿透的HKLM\SOFTWARE下注冊(cè)表鍵的路徑,以該路徑為索引,從所述穿透數(shù)據(jù)文件中讀取該路徑對(duì)應(yīng)的第一臨時(shí)文件,將該第一臨時(shí)文件還原到HKLM\SOFTWARE下對(duì)應(yīng)的位置; 根據(jù)文件頭中需要穿透的注冊(cè)表子鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表子健是否全部還原完畢,若否,則重復(fù)步驟4 ;若是,完成注冊(cè)表的還原。
4.根據(jù)權(quán)利要求2所述的磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,其特征在于所述需要穿透的注冊(cè)表鍵是用戶HKCU下的注冊(cè)表鍵,所述備份步驟和還原步驟如下 所述備份步驟具體為 步驟10、系統(tǒng)關(guān)機(jī)時(shí),捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包,讀取穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束備份步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟20 ;步驟20、從所述穿透配置文件中讀取指定用戶的用戶配置文件的路徑,根據(jù)該路徑獲取該用戶配置文件,并將該用戶配置文件還原到注冊(cè)表的HKLM\SOFTWARE\UserAfter下;因?yàn)樵谙到y(tǒng)關(guān)機(jī)時(shí),用戶配置文件已經(jīng)不存在了,因此必須人為加載; 步驟30、從所述穿透配置文件中讀取需要穿透的用戶HK⑶下注冊(cè)表鍵的路徑,并根據(jù)該路徑從HKLM\SOFTWARE\USerAfter下備份出對(duì)應(yīng)的注冊(cè)表子鍵,并生成一第二臨時(shí)文件,該第二臨時(shí)文件以用戶HKCU下注冊(cè)表鍵的路徑為索引; 根據(jù)文件頭中需要穿透的注冊(cè)表鍵的有效總個(gè)數(shù)判斷所有需要穿透的注冊(cè)表健是否全部還原完畢,若否,則重復(fù)步驟30,直至需要穿透的用戶HKCU下的注冊(cè)表鍵都生成以其路徑為索引的第二臨時(shí)文件,各第二臨時(shí)文件通過不同的路徑索引進(jìn)行識(shí)別;若是,執(zhí)行步驟40 ; 步驟40、復(fù)制所述用戶配置文件,生成備份用戶配置文件,將所述備份用戶配置文件還原至 HKLM\SOFTWARE\UserFilter 下; 步驟50、將各所述第二臨時(shí)文件均還原至HKLM\SOFTWARE\UserFilter下對(duì)應(yīng)的子??;步驟60、備份HKLM\SOFTWARE\UserFilter下注冊(cè)表鍵并生成用戶穿透配置文件,所述用戶穿透配置文件即保存有需要過濾的指定用戶的HKCU的數(shù)據(jù); 步驟70、將所述用戶穿透配置文件以該用戶的用戶配置文件的路徑為索引寫入所述穿透數(shù)據(jù)文件,完成該用戶的用戶HKCU下的注冊(cè)表鍵的備份;當(dāng)指定多個(gè)用戶時(shí),重復(fù)步驟20至70,直至完成所有指定用戶的用戶HK⑶下的注冊(cè)表鍵的備份; 所述還原步驟具體為 步驟80、開機(jī)后,在啟動(dòng)類型為System_start的驅(qū)動(dòng)程序初始化時(shí),讀取所述穿透配置文件,解析穿透配置文件的文件頭,若注冊(cè)表過濾功能啟用狀態(tài)為未啟用,則不操作,結(jié)束還原步驟;若注冊(cè)表過濾功能啟用狀態(tài)為已啟用,執(zhí)行步驟90 ; 步驟90、讀取所述文件頭中記錄的指定用戶的用戶配置文件的路徑,以該路徑為索引,從所述穿透數(shù)據(jù)文件中讀取該路徑對(duì)應(yīng)的用戶穿透配置文件; 步驟100、將所述用戶穿透配置文件覆蓋所述用戶配置文件,即完成了用戶HKCU的注冊(cè)表還原; 當(dāng)需要還原多個(gè)用戶的注冊(cè)表鍵時(shí),重復(fù)步驟90和步驟100。
5.根據(jù)權(quán)利要求I至4所述的磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,其特征在于用戶通過一配置界面進(jìn)行操作,保存后生成所述穿透配置文件。
全文摘要
本發(fā)明提供一種磁盤保護(hù)系統(tǒng)下的注冊(cè)表透明穿透方法,包括備份步驟和還原步驟,所述備份步驟是系統(tǒng)關(guān)機(jī),在捕獲到關(guān)機(jī)輸入輸出請(qǐng)求包時(shí),將需要穿透的注冊(cè)表鍵進(jìn)行備份,保存在一穿透數(shù)據(jù)文件中;所述還原步驟是開機(jī)后,在啟動(dòng)類型為System_start的驅(qū)動(dòng)程序初始化時(shí),從所述穿透數(shù)據(jù)文件中讀取需要穿透的注冊(cè)表鍵并還原至各注冊(cè)表鍵在注冊(cè)表中的對(duì)應(yīng)位置。本發(fā)明實(shí)現(xiàn)了磁盤保護(hù)模式下注冊(cè)表數(shù)據(jù)的修改,且能夠?qū)Χ鄠€(gè)用戶的用戶注冊(cè)表數(shù)據(jù)進(jìn)行透明穿透,解決了不能穿透HKCU注冊(cè)表的難題。本發(fā)明可通過配置界面靈活配置,支持主流Windows操作系統(tǒng)且支持在多還原層磁盤保護(hù)模式下的注冊(cè)表透明穿透。
文檔編號(hào)G06F11/14GK102968359SQ20121045521
公開日2013年3月13日 申請(qǐng)日期2012年11月13日 優(yōu)先權(quán)日2012年11月13日
發(fā)明者張輝 申請(qǐng)人:福建升騰資訊有限公司