專利名稱:系統(tǒng)修復(fù)方法、裝置及存儲介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及操作系統(tǒng)修復(fù)技術(shù)領(lǐng)域,尤其涉及一種可還原的系統(tǒng)修復(fù)方法、裝置及存儲介質(zhì)。
背景技術(shù):
系統(tǒng)文件和注冊表是windows操作系統(tǒng)的重要內(nèi)容。其中,系統(tǒng)文件是操作系統(tǒng)的主要文件,一般在安裝操作系統(tǒng)過程中自動創(chuàng)建并將相關(guān)文件放在對應(yīng)的文件夾中,這些系統(tǒng)文件直接影響系統(tǒng)的正常運(yùn)行,多數(shù)系統(tǒng)文件都不允許隨意改變。因此,系統(tǒng)文件的存在對維護(hù)計(jì)算機(jī)系統(tǒng)的穩(wěn)定具有重要作用。注冊表是windows操作系統(tǒng)中的一個重要的數(shù)據(jù)庫,用于儲存系統(tǒng)和應(yīng)用程序的設(shè)置信息。注冊表由鍵(或稱“項(xiàng)”)、子鍵(子項(xiàng))和值項(xiàng)構(gòu)成,一個鍵就是分支中的一個文檔夾,而子鍵則是這個文檔夾中的子文檔夾,子鍵同樣 是一個鍵;一個值項(xiàng)則是一個鍵的當(dāng)前定義,由名稱、數(shù)據(jù)類型以及分配的值組成。一個鍵可以有一個或多個值,每個值的名稱各不相同,如果一個值的名稱為空,則該值為該鍵的默認(rèn)值。目前,系統(tǒng)修復(fù)的方法通常采用還原系統(tǒng)文件來修復(fù),或者將系統(tǒng)文件進(jìn)行備份,當(dāng)檢測到系統(tǒng)出現(xiàn)安全問題時,將備份的文件替代系統(tǒng)現(xiàn)有的文件。但是,系統(tǒng)的異常一般是由于木馬病毒引起,現(xiàn)有的安全軟件或技術(shù)方案,在檢查到系統(tǒng)文件異常后,采用從備份的系統(tǒng)文件中去還原受損壞的系統(tǒng)文件,以實(shí)現(xiàn)對系統(tǒng)的修復(fù)。然而,由于木馬病毒引起的異常不僅會損壞系統(tǒng)文件,甚至還會修改注冊表信息。因此,現(xiàn)有的系統(tǒng)修復(fù)方法僅僅恢復(fù)系統(tǒng)文件并不能徹底解決系統(tǒng)修復(fù)問題。
發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種系統(tǒng)修復(fù)方法、裝置及存儲介質(zhì),旨在避免系統(tǒng)修復(fù)時可能存在的異常修復(fù),保證系統(tǒng)修復(fù)的可靠性。為了達(dá)到上述目的,本發(fā)明提出一種系統(tǒng)修復(fù)方法,包括以下步驟對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;當(dāng)檢測結(jié)果存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù);若是,則修復(fù)所述系統(tǒng)文件和/或注冊表。本發(fā)明還提出一種系統(tǒng)修復(fù)裝置,包括安全檢查模塊,用于對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;修復(fù)判斷模塊,用于當(dāng)檢測結(jié)果存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù);修復(fù)模塊,用于當(dāng)所述修復(fù)判斷模塊判斷所述系統(tǒng)文件和/或注冊表需要修復(fù)時,修復(fù)所述系統(tǒng)文件和/或注冊表。本發(fā)明還提出一種計(jì)算機(jī)可讀取的存儲介質(zhì),在其上存儲了使計(jì)算機(jī)能夠運(yùn)行的程序,在程序裝入計(jì)算機(jī)的存儲器內(nèi)后,對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;當(dāng)檢測結(jié)果存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù);若是,則修復(fù)所述系統(tǒng)文件和/或注冊表。本發(fā)明提出的一種系統(tǒng)修復(fù)方法、裝置及存儲介質(zhì),避免了系統(tǒng)修復(fù)時可能存在的異常修復(fù),減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性和準(zhǔn)確性,保證了系統(tǒng)修復(fù)的可靠性。
圖I是本發(fā)明系統(tǒng)修復(fù)方法第一實(shí)施例的流程示意圖;圖2是本發(fā)明系統(tǒng)修復(fù)方法第二實(shí)施例的流程示意圖;圖3是本發(fā)明系統(tǒng)修復(fù)方法第二實(shí)施例中一種用戶的注冊表項(xiàng)信息設(shè)置示意圖;圖4是本發(fā)明系統(tǒng)修復(fù)方法第三實(shí)施例的流程示意圖;圖5是本發(fā)明系統(tǒng)修復(fù)裝置第一實(shí)施例的結(jié)構(gòu)示意圖;圖6是本發(fā)明系統(tǒng)修復(fù)裝置第二實(shí)施例的結(jié)構(gòu)示意圖;圖7是本發(fā)明系統(tǒng)修復(fù)裝置第三實(shí)施例的結(jié)構(gòu)示意圖。為了使本發(fā)明的技術(shù)方案更加清楚、明了,下面將結(jié)合附圖作進(jìn)一步詳述。
具體實(shí)施例方式本發(fā)明實(shí)施例解決方案主要是對系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,根據(jù)檢查結(jié)果判斷系統(tǒng)是否需要修復(fù),若需要修復(fù),則對系統(tǒng)文件和/或注冊表進(jìn)行相應(yīng)的修復(fù);此外,在系統(tǒng)修復(fù)操作完成后,檢測系統(tǒng)修復(fù)是否存在異常,如果存在異常,則根據(jù)之前記錄的系統(tǒng)狀態(tài)信息回退到系統(tǒng)狀態(tài)正常的情況,亦可手動還原指定內(nèi)容,以提高系統(tǒng)修復(fù)可靠性。如圖I所示,本發(fā)明第一實(shí)施例提出一種系統(tǒng)修復(fù)方法,包括步驟S101,對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;當(dāng)系統(tǒng)出現(xiàn)故障時,本實(shí)施例在對系統(tǒng)進(jìn)行修復(fù)時,不僅要對系統(tǒng)文件進(jìn)行檢查和修復(fù),而且還要對系統(tǒng)的注冊表進(jìn)行檢查和修復(fù),以提高系統(tǒng)修復(fù)的可靠性,避免系統(tǒng)修復(fù)異常。首先要對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,判斷是否存在安全隱患,其中,安全性檢查具體是指對于系統(tǒng)文件的安全性檢查,是指查看當(dāng)前系統(tǒng)文件是否為與當(dāng)前操作系統(tǒng)匹配的系統(tǒng)文件。首先先掃描系統(tǒng)文件,根據(jù)該系統(tǒng)文件的MD5到后臺去查詢系統(tǒng)文件是否為風(fēng)險文件,如果后臺上報異常,表明該系統(tǒng)文件需要修復(fù);如果后臺上報該系統(tǒng)文件不是風(fēng)險文件,則對系統(tǒng)文件進(jìn)行分級,若果是重要級文件,則檢測其簽名,如果系統(tǒng)文件的簽名沒有通過,則表明該系統(tǒng)文件與當(dāng)前系統(tǒng)不匹配,存在風(fēng)險,該系統(tǒng)文件是需要修復(fù)的文件;如果系統(tǒng)文件的簽名通過,則表明系統(tǒng)文件的安全狀態(tài)正常。對于注冊表的安全性檢查,是指查看注冊表的當(dāng)前信息是否存在惡意修改項(xiàng)。首先,將注冊表當(dāng)前值與注冊表默認(rèn)值進(jìn)行比較,判斷當(dāng)前注冊表的值是否有修改,如果有修改,而且這種修改符合異常修改(比如將值從0改為1),則認(rèn)為該注冊表需要修復(fù);如果注冊表的修改是指向的一個文件,則對該文件進(jìn)行檢查,具體根據(jù)該文件的MD5到后臺去查詢,判斷該文件是否為存在風(fēng)險的文件,若是,則表明該注冊表需要修復(fù),如果不是,則表明該注冊表不需要修復(fù)。通過系統(tǒng)文件檢查和注冊表檢查,可以確定系統(tǒng)的安全狀態(tài)。例如,特洛伊木馬Trojan. Neprodoor會感染系統(tǒng)的ndis. sys文件,同時,該木馬會修改系統(tǒng)的啟動項(xiàng)注冊表,在系統(tǒng)啟動時加載該木馬進(jìn)程。該木馬不但使驅(qū)動文件ndis. sys保持原有的功能,同時將后門程序注入到Service.exe程序中。木馬運(yùn)行后可能接受遠(yuǎn)程指令而盜取用戶信息。因此,通過系統(tǒng)安全性檢查,會檢查到系統(tǒng)文件ndis. sys被病毒修改,因此該文件存在異常;另外,通過安全性檢查,檢查到注冊表的啟動項(xiàng)也被修改為指向病毒進(jìn)程的啟動項(xiàng),因此注冊表中指向病毒進(jìn)程的啟動項(xiàng)也同樣存在異常。步驟S102,當(dāng)檢測結(jié)果異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù);若是,則進(jìn)入步驟S103 ;當(dāng)步驟SlOl中系統(tǒng)的安全性檢查結(jié)果為異常時,根據(jù)預(yù)先設(shè)置的系統(tǒng)修復(fù)規(guī)則,·來判斷系統(tǒng)是否需要修復(fù)。其中,對于系統(tǒng)文件的修復(fù)判斷,系統(tǒng)修復(fù)規(guī)則的設(shè)定方式為將系統(tǒng)文件分級為重要和非重要,其中,重要級文件是指對操作系統(tǒng)啟動和運(yùn)行非常重要的文件,若這些文件被感染或者被破壞將會導(dǎo)致系統(tǒng)無法啟動、無法正常運(yùn)行或者導(dǎo)致病毒進(jìn)程被加載,因此,這類重要級系統(tǒng)文件遭到破壞就需要對其進(jìn)行修復(fù),如wind0ws\system32目錄下的kernel32. dll文件;而非重要級文件是指對系統(tǒng)安全性影響較小的系統(tǒng)文件,或者不會對系統(tǒng)的安全產(chǎn)生影響的系統(tǒng)文件,而且是病毒進(jìn)程一般不會感染的系統(tǒng)文件,這類系統(tǒng)文件在未對系統(tǒng)安全產(chǎn)生影響的條件下,不需要修復(fù)該類系統(tǒng)文件。對于注冊表的修復(fù)判斷,系統(tǒng)修復(fù)規(guī)則的設(shè)定方式為將注冊表的當(dāng)前信息與注冊表對應(yīng)項(xiàng)的默認(rèn)設(shè)置進(jìn)行比較,以此來判斷是否需要修復(fù)。注冊表項(xiàng)分級為重要項(xiàng)和非重要項(xiàng)。其中重要項(xiàng)包括容易被木馬或病毒修改用于加載進(jìn)程項(xiàng),以及用戶或者應(yīng)用軟件修改項(xiàng);非重要項(xiàng)是指一般很少改動的項(xiàng)。通過對比系統(tǒng)默認(rèn)項(xiàng)和檢測用戶修改項(xiàng)以及其指向的文件的安全性,判斷系統(tǒng)是否需要修復(fù)。如果判斷某些注冊表項(xiàng)被惡意修改或者某些啟動項(xiàng)指向的文件為危險文件,則該項(xiàng)注冊表需要修復(fù)。步驟S103,修復(fù)所述系統(tǒng)文件和/或注冊表。若通過修復(fù)判斷,需要修復(fù)系統(tǒng),則根據(jù)判斷結(jié)果修復(fù)系統(tǒng)文件或修復(fù)注冊表項(xiàng)。具體處理方式為對于系統(tǒng)文件的修復(fù),如果發(fā)現(xiàn)系統(tǒng)文件被修改,則先檢查系統(tǒng)文件的版本信息,然后調(diào)用后臺查詢修改文件的安全性。如果發(fā)現(xiàn)系統(tǒng)文件被刪減或修改,則從預(yù)設(shè)的標(biāo)準(zhǔn)庫中導(dǎo)入相應(yīng)的系統(tǒng)文件或者替換對應(yīng)的系統(tǒng)文件。對于注冊表的修復(fù),則是指將注冊表中被修改的選項(xiàng)恢復(fù)到系統(tǒng)默認(rèn)的安全設(shè)置,或者是恢復(fù)到用戶對注冊表中修改后的信息。例如,若檢測到系統(tǒng)的驅(qū)動文件serial, sys被病毒感染,則從標(biāo)準(zhǔn)庫文件中找到該文件并替換;對于注冊表的修復(fù)則首先判斷注冊表是否需要刪除,若為指向危險文件的啟動項(xiàng),則需要刪除該啟動項(xiàng)注冊表,用戶或者應(yīng)用軟件修改的其他安全的啟動項(xiàng)注冊表則保留;又如,若檢測到注冊表項(xiàng)的IE首頁指向?yàn)橐粋€掛馬網(wǎng)址,則將其修改為默認(rèn)值blank即可。本實(shí)施例通過對系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,根據(jù)檢查結(jié)果判斷系統(tǒng)是否需要修復(fù),若需要修復(fù),則對系統(tǒng)文件和/或注冊表進(jìn)行相應(yīng)的修復(fù),減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性和準(zhǔn)確性。如圖2所示,本發(fā)明第二實(shí)施例提出一種系統(tǒng)修復(fù)方法,在上述第一實(shí)施例的基礎(chǔ)上,在上述步驟S102判斷系統(tǒng)文件和/或注冊表需要修復(fù)的步驟之后還包括步驟S104,對系統(tǒng)狀態(tài)信息進(jìn)行記錄。同時在上述步驟S103修復(fù)系統(tǒng)文件和/或注冊表的步驟之后還包括 步驟S 105,判斷用戶是否選擇系統(tǒng)還原;若是,則進(jìn)入步驟S106 ;步驟S106,對所述系統(tǒng)進(jìn)行還原。本實(shí)施例與上述第一實(shí)施例的區(qū)別在于,本實(shí)施例在實(shí)現(xiàn)對系統(tǒng)的修復(fù)后,還可在用戶選擇需要還原系統(tǒng)時,實(shí)現(xiàn)對系統(tǒng)的還原。具體地,為了實(shí)現(xiàn)對系統(tǒng)的還原,本實(shí)施例在判斷系統(tǒng)文件和/或注冊表需要修復(fù)時,記錄系統(tǒng)的狀態(tài)信息。其中,系統(tǒng)的狀態(tài)信息記錄包括兩部分系統(tǒng)文件狀態(tài)信息的記錄以及注冊表狀態(tài)信息的記錄,并分別形成系統(tǒng)文件狀態(tài)信息表和注冊表狀態(tài)信息表。記錄的系統(tǒng)狀態(tài)信息用于在系統(tǒng)修復(fù)失敗時的還原。本實(shí)施例采用以下系統(tǒng)狀態(tài)信息記錄方法系統(tǒng)文件狀態(tài)信息包括系統(tǒng)文件數(shù)目、文件名和系統(tǒng)文件的版本信息以及校驗(yàn)信息。在記錄系統(tǒng)文件狀態(tài)信息的同時,將該信息進(jìn)行備份。系統(tǒng)文件狀態(tài)信息的記錄格式如下表I所示
文件類別文件數(shù)/文件名文件版本校驗(yàn)信息
內(nèi)核文件8——
kemel32.dll版本 IMD5i
atl71.dll版本 2MD52
內(nèi)核其它--MD53
驅(qū)動文件10---
fastfat.sys版本 3MDS4
llpydisk.sys版本 4MD55
serial.sys版本 5MDS6
驅(qū)動其它二MD57表I由于系統(tǒng)文件數(shù)目大,如果記錄所有文件,將會影響文件的記錄效率和后續(xù)查詢效率。因此,本實(shí)施例采用移動的壓縮方法,具體為對于非常見不易修改的系統(tǒng)文件,采用文件夾記錄的方式,只記錄文件夾中文件的數(shù)目和校驗(yàn)信息,而不記錄每個文件的版本信息,以減小記錄信息的存儲量和提高記錄的效率。同時,還要記錄各類別文件的MD5信息,并對其進(jìn)行MD5加密,用于后續(xù)系統(tǒng)還原判定。如將內(nèi)核的校驗(yàn)信息加 密得到MD513 (MD51,MD52,MD53,),將驅(qū)動校驗(yàn)信息加密得到MD547 (MD54,MD55,MD56,MD57),最終得到MD517。MD517記錄了整個系統(tǒng)文件的狀態(tài)信
肩、O系統(tǒng)的注冊表狀態(tài)信息記錄是指記錄系統(tǒng)默認(rèn)的狀態(tài)表各項(xiàng)的鍵值,以及用戶或者應(yīng)用軟件修改后的注冊表各項(xiàng)的鍵值。其記錄格式如下表2所示
注冊表類別注冊表項(xiàng)級別 j默認(rèn)值j當(dāng)前值j是否修改
HKEY—CLASSES—表項(xiàng) I WJ' II^
R00T表項(xiàng) 2 tl, I"0^
其它項(xiàng)非重點(diǎn)"0^
HKEY USERS 表項(xiàng) I fj, "5O
表項(xiàng) 2 WJ, II
表項(xiàng) 3 "oI
其它項(xiàng)非重點(diǎn)II^表 2由于系統(tǒng)注冊表項(xiàng)較多,包括5個大類,而每個大類又包含多個項(xiàng),每項(xiàng)又包含多個子項(xiàng)信息。如果記錄每個子項(xiàng)的狀態(tài)信息,則需要很大的存儲空間,而且后續(xù)查詢效率低下。因此,在記錄注冊表狀態(tài)信息時,需要對注冊表狀態(tài)信息進(jìn)行壓縮,以提高存儲效率和后續(xù)查詢速度。 具體做法為將注冊表分為5部分計(jì)算,對應(yīng)注冊表的5大類。對于每一類注冊表,將表項(xiàng)分為重要表項(xiàng)和非重要表項(xiàng),其中重要表項(xiàng)是指與系統(tǒng)安全相關(guān)的經(jīng)常被木馬或病毒軟件利用的表項(xiàng),如系統(tǒng)啟動項(xiàng)、IE默認(rèn)項(xiàng)、系統(tǒng)服務(wù)、協(xié)議相關(guān)表項(xiàng),以及用戶可能會修改的表項(xiàng),如由于安裝軟件修改的打開方式注冊表項(xiàng)等;非重點(diǎn)表項(xiàng)是指很少被修改的表項(xiàng)。對于非重要表項(xiàng),將所有默認(rèn)值映射成一個值,而將重要表項(xiàng)的每一項(xiàng)對應(yīng)一個值,然后計(jì)算重要項(xiàng)的所有值以及非重點(diǎn)項(xiàng)映射值的合集,以確定該注冊表是否被修改。如圖3所示,圖3是一種用戶的注冊表項(xiàng)信息設(shè)置示意圖。其中,注冊表項(xiàng)I是安裝PPlive修改的注冊表項(xiàng),注冊表項(xiàng)2是IE默認(rèn)首頁注冊表項(xiàng),注冊表項(xiàng)I和注冊表項(xiàng)2均屬于重要注冊表項(xiàng)。注冊表項(xiàng)3不屬于經(jīng)常易被利用的注冊表項(xiàng)和經(jīng)常被修改的注冊表項(xiàng),因此屬于非重要注冊表項(xiàng)。
注冊表狀態(tài)信息的記錄方式與系統(tǒng)文件狀態(tài)信息的記錄方式類似,分別記錄重要項(xiàng)和非重要項(xiàng),將重要項(xiàng)和非重要項(xiàng)合并成該類注冊表的記錄,然后將各類注冊表的記錄信息合并成整個注冊表的信息。例如圖3中的重要注冊表項(xiàng)I的信息為HKEY_CLASSES_ROOT\Synacast\Shell\Open\Command〃C: \Program Files\PPLive\PPTV\PPLive. exe〃〃%l〃,以上字符加密后得到MD51,重要注冊表項(xiàng) 2 的信息為HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\MAIN\Start Page http://www. google, com. hk,以上字符加密后得到 MD52,將兩類重要注冊表項(xiàng)1、2的信息再次加密后得到MD512 (MD51,MD52),非重要注冊表項(xiàng)3的信息為HKEY_CURRENT_CONFIG\Software\Fonts,以上字符加密后得到 MD53,最終得到 MD513(MD512,MD53)表示整個注冊表的記錄信息。這里使用的加密方法為MD5方法,但是,實(shí)際操作中還可以使用其他信息加密方
法獲取系統(tǒng)的整體信息。當(dāng)系統(tǒng)修復(fù)后,用戶需要手動還原,則根據(jù)之前記錄的系統(tǒng)修復(fù)前的狀態(tài)信息,分別將系統(tǒng)文件和注冊表信息還原到修復(fù)前的狀態(tài)。具體還原方法為對于系統(tǒng)文件,首先查找系統(tǒng)文件的狀態(tài)信息表,通過MD5信息確定系統(tǒng)文件修改類別,然后采用同樣的方法查找對應(yīng)的重要級文件或非重要級文件集,最后找到對應(yīng)的版本信息和校驗(yàn)信息,從備份文件中查找對應(yīng)的系統(tǒng)文件并還原。對于注冊表信息,采用兩種還原方式一種方式是根據(jù)記錄的注冊表狀態(tài)信息查找注冊表修改項(xiàng)在修改前的設(shè)定值,將修復(fù)后的設(shè)定值還原到修改前的設(shè)定值;另一種方式是向用戶反饋?zhàn)员硇薷膬?nèi)容,由用戶手動指定還原內(nèi)容。注冊表還原采用和系統(tǒng)文件還原類似的方法通過類別查到到對應(yīng)的類別,然后找到對應(yīng)的注冊表項(xiàng),還原為記錄狀態(tài),直至還原完成。本實(shí)施例通過對系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,根據(jù)檢查結(jié)果判斷系統(tǒng)是否需要修復(fù),若需要修復(fù),則對系統(tǒng)文件和/或注冊表進(jìn)行相應(yīng)的修復(fù);此外,在系統(tǒng)修復(fù)操作完成后,若用戶需要手動還原系統(tǒng),則根據(jù)之前記錄的系統(tǒng)狀態(tài)信息,由用戶手動還原指定內(nèi)容,從而減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性和準(zhǔn)確性,并有利于對系統(tǒng)的還原。如圖4所示,本發(fā)明第三實(shí)施例提出一種系統(tǒng)修復(fù)方法,在上述第二實(shí)施例的基礎(chǔ)上,在上述步驟S103修復(fù)系統(tǒng)文件和/或注冊表的步驟之后還包括步驟S107,判斷所述系統(tǒng)修復(fù)是否異常;若是,則進(jìn)入步驟S106 ;否則,進(jìn)入步驟S105。本實(shí)施例與上述第二實(shí)施例的區(qū)別在于,本實(shí)施例在實(shí)現(xiàn)對系統(tǒng)的修復(fù)后,還可對系統(tǒng)修復(fù)異常進(jìn)行判斷,若系統(tǒng)修復(fù)異常,則對系統(tǒng)進(jìn)行還原。具體地,為了實(shí)現(xiàn)對系統(tǒng)的還原,本實(shí)施例在判斷系統(tǒng)文件和/或注冊表需要修復(fù)時,記錄系統(tǒng)的狀態(tài)信息,該過程與上述第二實(shí)施例相同,在此不再贅述。由于對系統(tǒng)文件的修復(fù)和系統(tǒng)注冊表的修復(fù)可能存在一定的風(fēng)險,一旦修改失敗,可能會導(dǎo)致新的問題,甚至使系統(tǒng)崩潰。因此,有必要在系統(tǒng)修復(fù)完成時,對系統(tǒng)修復(fù)進(jìn)行判斷,以確定是否會出現(xiàn)修復(fù)異常。例如,對注冊表的修復(fù)策略采用了恢復(fù)默認(rèn)注冊表值,而木馬或者病毒采取的方式是隔段時間檢查注冊表項(xiàng)是否被修復(fù),如果發(fā)現(xiàn)被修復(fù)則進(jìn)行回寫。因此,在注冊表修復(fù)時直接將注冊表恢復(fù)成默認(rèn)值并不合理,還存在修復(fù)后被回寫的情況。若某些被系統(tǒng)安全軟件修復(fù)項(xiàng)被回寫,則上述修復(fù)判定為修復(fù)異常。具體地,對系統(tǒng)文件修復(fù)異常的判斷策略為,對修復(fù)的系統(tǒng)文件和注冊表信·息做異常監(jiān)測,具體為對于系統(tǒng)文件,將被修復(fù)的系統(tǒng)文件和用于修復(fù)的系統(tǒng)文件提交至后臺服務(wù)器進(jìn)行檢測,確認(rèn)被修復(fù)的系統(tǒng)文件會產(chǎn)生系統(tǒng)安全問題,而用于修復(fù)的系統(tǒng)文件不會產(chǎn)生安全問題。通過對用于修復(fù)的系統(tǒng)文件的異常監(jiān)測,可以發(fā)現(xiàn)被修復(fù)的文件再次感染,從而判定為修復(fù)異常,以避免病毒的反復(fù)回寫。對于注冊表修復(fù),若注冊表的修復(fù)策略采用了恢復(fù)默認(rèn)注冊表值,則需要檢查默認(rèn)注冊表值是否存在修復(fù)后被病毒回寫,若某些被系統(tǒng)安全軟件修復(fù)項(xiàng)被回寫,則上述修復(fù)判定為修復(fù)異常。此外,若注冊表的修復(fù)策略采用用戶或系統(tǒng)安全軟件對注冊表進(jìn)行修改,則將按照修改策略修改后的注冊表與系統(tǒng)修復(fù)前用戶或系統(tǒng)安全軟件對注冊表的修改進(jìn)行比較,同時檢查注冊表修改項(xiàng)對應(yīng)的文件的屬性,并進(jìn)行安全性校驗(yàn)。如果修改項(xiàng)不存在用戶的修改值,則修改為默認(rèn)值,判定為正常修復(fù);若修改項(xiàng)存在用戶設(shè)定值,則判定用戶設(shè)定值的指向,然后將設(shè)置值指向內(nèi)容提交至后臺處理,以檢測其是否存在安全風(fēng)險,若存在安全風(fēng)險,則判定修復(fù)異常,否則,判定修復(fù)正常。需要說明的是,對于上述注冊表修復(fù)策略問題,對比修復(fù)后的注冊表項(xiàng)與修復(fù)前的注冊表項(xiàng)是否存在用戶修改項(xiàng),并查找用戶修改項(xiàng)的值,然后檢驗(yàn)其安全性,確定是按照上述修復(fù)策略設(shè)置為默認(rèn)值,還是修改為病毒修改前的用戶修改值。如果用戶修改值的指向不存在安全風(fēng)險,而修改策略將其設(shè)置為默認(rèn)值,則認(rèn)為修復(fù)異常;或者用戶并未修改,而修改策略將其修改為非默認(rèn)值,也確定為修復(fù)異常。當(dāng)確定系統(tǒng)修復(fù)異常,或者修復(fù)后用戶需要手動還原時,需要對系統(tǒng)修復(fù)進(jìn)行還原,以避免由于異常修復(fù)導(dǎo)致的其它系統(tǒng)問題。根據(jù)之前記錄的系統(tǒng)修復(fù)前的系統(tǒng)狀態(tài)信息,分別將系統(tǒng)文件和注冊表信息還原到修復(fù)前的狀態(tài)。具體還原方法為對于系統(tǒng)文件,查找系統(tǒng)文件的狀態(tài)信息表,通過MD5信息確定系統(tǒng)文件修改類另IJ,然后采用同樣的方法查找對應(yīng)的重要級文件或非重要級文件集,最后找到對應(yīng)的版本信息和校驗(yàn)信息,從備份文件中查找對應(yīng)的文件并還原。如上表I所示,如果確定系統(tǒng)修復(fù)異常,首先判斷MD517變化,然后查找到驅(qū)動校驗(yàn)信息MD547變化,最后確定是由于修復(fù)fastfat. sys導(dǎo)致MD54變化引起,因此,還原該系統(tǒng)文件即可。對于注冊表信息,采用兩種還原方式一種方式是根據(jù)記錄的注冊表狀態(tài)信息,查找注冊表修改項(xiàng)在修改前的設(shè)定值,將修復(fù)后的設(shè)定值還原到修改前的設(shè)定值;另一種方式是向用戶反饋?zhàn)员硇薷膬?nèi)容,由用戶手動指定還原內(nèi)容。注冊表還原采用和系統(tǒng)文件還原類似的方法通過類別查到到對應(yīng)的類別,然后找到對應(yīng)的注冊表項(xiàng),還原為記錄狀態(tài),直至還原完成。本實(shí)施例通過對系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,根據(jù)檢查結(jié)果判斷系統(tǒng)是否需要修復(fù),若需要修復(fù),則對系統(tǒng)文件和/或注冊表進(jìn)行相應(yīng)的修復(fù);此外,在系統(tǒng)修復(fù)操作完成后,檢測系統(tǒng)修復(fù)是否存在異常,如果存在異常,則根據(jù)之前記錄的系統(tǒng)狀態(tài)信息回退到系統(tǒng)狀態(tài)正常的情況,亦可手動還原指定內(nèi)容。如果系統(tǒng)修復(fù)沒有異常則確定系統(tǒng)修復(fù)完成,從而避免了系統(tǒng)修復(fù)時可能存在的異常修復(fù),減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性、準(zhǔn)確性和可靠性。如圖5所示,本發(fā)明第一實(shí)施例提出一種系統(tǒng)修復(fù)裝置,包括安全檢查模塊501、修復(fù)判斷模塊502以及修復(fù)模塊503,其中安全檢查模塊501,用于對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;修復(fù)判斷模塊502,用于當(dāng)檢測結(jié)果異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù);
修復(fù)模塊503,用于當(dāng)所述修復(fù)判斷模塊判斷所述系統(tǒng)文件和/或注冊表需要修復(fù)時,修復(fù)所述系統(tǒng)文件和/或注冊表。具體地,當(dāng)系統(tǒng)出現(xiàn)故障時,本實(shí)施例在對系統(tǒng)進(jìn)行修復(fù)時,不僅要對系統(tǒng)文件進(jìn)行檢查和修復(fù),而且還要對系統(tǒng)的注冊表進(jìn)行檢查和修復(fù),以提高系統(tǒng)修復(fù)的可靠性,避免系統(tǒng)修復(fù)異常。首先,通過安全檢查模塊501對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,判斷是否存在安全隱患,其中,安全性檢查具體是指對于系統(tǒng)文件的安全性檢查,是指查看當(dāng)前系統(tǒng)文件是否為與當(dāng)前操作系統(tǒng)匹配的系統(tǒng)文件。首先先掃描系統(tǒng)文件,根據(jù)該系統(tǒng)文件的MD5到后臺去查詢系統(tǒng)文件是否為風(fēng)險文件,如果后臺上報異常,表明該系統(tǒng)文件需要修復(fù);如果后臺上報該系統(tǒng)文件不是風(fēng)險文件,則對系統(tǒng)文件進(jìn)行分級,若果是重要級文件,則檢測其簽名,如果系統(tǒng)文件的簽名沒有通過,則表明該系統(tǒng)文件與當(dāng)前系統(tǒng)不匹配,存在風(fēng)險,該系統(tǒng)文件是需要修復(fù)的文件;如果系統(tǒng)文件的簽名通過,則表明系統(tǒng)文件的安全狀態(tài)正常。對于注冊表的安全性檢查,是指查看注冊表的當(dāng)前信息是否存在惡意修改項(xiàng)。首先,將注冊表當(dāng)前值與注冊表默認(rèn)值進(jìn)行比較,判斷當(dāng)前注冊表的值是否有修改,如果有修改,而且這種修改符合異常修改(比如將值從0改為1),則認(rèn)為該注冊表需要修復(fù);如果注冊表的修改是指向的一個文件,則對該文件進(jìn)行檢查,具體根據(jù)該文件的MD5到后臺去查詢,判斷該文件是否為存在風(fēng)險的文件,若是,則表明該注冊表需要修復(fù),如果不是,則表明該注冊表不需要修復(fù)。通過系統(tǒng)文件檢查和注冊表檢查,可以確定系統(tǒng)的安全狀態(tài)。例如,特洛伊木馬Trojan. Neprodoor會感染系統(tǒng)的ndis. sys文件,同時,該木馬會修改系統(tǒng)的啟動項(xiàng)注冊表,在系統(tǒng)啟動時加載該木馬進(jìn)程。該木馬不但使驅(qū)動文件ndis. sys保持原有的功能,同時將后門程序注入到Service.exe程序中。木馬運(yùn)行后可能接受遠(yuǎn)程指令而盜取用戶信息。因此,通過系統(tǒng)安全性檢查,會檢查到系統(tǒng)文件ndis. sys被病毒修改,因此該文件存在異常;另外,通過安全性檢查,檢查到注冊表的啟動項(xiàng)也被修改為指向病毒進(jìn)程的啟動項(xiàng),因此注冊表中指向病毒進(jìn)程的啟動項(xiàng)也同樣存在異常。修復(fù)判斷模塊502根據(jù)上述安全檢查模塊501檢測獲得系統(tǒng)的安全性檢查結(jié)果,以及預(yù)先設(shè)置的系統(tǒng)修復(fù)規(guī)則,來判斷系統(tǒng)是否需要修復(fù)。其中,對于系統(tǒng)文件的修復(fù)判斷,系統(tǒng)修復(fù)規(guī)則的設(shè)定方式為將系統(tǒng)文件分級為重要和非重要,其中,重要級文件是指對操作系統(tǒng)啟動和運(yùn)行非常重要的文件,若這些文件被感染或者被破壞將會導(dǎo)致系統(tǒng)無法啟動、無法正常運(yùn)行或者導(dǎo)致病毒進(jìn)程被加載,因此,這類重要級系統(tǒng)文件遭到破壞就需要對其進(jìn)行修復(fù),如Wind0ws\system32目錄下的kernel32. dll文件;而非重要級文件是指對系統(tǒng)安全性影響較小的系統(tǒng)文件,或者不會對系統(tǒng)的安全產(chǎn)生影響的系統(tǒng)文件,而且是病毒進(jìn)程一般不會感染的系統(tǒng)文件,這類系統(tǒng)文件在未對系統(tǒng)安全產(chǎn)生影響的條件下,不需要修復(fù)該類系統(tǒng)文件。對于注冊表的修復(fù)判斷,系統(tǒng)修復(fù)規(guī)則的設(shè)定方式為將注冊表的當(dāng)前信息與注冊表對應(yīng)項(xiàng)的默認(rèn)設(shè)置進(jìn)行比較,以此來判斷是否需要修復(fù)。注冊表項(xiàng)分級為重要項(xiàng)和非重要項(xiàng)。其中重要項(xiàng)包括容易被木馬或病毒修改用于加載進(jìn)程項(xiàng),以及用戶或者應(yīng)用軟件修改項(xiàng);非重要項(xiàng)是指一般很少改動的項(xiàng)。通過對比系統(tǒng)默認(rèn)項(xiàng)和檢測用戶修改項(xiàng)以及其指向的文件的安全性,判斷系統(tǒng)是否需要修復(fù)。如果判斷某些注冊表項(xiàng)被惡意修改或者某些啟動項(xiàng)指向的文件為危險文件,則該項(xiàng)注冊表需要修復(fù)。若通過修復(fù)判斷,需要修復(fù)系統(tǒng),修復(fù)模塊503則根據(jù)判斷結(jié)果修復(fù)系統(tǒng)文件或 修復(fù)注冊表項(xiàng)。具體處理方式為對于系統(tǒng)文件的修復(fù),如果發(fā)現(xiàn)系統(tǒng)文件被修改,則先檢查系統(tǒng)文件的版本信息,然后調(diào)用后臺查詢修改文件的安全性。如果發(fā)現(xiàn)系統(tǒng)文件被刪減或修改,則從預(yù)設(shè)的標(biāo)準(zhǔn)庫中導(dǎo)入相應(yīng)的系統(tǒng)文件或者替換對應(yīng)的系統(tǒng)文件。對于注冊表的修復(fù),則是指將注冊表中被修改的選項(xiàng)恢復(fù)到系統(tǒng)默認(rèn)的安全設(shè)置,或者是恢復(fù)到用戶對注冊表中修改后的信息。例如,若檢測到系統(tǒng)的驅(qū)動文件serial, sys被病毒感染,則從標(biāo)準(zhǔn)庫文件中找到該文件并替換;對于注冊表的修復(fù)則首先判斷注冊表是否需要刪除,若為指向危險文件的啟動項(xiàng),則需要刪除該啟動項(xiàng)注冊表,用戶或者應(yīng)用軟件修改的其他安全的啟動項(xiàng)注冊表則保留;又如,若檢測到注冊表項(xiàng)的IE首頁指向?yàn)橐粋€掛馬網(wǎng)址,則將其修改為默認(rèn)值blank即可。本實(shí)施例通過對系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,根據(jù)檢查結(jié)果判斷系統(tǒng)是否需要修復(fù),若需要修復(fù),則對系統(tǒng)文件和/或注冊表進(jìn)行相應(yīng)的修復(fù),減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性和準(zhǔn)確性。如圖6所示,本發(fā)明第二實(shí)施例提出一種系統(tǒng)修復(fù)裝置,在上述第一實(shí)施例的基礎(chǔ)上,還包括狀態(tài)記錄模塊504以及還原模塊505,其中狀態(tài)記錄模塊504,連接在修復(fù)判斷模塊502與修復(fù)模塊503之間,用于對系統(tǒng)狀態(tài)信息進(jìn)行記錄。還原模塊505,連接在修復(fù)模塊503之后,用于對所述系統(tǒng)進(jìn)行還原。本實(shí)施例與上述第一實(shí)施例的區(qū)別在于,本實(shí)施例在實(shí)現(xiàn)對系統(tǒng)的修復(fù)后,還可在用戶選擇需要還原系統(tǒng)時,實(shí)現(xiàn)對系統(tǒng)的還原。具體地,為了實(shí)現(xiàn)對系統(tǒng)的還原,本實(shí)施例在判斷系統(tǒng)文件和/或注冊表需要修復(fù)時,通過狀態(tài)記錄模塊504記錄系統(tǒng)的狀態(tài)信息。其中,系統(tǒng)的狀態(tài)信息記錄包括兩部分系統(tǒng)文件狀態(tài)信息的記錄以及注冊表狀態(tài)信息的記錄,并分別形成系統(tǒng)文件狀態(tài)信息表和注冊表狀態(tài)信息表。記錄的系統(tǒng)狀態(tài)信息用于在系統(tǒng)修復(fù)失敗時的還原。本實(shí)施例采用以下系統(tǒng)狀態(tài)信息記錄方法系統(tǒng)文件狀態(tài)信息包括系統(tǒng)文件數(shù)目、文件名和系統(tǒng)文件的版本信息以及校驗(yàn)信息。在記錄系統(tǒng)文件狀態(tài)信息的同時,將該信息進(jìn)行備份。系統(tǒng)文件狀態(tài)信息的記錄格式如上表I所示由于系統(tǒng)文件數(shù)目大,如果記錄所有文件,將會影響文件的記錄效率和后續(xù)查詢效率。因此,本實(shí)施例采用移動的壓縮方法,具體為對于非常見不易修改的系統(tǒng)文件,采用文件夾記錄的方式,只記錄文件夾中文件的數(shù)目和校驗(yàn)信息,而不記錄每個文件的版本信息,以減小記錄信息的存儲量和提高記錄的效率。同時,還要記錄各類別文件的MD5信息,并對其進(jìn)行MD5加密,用于后續(xù)系統(tǒng)還原判定。如將內(nèi)核的校驗(yàn)信息加密得到MD513 (MD51,MD52,MD53,),將驅(qū)動校驗(yàn)信息加密得到MD547 (MD54,MD55,MD56,MD57),最終得到MD517。MD517記錄了整個系統(tǒng)文件的狀態(tài)信
肩、O
系統(tǒng)的注冊表狀態(tài)信息記錄是指記錄系統(tǒng)默認(rèn)的狀態(tài)表各項(xiàng)的鍵值,以及用戶或者應(yīng)用軟件修改后的注冊表各項(xiàng)的鍵值。其記錄格式如上表2所示由于系統(tǒng)注冊表項(xiàng)較多,包括5個大類,而每個大類又包含多個項(xiàng),每項(xiàng)又包含多個子項(xiàng)信息。如果記錄每個子項(xiàng)的狀態(tài)信息,則需要很大的存儲空間,而且后續(xù)查詢效率低下。因此,在記錄注冊表狀態(tài)信息時,需要對注冊表狀態(tài)信息進(jìn)行壓縮,以提高存儲效率和后續(xù)查詢速度。具體做法為將注冊表分為5部分計(jì)算,對應(yīng)注冊表的5大類。對于每一類注冊表,將表項(xiàng)分為重要表項(xiàng)和非重要表項(xiàng),其中重要表項(xiàng)是指與系統(tǒng)安全相關(guān)的經(jīng)常被木馬或病毒軟件利用的表項(xiàng),如系統(tǒng)啟動項(xiàng)、IE默認(rèn)項(xiàng)、系統(tǒng)服務(wù)、協(xié)議相關(guān)表項(xiàng),以及用戶可能會修改的表項(xiàng),如由于安裝軟件修改的打開方式注冊表項(xiàng)等;非重點(diǎn)表項(xiàng)是指很少被修改的表項(xiàng)。對于非重要表項(xiàng),將所有默認(rèn)值映射成一個值,而將重要表項(xiàng)的每一項(xiàng)對應(yīng)一個值,然后計(jì)算重要項(xiàng)的所有值以及非重點(diǎn)項(xiàng)映射值的合集,以確定該注冊表是否被修改。如圖3所示,圖3是一種用戶的注冊表項(xiàng)信息設(shè)置示意圖。其中,注冊表項(xiàng)I是安裝PPlive修改的注冊表項(xiàng),注冊表項(xiàng)2是IE默認(rèn)首頁注冊表項(xiàng),注冊表項(xiàng)I和注冊表項(xiàng)2均屬于重要注冊表項(xiàng)。注冊表項(xiàng)3不屬于經(jīng)常易被利用的注冊表項(xiàng)和經(jīng)常被修改的注冊表項(xiàng),因此屬于非重要注冊表項(xiàng)。注冊表狀態(tài)信息的記錄方式與系統(tǒng)文件狀態(tài)信息的記錄方式類似,分別記錄重要項(xiàng)和非重要項(xiàng),將重要項(xiàng)和非重要項(xiàng)合并成該類注冊表的記錄,然后將各類注冊表的記錄信息合并成整個注冊表的信息。例如圖3中的重要注冊表項(xiàng)I的信息為HKEY_CLASSES_ROOT\Synacast\Shell\Open\Command〃C: \Program Files\PPLive\PPTV\PPLive. exe〃〃%l〃,以上字符加密后得到MD51,重要注冊表項(xiàng) 2 的信息為HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\InternetExplorer\MAIN\Start Page http://www. google, com. hk,以上字符加密后得到 MD52,將兩類重要注冊表項(xiàng)1、2的信息再次加密后得到MD512 (MD51,MD52),非重要注冊表項(xiàng)3的信息為HKEY_CURRENT_CONFIG\Software\Fonts,以上字符加密后得到 MD53,最終得到 MD513(MD512,MD53)表示整個注冊表的記錄信息。這里使用的加密方法為MD5方法,但是,實(shí)際操作中還可以使用其他信息加密方法獲取系統(tǒng)的整體信息。
當(dāng)系統(tǒng)修復(fù)后,用戶需要手動還原,則由還原模塊505根據(jù)之前記錄的系統(tǒng)修復(fù)前的狀態(tài)信息,分別將系統(tǒng)文件和注冊表信息還原到修復(fù)前的狀態(tài)。具體還原方法為對于系統(tǒng)文件,首先查找系統(tǒng)文件的狀態(tài)信息表,通過MD5信息確定系統(tǒng)文件修改類別,然后采用同樣的方法查找對應(yīng)的重要級文件或非重要級文件集,最后找到對應(yīng)的版本信息和校驗(yàn)信息,從備份文件中查找對應(yīng)的系統(tǒng)文件并還原。對于注冊表信息,采用兩種還原方式一種方式是根據(jù)記錄的注冊表狀態(tài)信息查找注冊表修改項(xiàng)在修改前的設(shè)定值,將修復(fù)后的設(shè)定值還原到修改前的設(shè)定值;另一種方式是向用戶反饋?zhàn)员硇薷膬?nèi)容,由用戶手動指定還原內(nèi)容。注冊表還原采用和系統(tǒng)文件還原類似的方法通過類別查到到對應(yīng)的類別,然后找到對應(yīng)的注冊表項(xiàng),還原為記錄狀態(tài),直至還原完成。
本實(shí)施例通過對系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,根據(jù)檢查結(jié)果判斷系統(tǒng)是否需要修復(fù),若需要修復(fù),則對系統(tǒng)文件和/或注冊表進(jìn)行相應(yīng)的修復(fù);此外,在系統(tǒng)修復(fù)操作完成后,若用戶需要手動還原系統(tǒng),則根據(jù)之前記錄的系統(tǒng)狀態(tài)信息,由用戶手動還原指定內(nèi)容,從而減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性和準(zhǔn)確性,并有利于對系統(tǒng)的還原。如圖7所示,本發(fā)明第三實(shí)施例提出一種系統(tǒng)修復(fù)裝置,在上述第二實(shí)施例的基礎(chǔ)上,還包括異常判斷模塊506,其中異常判斷模塊506與還原模塊505依次連接在修復(fù)模塊503之后,異常判斷模塊506,用于判斷所述系統(tǒng)修復(fù)是否異常;若是,則由所述還原模塊505對所述系統(tǒng)進(jìn)行還原。本實(shí)施例與上述第二實(shí)施例的區(qū)別在于,本實(shí)施例在實(shí)現(xiàn)對系統(tǒng)的修復(fù)后,還可對系統(tǒng)修復(fù)異常進(jìn)行判斷,若系統(tǒng)修復(fù)異常,則對系統(tǒng)進(jìn)行還原。具體地,為了實(shí)現(xiàn)對系統(tǒng)的還原,本實(shí)施例在判斷系統(tǒng)文件和/或注冊表需要修復(fù)時,通過狀態(tài)記錄模塊504記錄系統(tǒng)的狀態(tài)信息,該過程與上述第二實(shí)施例相同,在此不再贅述。由于對系統(tǒng)文件的修復(fù)和系統(tǒng)注冊表的修復(fù)可能存在一定的風(fēng)險,一旦修改失敗,可能會導(dǎo)致新的問題,甚至使系統(tǒng)崩潰。因此,有必要在系統(tǒng)修復(fù)完成時,對系統(tǒng)修復(fù)進(jìn)行判斷,以確定是否會出現(xiàn)修復(fù)異常。例如,對注冊表的修復(fù)策略采用了恢復(fù)默認(rèn)注冊表值,而木馬或者病毒采取的方式是隔段時間檢查注冊表項(xiàng)是否被修復(fù),如果發(fā)現(xiàn)被修復(fù)則進(jìn)行回寫。因此,在注冊表修復(fù)時直接將注冊表恢復(fù)成默認(rèn)值并不合理,還存在修復(fù)后被回寫的情況。若某些被系統(tǒng)安全軟件修復(fù)項(xiàng)被回寫,則上述修復(fù)判定為修復(fù)異常。具體地,異常判斷模塊506對系統(tǒng)文件修復(fù)異常的判斷策略為,對修復(fù)的系統(tǒng)文件和注冊表信息做異常監(jiān)測,具體為對于系統(tǒng)文件,將被修復(fù)的系統(tǒng)文件和用于修復(fù)的系統(tǒng)文件提交至后臺服務(wù)器進(jìn)行檢測,確認(rèn)被修復(fù)的系統(tǒng)文件會產(chǎn)生系統(tǒng)安全問題,而用于修復(fù)的系統(tǒng)文件不會產(chǎn)生安全問題。通過對用于修復(fù)的系統(tǒng)文件的異常監(jiān)測,可以發(fā)現(xiàn)被修復(fù)的文件再次感染,從而判定為修復(fù)異常,以避免病毒的反復(fù)回寫。對于注冊表修復(fù),若注冊表的修復(fù)策略采用了恢復(fù)默認(rèn)注冊表值,則需要檢查默認(rèn)注冊表值是否存在修復(fù)后被病毒回寫,若某些被系統(tǒng)安全軟件修復(fù)項(xiàng)被回寫,則上述修復(fù)判定為修復(fù)異常。
此外,若注冊表的修復(fù)策略采用用戶或系統(tǒng)安全軟件對注冊表進(jìn)行修改,則將按照修改策略修改后的注冊表與系統(tǒng)修復(fù)前用戶或系統(tǒng)安全軟件對注冊表的修改進(jìn)行比較,同時檢查注冊表修改項(xiàng)對應(yīng)的文件的屬性,并進(jìn)行安全性校驗(yàn)。如果修改項(xiàng)不存在用戶的修改值,則修改為默認(rèn)值,判定為正常修 復(fù);若修改項(xiàng)存在用戶設(shè)定值,則判定用戶設(shè)定值的指向,然后將設(shè)置值指向內(nèi)容提交至后臺處理,以檢測其是否存在安全風(fēng)險,若存在安全風(fēng)險,則判定修復(fù)異常,否則,判定修復(fù)正常。需要說明的是,對于上述注冊表修復(fù)策略問題,對比修復(fù)后的注冊表項(xiàng)與修復(fù)前的注冊表項(xiàng)是否存在用戶修改項(xiàng),并查找用戶修改項(xiàng)的值,然后檢驗(yàn)其安全性,確定是按照上述修復(fù)策略設(shè)置為默認(rèn)值,還是修改為病毒修改前的用戶修改值。如果用戶修改值的指向不存在安全風(fēng)險,而修改策略將其設(shè)置為默認(rèn)值,則認(rèn)為修復(fù)異常;或者用戶并未修改,而修改策略將其修改為非默認(rèn)值,也確定為修復(fù)異常。當(dāng)確定系統(tǒng)修復(fù)異常,或者修復(fù)后用戶需要手動還原時,需要對系統(tǒng)修復(fù)進(jìn)行還原,以避免由于異常修復(fù)導(dǎo)致的其它系統(tǒng)問題。根據(jù)之前記錄的系統(tǒng)修復(fù)前的系統(tǒng)狀態(tài)信息,分別將系統(tǒng)文件和注冊表信息還原到修復(fù)前的狀態(tài)。具體還原方法為對于系統(tǒng)文件,查找系統(tǒng)文件的狀態(tài)信息表,通過MD5信息確定系統(tǒng)文件修改類另IJ,然后采用同樣的方法查找對應(yīng)的重要級文件或非重要級文件集,最后找到對應(yīng)的版本信息和校驗(yàn)信息,從備份文件中查找對應(yīng)的文件并還原。如上表I所示,如果確定系統(tǒng)修復(fù)異常,首先判斷MD517變化,然后查找到驅(qū)動校驗(yàn)信息MD547變化,最后確定是由于修復(fù)fastfat. sys導(dǎo)致MD54變化引起,因此,還原該系統(tǒng)文件即可。對于注冊表信息,采用兩種還原方式一種方式是根據(jù)記錄的注冊表狀態(tài)信息,查找注冊表修改項(xiàng)在修改前的設(shè)定值,將修復(fù)后的設(shè)定值還原到修改前的設(shè)定值;另一種方式是向用戶反饋?zhàn)员硇薷膬?nèi)容,由用戶手動指定還原內(nèi)容。注冊表還原采用和系統(tǒng)文件還原類似的方法通過類別查到到對應(yīng)的類別,然后找到對應(yīng)的注冊表項(xiàng),還原為記錄狀態(tài),直至還原完成。本實(shí)施例通過對系統(tǒng)文件以及注冊表進(jìn)行安全性檢查,根據(jù)檢查結(jié)果判斷系統(tǒng)是否需要修復(fù),若需要修復(fù),則對系統(tǒng)文件和/或注冊表進(jìn)行相應(yīng)的修復(fù);此外,在系統(tǒng)修復(fù)操作完成后,檢測系統(tǒng)修復(fù)是否存在異常,如果存在異常,則根據(jù)之前記錄的系統(tǒng)狀態(tài)信息回退到系統(tǒng)狀態(tài)正常的情況,亦可手動還原指定內(nèi)容。如果系統(tǒng)修復(fù)沒有異常則確定系統(tǒng)修復(fù)完成,從而避免了系統(tǒng)修復(fù)時可能存在的異常修復(fù),減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性、準(zhǔn)確性,保證了修復(fù)的可靠性。此外,本發(fā)明還提出一種計(jì)算機(jī)可讀取的存儲介質(zhì),在其上存儲了使計(jì)算機(jī)能夠運(yùn)行的程序,在程序裝入計(jì)算機(jī)的存儲器內(nèi)后,對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;當(dāng)檢測結(jié)果存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù);若是,則修復(fù)所述系統(tǒng)文件和/或注冊表。本發(fā)明上述實(shí)施例均以windows操作系統(tǒng)舉例說明,但并不限于windows操作系統(tǒng),其他操作系統(tǒng)也可以參照采用本發(fā)明的上述方案進(jìn)行系統(tǒng)修復(fù),比如mac或者Iinux系統(tǒng)等,其具體修復(fù)原理在此不再贅述。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或流程變換,或直接或間接運(yùn)用在其它相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)?!?br>
權(quán)利要求
1.一種系統(tǒng)修復(fù)方法,其特征在于,包括以下步驟 對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查; 當(dāng)檢測結(jié)果存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù); 若是,則修復(fù)所述系統(tǒng)文件和/或注冊表。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查的步驟包括 查看當(dāng)前系統(tǒng)文件是否為與所述系統(tǒng)匹配的系統(tǒng)文件,若不匹配,則當(dāng)前系統(tǒng)文件存在異常;以及 查看所述注冊表的當(dāng)前信息是否存在惡意修改項(xiàng);若是,則當(dāng)前注冊表存在異常。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)檢查結(jié)果以及預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件是否需要修復(fù)的步驟包括 當(dāng)所述系統(tǒng)文件存在異常時,判斷所述系統(tǒng)文件是否為重要級文件;若是,則所述系統(tǒng)文件需要修復(fù),否則,不需要修復(fù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)檢查結(jié)果以及預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述注冊表是否需要修復(fù)的步驟包括 當(dāng)所述注冊表的當(dāng)前信息存在異常時,將所述注冊表的的當(dāng)前信息與注冊表對應(yīng)項(xiàng)的默認(rèn)設(shè)置進(jìn)行比較; 若所述注冊表對應(yīng)項(xiàng)中存在重要級注冊表項(xiàng)被惡意修改,或者存在啟動項(xiàng)指向的文件為危險文件的情形,則判定所述注冊表需要修改;否則,判斷所述注冊表不需要修改。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的方法,其特征在于,所述判斷系統(tǒng)文件和/或注冊表需要修復(fù)的步驟之后還包括 對系統(tǒng)狀態(tài)信息進(jìn)行記錄; 所述修復(fù)系統(tǒng)文件和/或注冊表的步驟之后還包括 根據(jù)記錄的系統(tǒng)狀態(tài)信息對所述系統(tǒng)進(jìn)行還原。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對系統(tǒng)狀態(tài)信息進(jìn)行記錄的步驟包括 分別記錄所述系統(tǒng)文件以及所述注冊表的狀態(tài)信息,并對所述狀態(tài)信息進(jìn)行相應(yīng)的壓縮、加密和/或備份處理。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述對系統(tǒng)進(jìn)行還原之前還包括 判斷所述系統(tǒng)修復(fù)是否異常;若是,則執(zhí)行對所述系統(tǒng)進(jìn)行還原的步驟。
8.一種系統(tǒng)修復(fù)裝置,其特征在于,包括 安全檢查模塊,用于對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查; 修復(fù)判斷模塊,用于當(dāng)檢測結(jié)果存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù); 修復(fù)模塊,用于當(dāng)所述修復(fù)判斷模塊判斷所述系統(tǒng)文件和/或注冊表需要修復(fù)時,修復(fù)所述系統(tǒng)文件和/或注冊表。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述安全檢查模塊還用于查看當(dāng)前系統(tǒng)文件是否為與所述系統(tǒng)匹配的系統(tǒng)文件,若不匹配,則判定當(dāng)前系統(tǒng)文件存在異常;以及用于查看所述注冊表的當(dāng)前信息是否存在惡意修改項(xiàng);若是,則判定當(dāng)前注冊表存在異常。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述修復(fù)判斷模塊還用于當(dāng)所述系統(tǒng)文件存在異常時,判斷所述系統(tǒng)文件是否為重要級文件;若是,則判定所述系統(tǒng)文件需要修復(fù),否則,判定所述系統(tǒng)文件不需要修復(fù);以及還用于當(dāng)所述注冊表的當(dāng)前信息存在異常時,將所述注冊表的的當(dāng)前信息與注冊表對應(yīng)項(xiàng)的默認(rèn)設(shè)置進(jìn)行比較;若所述注冊表對應(yīng)項(xiàng)中存在重要級注冊表項(xiàng)被惡意修改,或者存在啟動項(xiàng)指向的文件為危險文件的情形,則判定所述注冊表需要修改;判斷所述注冊表不需要修改。
11.根據(jù)權(quán)利要求8、9或10所述的裝置,其特征在于,還包括 狀態(tài)記錄模塊,用于對系統(tǒng)狀態(tài)信息進(jìn)行記錄;還原模塊,用于根據(jù)所述狀態(tài)記錄模塊記錄的系統(tǒng)狀態(tài)信息對所述系統(tǒng)進(jìn)行還原。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述狀態(tài)記錄模塊還用于分別記錄所述系統(tǒng)文件以及所述注冊表的狀態(tài)信息,并對所述狀態(tài)信息進(jìn)行相應(yīng)的壓縮、加密和/或備份處理。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括 異常判斷模塊,用于判斷所述系統(tǒng)修復(fù)是否異常;若是,則由所述還原模塊對所述系統(tǒng)進(jìn)行還原。
14.一種計(jì)算機(jī)可讀取的存儲介質(zhì),在其上存儲了使計(jì)算機(jī)能夠運(yùn)行的程序,在程序裝入計(jì)算機(jī)的存儲器內(nèi)后,對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;當(dāng)檢測結(jié)果 存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷所述系統(tǒng)文件和/或注冊表是否需要修復(fù);若是,則修復(fù)所述系統(tǒng)文件和/或注冊表。
全文摘要
本發(fā)明公開一種系統(tǒng)修復(fù)方法、裝置及存儲介質(zhì),其方法包括對系統(tǒng)中的系統(tǒng)文件以及注冊表進(jìn)行安全性檢查;當(dāng)檢測結(jié)果存在異常時,根據(jù)預(yù)置的系統(tǒng)修復(fù)規(guī)則,判斷系統(tǒng)文件和/或注冊表是否需要修復(fù);若是,則修復(fù)系統(tǒng)文件和/或注冊表。本發(fā)明避免了系統(tǒng)修復(fù)時可能存在的異常修復(fù),減小了系統(tǒng)修復(fù)存在的風(fēng)險,提高了系統(tǒng)修復(fù)的安全性和準(zhǔn)確性,保證了系統(tǒng)修復(fù)的可靠性。
文檔編號G06F11/14GK102799500SQ20121021042
公開日2012年11月28日 申請日期2012年6月25日 優(yōu)先權(quán)日2012年6月25日
發(fā)明者梅書慧, 尚鴻 申請人:騰訊科技(深圳)有限公司