專利名稱:檢測(cè)和清除已知及未知計(jì)算機(jī)病毒的方法、系統(tǒng)和介質(zhì)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種檢測(cè)和清除(即查殺)計(jì)算機(jī)病毒的技術(shù),特別是一種能檢測(cè)和殺除未知病毒的方法,以及采用這種方法的計(jì)算機(jī)系統(tǒng),以及載有和傳輸這種查殺病毒的軟件的存儲(chǔ)介質(zhì)和傳輸介質(zhì)。
長期以來,計(jì)算機(jī)病毒成為困擾使用計(jì)算機(jī)的人們的一個(gè)重大問題。由于病毒的感染性、自我復(fù)制性和破壞性,計(jì)算機(jī)病毒已經(jīng)威脅到了人們對(duì)計(jì)算機(jī)的正常使用,如造成數(shù)據(jù)丟失、篡改、文件損壞、軟件破壞等。人們經(jīng)常使用各種各樣的殺毒軟件來檢測(cè)和殺除這些病毒。
目前使用的殺病毒軟件大都只能檢測(cè)和殺除已知類型的病毒,也就是,對(duì)于已知的各種類型的病毒,已知其特征碼,通過對(duì)可能帶毒的文件進(jìn)行檢測(cè),尋找病毒特征碼,如找到相應(yīng)病毒的特征碼,則判斷有病毒,進(jìn)而進(jìn)行殺毒。這種方法,不能檢測(cè)到未知類型的病毒。只有在新的病毒被發(fā)現(xiàn)并被病毒分析員分析后,才能取得該新病毒的特征碼。將這種新的病毒特征碼加入到現(xiàn)有的殺毒軟件中,才能識(shí)別和檢測(cè)出新的病毒。
自從計(jì)算機(jī)病毒出現(xiàn)以來,查病毒主要是通過特征值掃描法,即在捕捉到一個(gè)病毒后,反病毒人員從病毒的程序體中提取一串或多串特征碼,作為該病毒的特征值,查毒軟件根據(jù)文件中是否含有病毒的特征值,來判斷該文件是否帶病毒。雖然十幾年來,查毒技術(shù)有了一定的改進(jìn),但特征值掃描法作為查毒軟件的基礎(chǔ)并未動(dòng)搖。特征值掃描法(即查毒軟件)的最大缺陷是只有先捕捉到一個(gè)病毒并被病毒分析員分析提出病毒特征碼加入病毒特征庫,然后查毒軟件才能查出該病毒,即查毒軟件總是落后于病毒,病毒一定要讓病毒分析員分析。
目前已知的能夠檢測(cè)未知病毒的殺毒技術(shù)例如有廣譜查毒、啟發(fā)式查毒等等,它們是用足夠多的經(jīng)典的病毒特征碼,有的還用虛擬機(jī)運(yùn)行待查毒對(duì)象的部分代碼,運(yùn)用經(jīng)驗(yàn)值來判斷該待查毒對(duì)象可能有毒或判斷該待查毒對(duì)象里有可疑代碼。例如,國內(nèi)外一些反病毒公司推出了查未知病毒的方法,這些方法都是基于一種思想,總結(jié)一些病毒攻擊計(jì)算機(jī)常用的方法,比如寫盤,寫文件等,然后從查毒對(duì)象中查找這些特征,實(shí)際這就是行為特征描述。這種方法有的稱為誘導(dǎo)式查毒方法,有的稱為啟發(fā)式查毒方法。這種方法可以發(fā)現(xiàn)一些未知的病毒,起到警報(bào)的作用,但是效果很差,誤報(bào)率和漏報(bào)率都非常高。這有兩方面的原因,一是病毒攻擊的方法多種多樣,很難一一列舉,二是病毒采用的攻擊方法對(duì)于系統(tǒng)來說都是合法的,有很多工具性軟件也有同樣的行為,很難鑒別。使用這種方法查毒對(duì)于用戶來說,能查到一些未知病毒,并提醒用戶注意,但由于誤報(bào)率比較高,也給用戶帶來不必要的恐慌,而且最為重要的一點(diǎn),它無法殺毒,如果真的被病毒攻擊,也只能停機(jī)等待殺毒軟件的升級(jí)。而且這種方法不能確定待查毒對(duì)象是否有毒只能說可能有毒。到目前為止,世界上還沒有能殺未知病毒的反病毒產(chǎn)品也沒有不用病毒特征庫(數(shù)據(jù)庫或代碼庫)能殺已知病毒的反病毒產(chǎn)品。
針對(duì)上述現(xiàn)有的殺毒軟件技術(shù)中的問題,本發(fā)明的目的在于提供一種能有效檢測(cè)和清除出已知及未知病毒的方法、系統(tǒng)和介質(zhì),它利用病毒的基本特性感染性,來檢測(cè)出病毒的存在,從而能從根本上解決檢測(cè)未知病毒的問題,它能檢測(cè)出絕大多數(shù)已知和未知病毒的存在,進(jìn)而加以殺除。從根本上改變十幾年來每種病毒都必須由人工分析后才能查殺的事實(shí)。有了該發(fā)明,就使未知病毒能被及時(shí)的發(fā)現(xiàn)并清除,大大的減輕了病毒對(duì)信息及數(shù)據(jù)破壞的可能性;絕大多數(shù)已知和未知病毒的查殺不再需要人工分析,從而節(jié)省大量人力和財(cái)力。
本發(fā)明提供一種檢測(cè)和清除計(jì)算機(jī)病毒的方法,包括以下步驟計(jì)算機(jī)模擬步驟,在一臺(tái)計(jì)算機(jī)上模擬一個(gè)計(jì)算機(jī)病毒賴以生存的虛擬計(jì)算機(jī)環(huán)境;提供多個(gè)計(jì)算機(jī)病毒可能感染的感染對(duì)象,即誘餌,用于誘發(fā)病毒感染;裝入待檢測(cè)對(duì)象到所述模擬的計(jì)算機(jī)環(huán)境中;在所述模擬的計(jì)算機(jī)環(huán)境中激活該待檢測(cè)對(duì)象,以誘發(fā)附在所述待測(cè)對(duì)象上的病毒對(duì)所述多個(gè)感染對(duì)象進(jìn)行感染,并生成感染后的標(biāo)準(zhǔn)樣本;將運(yùn)行后的所述多個(gè)感染對(duì)象與原始提供的多個(gè)感染對(duì)象進(jìn)行比較分析,判斷有無改變,如有改變,判斷所述待檢測(cè)對(duì)象帶有病毒;如無改變,判斷其沒有病毒。
本發(fā)明的所述檢測(cè)和清除計(jì)算機(jī)病毒的方法,還包括以下步驟病毒分析和學(xué)習(xí)步驟,用于在所述病毒判斷步驟判斷有病毒時(shí),對(duì)生成的標(biāo)準(zhǔn)樣本進(jìn)行分析,并從標(biāo)準(zhǔn)樣本中提取關(guān)于病毒的信息和知識(shí);病毒清除步驟,用于根據(jù)所述關(guān)于病毒的信息和知識(shí),根據(jù)病毒對(duì)所述感染對(duì)象即誘餌的改變,對(duì)所述帶病毒的待檢測(cè)對(duì)象進(jìn)行相應(yīng)的清除病毒體和修正改病毒修改過的關(guān)鍵信息從而清除病毒。
本發(fā)明還提供一種檢測(cè)和清除計(jì)算機(jī)病毒的計(jì)算機(jī)系統(tǒng),包括一普通的計(jì)算機(jī),該系統(tǒng)包括計(jì)算機(jī)模擬單元,在一臺(tái)計(jì)算機(jī)上模擬一個(gè)計(jì)算機(jī)病毒賴以生存的虛擬計(jì)算機(jī)環(huán)境;多個(gè)計(jì)算機(jī)病毒可能感染的感染對(duì)象,即誘餌,用于誘發(fā)病毒感染;控制單元,用于裝入待檢測(cè)對(duì)象到所述模擬的計(jì)算機(jī)環(huán)境中;病毒感染誘發(fā)單元,用于在所述模擬的計(jì)算機(jī)環(huán)境中激活該待檢測(cè)對(duì)象,以誘發(fā)附在所述待測(cè)對(duì)象上的病毒對(duì)所述多個(gè)感染對(duì)象進(jìn)行感染,并生成感染后的標(biāo)準(zhǔn)樣本;病毒判斷單元,用于將運(yùn)行后的所述多個(gè)感染對(duì)象與原始提供的多個(gè)感染對(duì)象進(jìn)行比較分析,判斷有無改變,如有改變,判斷所述待檢測(cè)對(duì)象帶有病毒;如無改變,判斷其沒有病毒。
本發(fā)明的所述檢測(cè)和清除計(jì)算機(jī)病毒的計(jì)算機(jī)系統(tǒng),還包括病毒分析和學(xué)習(xí)機(jī),用于在所述病毒判斷步驟判斷有病毒時(shí),對(duì)生成的標(biāo)準(zhǔn)樣本進(jìn)行分析,并從標(biāo)準(zhǔn)樣本中提取關(guān)于病毒的信息和知識(shí);病毒清除單元,用于根據(jù)所述關(guān)于病毒的信息和知識(shí),根據(jù)病毒對(duì)所述感染對(duì)象即誘餌的改變,對(duì)所述帶病毒的待檢測(cè)對(duì)象進(jìn)行相應(yīng)的清除病毒體和修正改病毒修改過的關(guān)鍵信息從而清除病毒。
本發(fā)明還提供一種計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì),用于使計(jì)算機(jī)執(zhí)行上述檢測(cè)和清除計(jì)算機(jī)病毒方法中的各個(gè)步驟;以及提供一種傳輸介質(zhì),用于通過網(wǎng)絡(luò)傳輸使計(jì)算機(jī)執(zhí)行上述檢測(cè)和清除計(jì)算機(jī)病毒方法中的各個(gè)步驟。
圖1示出了本發(fā)明的檢測(cè)和清除計(jì)算機(jī)病毒的計(jì)算機(jī)系統(tǒng)的結(jié)構(gòu)框圖。
圖2A-2C示出了本發(fā)明的檢測(cè)和清除計(jì)算機(jī)病毒的方法的工作流程圖。
計(jì)算機(jī)病毒之所以被稱為病毒,主要是它具有感染性,因此感染性是病毒最本質(zhì)的特征。如果一個(gè)程序具有感染性,就可斷定其帶有病毒。通過識(shí)別一個(gè)程序是否具有感染性判斷該程序是否被病毒感染,是識(shí)別病毒最有效方法。但是,由于病毒具有感染性,要驗(yàn)證它具有感染性,就意味著它要感染某個(gè)對(duì)象,如果是在真實(shí)的環(huán)境下進(jìn)行,這意味著查毒同時(shí),病毒一直在傳播,顯然不能在真實(shí)的環(huán)境下進(jìn)行。驗(yàn)證待查對(duì)象是否具有感染性,只能在虛擬環(huán)境中進(jìn)行。
本發(fā)明就是利用上述病毒的感染性,把可能帶毒的對(duì)象放入一個(gè)病毒賴以生存繁殖的虛擬的計(jì)算機(jī)環(huán)境里并激活可能帶毒的對(duì)象,用誘餌來誘發(fā)其感染。并且,由于各種病毒可能會(huì)有一定的感染條件,如有的病毒會(huì)對(duì)目標(biāo)對(duì)象的尺寸、內(nèi)容等等有一定的要求,因此,本發(fā)明提供各種各樣的“誘餌”,包括各種各樣的不同大小不同內(nèi)容的誘餌對(duì)象,如用format.com、sort.com等文件誘發(fā)DOS com型病毒;用debug.exelable.exe等文件誘發(fā)DOS exe型病毒;用模擬的軟盤引導(dǎo)扇、硬盤一引導(dǎo)扇區(qū)、硬盤主引導(dǎo)扇區(qū)誘發(fā)DOS boot型病毒;用notepad.exe、word.exe等文件誘發(fā)WINDOWS pe型病毒;等等。以不同的誘餌對(duì)象盡量滿足病毒對(duì)目標(biāo)對(duì)象的要求。
本發(fā)明是指虛擬環(huán)境的病毒繁殖—查殺病毒新技術(shù),該技術(shù)歸屬于行為結(jié)果查殺毒范疇。本發(fā)明用虛擬環(huán)境模仿一個(gè)真實(shí)計(jì)算機(jī)環(huán)境,實(shí)現(xiàn)病毒的生存繁殖及傳播的全部過程。同時(shí)監(jiān)控病毒的生存繁殖及傳播這一過程,并學(xué)習(xí)病毒的感染方法,進(jìn)一步推導(dǎo)出病毒感染的逆過程即殺毒方法。具體步驟是如下第一步,建立一個(gè)病毒賴以生存繁殖的虛擬環(huán)境,把待查毒的對(duì)象也放到該環(huán)境里;第二步激活可能帶毒的對(duì)象,如果待查毒的對(duì)象真帶毒的話,該虛擬計(jì)算機(jī)環(huán)境也成了帶毒環(huán)境。對(duì)虛擬環(huán)境里的誘餌進(jìn)行各種操作,盡最大努力讓病毒感染誘餌。也就是在虛擬環(huán)境里做病毒感染繁殖試驗(yàn),如果誘餌被病毒感染了,說明待查毒的對(duì)象真的帶毒,被病毒感染的誘餌便成了一個(gè)標(biāo)準(zhǔn)樣本;第三步,如果上一步感染繁殖試驗(yàn)成功,就用程序來分析標(biāo)準(zhǔn)樣本(而不是病毒分析員),并從標(biāo)準(zhǔn)樣本中提出查殺該病毒所需的盡可能多的信息。第四步,把程序分析標(biāo)準(zhǔn)樣本得到的信息應(yīng)用到帶毒對(duì)象上,進(jìn)一步把病毒給清除。
圖1具體示出了按照本發(fā)明的優(yōu)選實(shí)施例的檢測(cè)未知病毒的計(jì)算機(jī)系統(tǒng)的構(gòu)成方框圖。如圖1所示,在一個(gè)普通的計(jì)算機(jī)系統(tǒng)1中,裝有一個(gè)可由該計(jì)算機(jī)執(zhí)行的本發(fā)明的查殺毒單元2。該計(jì)算機(jī)1中可以帶有通常的CPU、內(nèi)存、操作系統(tǒng)(OS)、外部存儲(chǔ)設(shè)備(硬盤、軟盤等)(圖中未示出)。該查殺毒單元2的整個(gè)程序由計(jì)算機(jī)1的CPU中執(zhí)行。該計(jì)算機(jī)系統(tǒng)中還包括一待查毒對(duì)象19,它可以是計(jì)算機(jī)2的硬盤、軟盤中的文件,硬盤、軟盤的引導(dǎo)扇區(qū),以及從互聯(lián)網(wǎng)下載和傳輸?shù)奈募驍?shù)據(jù)等可能帶毒的對(duì)象。
如圖1所示,所述查殺毒單元2包括一查毒控制單元3,用于輸入待查毒對(duì)象19到模擬的計(jì)算機(jī)環(huán)境中,并控制查毒處理各單元的整個(gè)過程;一計(jì)算機(jī)模擬單元4,又稱虛擬計(jì)算機(jī),用于生成一個(gè)完整的模擬計(jì)算機(jī)系統(tǒng),作為病毒賴以生存繁殖傳播的虛擬環(huán)境,該生成的模擬計(jì)算機(jī)系統(tǒng)可以包括虛擬的CPU5、虛擬內(nèi)存6、虛擬的操作系統(tǒng)(OS)7、虛擬的外部存儲(chǔ)設(shè)備8(硬盤、軟盤等)及其它病毒生存繁殖傳播所需的系統(tǒng)資源的部分9,如系統(tǒng)時(shí)間等;一個(gè)或多個(gè)標(biāo)準(zhǔn)誘餌11(即計(jì)算機(jī)病毒可能感染的感染對(duì)象),用于誘發(fā)病毒感染;一病毒感染誘發(fā)單元10,用于將所述待查毒對(duì)象19裝入到所述虛擬計(jì)算機(jī)4中進(jìn)行運(yùn)行,并用所述標(biāo)準(zhǔn)誘餌11來誘發(fā)待查毒對(duì)象19可能帶有的病毒對(duì)這些標(biāo)準(zhǔn)誘餌11以及誘發(fā)病毒對(duì)所述模擬計(jì)算機(jī)環(huán)境本身中的模擬硬盤、模擬軟盤的引導(dǎo)扇區(qū)等部分的感染,并生成感染后的標(biāo)準(zhǔn)樣本13;一病毒比較判斷單元12,用于檢查在誘發(fā)病毒前后所述模擬計(jì)算機(jī)環(huán)境本身中的模擬硬盤、模擬軟盤的引導(dǎo)扇區(qū)等部分有無改變,以及將所述感染后的標(biāo)準(zhǔn)樣本13與感染前的標(biāo)準(zhǔn)誘餌11進(jìn)行比較,檢查有無改變,如有改變,則判斷為該待查毒對(duì)象19帶病毒,如無改變,則認(rèn)為無病毒18。
所述查殺毒單元2的殺毒部分包括一殺毒控制單元17,用于控制殺毒毒處理各單元的整個(gè)過程;一病毒分析學(xué)習(xí)單元14,用于根據(jù)所述標(biāo)準(zhǔn)誘餌11和感染病毒后生成的標(biāo)準(zhǔn)樣本13來分析病毒感染所造成的改變,并學(xué)習(xí)關(guān)于該病毒的知識(shí);一病毒清除單元15,用于根據(jù)所述病毒分析學(xué)習(xí)單元14生成的關(guān)于病毒的知識(shí),有針對(duì)性地殺除病毒,并產(chǎn)生清除病毒后的對(duì)象16。該清除病毒后的對(duì)象16可以由所述殺毒控制單元17覆蓋到輸入的待殺毒對(duì)象19上,以消除病毒的存在。
按照本發(fā)明的一個(gè)實(shí)施例,上述查毒控制單元2和殺毒控制單元17可以合并為一個(gè)控制單元,以控制上述查毒和殺毒的整個(gè)過程。
所述計(jì)算機(jī)模擬單元4生成的虛擬計(jì)算機(jī)環(huán)境包括虛擬機(jī)(虛擬的CPU)5、虛擬的操作系統(tǒng)7、虛擬的計(jì)算機(jī)外部存儲(chǔ)設(shè)備8、虛擬的物理內(nèi)存6等,總之病毒生存所需的一切計(jì)算機(jī)資源都被模擬出來;可能帶毒的對(duì)象是指理論上說可能被病毒感染的對(duì)象。在適當(dāng)?shù)臈l件下把可能帶毒的對(duì)象放到病毒賴以生存的虛擬環(huán)境里并在此環(huán)境虛擬激活。
所述虛擬CPU5又稱softcpu()(軟件實(shí)施或模擬的CPU)。softcpu()就是一個(gè)真實(shí)CPU指令解釋器。softcpu()對(duì)程序是解釋執(zhí)行的,就象是一個(gè)真正的CPU,能讀懂每一句程序代碼并正確解釋執(zhí)行。理論上講,只要真實(shí)CPU能執(zhí)行的代碼softcpu()就能執(zhí)行,只要真實(shí)CPU能執(zhí)行的程序,softcpu()也能解釋執(zhí)行下去;只要真實(shí)CPU認(rèn)識(shí)的指令,softcpu()也將認(rèn)識(shí),softcpu()按照真實(shí)CPU處在這種狀態(tài)會(huì)怎么做,那softcpu()也照樣去做。不過真實(shí)CPU操作的所有對(duì)象(例如BIOS芯片、磁盤)是真實(shí)的對(duì)象,而softcpu()操作的所有對(duì)象(例如BIOS芯片、磁盤)都是虛擬的對(duì)象。
另外,softcpu()只是解釋真實(shí)CPU指令的一個(gè)函數(shù)而已,可以用匯編語言、C語言或其它語言寫。為了可移植性及可維護(hù)性,按照本發(fā)明的一個(gè)實(shí)施例,采用C語言編寫。
如果要查感染Intel計(jì)算機(jī)上的病毒,softcpu()模擬的是Inte1的CPU;如果要查感染MAC計(jì)算機(jī)上的病毒,softcpu()模擬的是MAC的CPU;等等。
任何程序總是運(yùn)行在特定操作系統(tǒng)下,病毒也不例外。虛擬的操作系統(tǒng)7就是要模擬病毒所運(yùn)行的操作系統(tǒng)。該模擬操作系統(tǒng)7可以包括病毒運(yùn)行所需的多個(gè)操作系統(tǒng),如DOS的虛擬操作系統(tǒng)、WINDOWS95的虛擬操作系統(tǒng)、UNIX的虛擬操作系統(tǒng)等。為了提高效率,按照本發(fā)明的一個(gè)實(shí)施例,該模擬的操作系統(tǒng)7僅模擬病毒所運(yùn)行的操作系統(tǒng)最小內(nèi)核。如果要查殺DOS病毒,該模擬的操作系統(tǒng)選為DOS的虛擬操作系統(tǒng);如果要查殺WINDOWS95病毒,該模擬的操作系統(tǒng)選為WINDOWS95的虛擬操作系統(tǒng),等等。
本發(fā)明的計(jì)算機(jī)模擬單元4產(chǎn)生虛擬的計(jì)算機(jī)外部存儲(chǔ)設(shè)備8,包括硬盤、軟盤等。在該虛擬計(jì)算機(jī)環(huán)境中,待查毒對(duì)象的程序中所有對(duì)計(jì)算機(jī)外部存儲(chǔ)設(shè)備的讀寫均是對(duì)虛擬外部存儲(chǔ)設(shè)備的讀寫,即在程序虛擬運(yùn)行時(shí),對(duì)磁盤文件的感染和破壞數(shù)據(jù),都是對(duì)虛擬磁盤中的文件感染和破壞虛擬磁盤中的數(shù)據(jù)。
按照本發(fā)明的一個(gè)實(shí)施例,所述虛擬的計(jì)算機(jī)外部存儲(chǔ)設(shè)備8包括一可由所述計(jì)算機(jī)模擬單元4調(diào)用的虛擬計(jì)算機(jī)外部存儲(chǔ)設(shè)備函數(shù)或程序單元8,其可生成一虛擬硬盤。該虛擬計(jì)算機(jī)外部存儲(chǔ)設(shè)備單元8完成的主要功能是在內(nèi)存中開辟一塊所需大小的內(nèi)存空間,然后根據(jù)具體要求使內(nèi)存空間的虛擬硬盤具有跟正常硬盤一樣的結(jié)構(gòu),如有扇區(qū)號(hào)、磁道號(hào)、柱面號(hào)的三維空間概念,主引導(dǎo)扇區(qū)和對(duì)應(yīng)的0道中的空閑扇區(qū),緊接著有引導(dǎo)區(qū),文件分配表,根目錄區(qū),還有所需的系統(tǒng)文件(對(duì)于DOS系統(tǒng)有IO.SYS MSDOS.SYS COMMAND.COM),以及用來測(cè)試的誘餌文件(對(duì)于DOS文件型病毒來說應(yīng)有例如DOSEXE.EXE DOSCOM.COM等文件)。虛擬盤上的對(duì)本發(fā)明的查殺毒系統(tǒng)有用的數(shù)據(jù)也不過占幾十K到幾百K的字節(jié)空間,而通常的硬盤有幾M到幾G的字節(jié)空間,在本系統(tǒng)中其絕大多數(shù)空間是沒用上的,所以按照本發(fā)明的一個(gè)實(shí)施例,可以只在內(nèi)存中開辟幾十K到幾百K的字節(jié)空間來虛擬一個(gè)幾M到幾G的字節(jié)空間的硬盤。虛擬一個(gè)大的硬盤只需小量?jī)?nèi)存空間,所以在普通的微機(jī)上就可以實(shí)現(xiàn)本系統(tǒng)所需要的虛擬硬盤。并且,由于在查殺毒期間不用訪問實(shí)際的硬盤,所訪問的虛擬硬盤實(shí)際是在內(nèi)存的一個(gè)小區(qū)域中,所以處理速度快,節(jié)省了時(shí)間。而且,由于該虛擬磁盤僅僅是一塊內(nèi)存空間,既不會(huì)對(duì)真實(shí)的磁盤造成感染和破壞,也不會(huì)破壞內(nèi)存的物理特性,所以對(duì)用戶的系統(tǒng)是無害的。
按照本發(fā)明的進(jìn)一步的實(shí)施例,在用此單元8虛擬硬盤的時(shí)候,可以提供一預(yù)定的全局結(jié)構(gòu)hard_disk_struct來控制生成硬盤的具體規(guī)格,諸如,虛擬一空盤,一引導(dǎo)盤,一張包含系統(tǒng)文件及誘餌文件的硬盤。
所述虛擬計(jì)算機(jī)外部存儲(chǔ)設(shè)備單元8也可模擬軟盤,完成的主要功能是在內(nèi)存中開辟一塊所需大小的內(nèi)存空間,然后根據(jù)具體要求使內(nèi)存空間的虛擬軟盤具有跟正常軟盤一樣的結(jié)構(gòu),如有引導(dǎo)區(qū),文件分配表,根目錄區(qū),還有所需的系統(tǒng)文件(對(duì)于DOS系統(tǒng)有IO.SYS,MSDOS.SYS,COMMAND.COM),以及用來測(cè)試的誘餌文件(如DOSEXE.EXE,DOSCOM.COM等),其所需的數(shù)據(jù)僅僅只占幾十K。按照本發(fā)明的一個(gè)實(shí)施例,可以設(shè)定一全局結(jié)構(gòu)floppy_disk_struct來控制生成軟盤的具體規(guī)格,諸如,虛擬一空盤,一引導(dǎo)盤,一張包含系統(tǒng)文件及誘餌文件的軟盤,具體為可以根據(jù)該全局變量生成360K,720K,1.2M,1.44M的軟盤。
同樣,可以模擬任何一種操作系統(tǒng)的硬盤和軟盤。上述的靈活實(shí)現(xiàn)可以節(jié)省裝入的系統(tǒng)時(shí)間開銷,在實(shí)際調(diào)用過程中,該虛擬計(jì)算機(jī)外部存儲(chǔ)設(shè)備單元8把所需數(shù)據(jù)正確的加載到指定的內(nèi)存空間。
上述的虛擬CPU5、虛擬內(nèi)存6、虛擬OS7等的程序單元都是用本領(lǐng)域技術(shù)人員已知的編程語言來實(shí)現(xiàn)的,其包含模擬CPU的各種指令、內(nèi)存的各種管理和存取操作、OS的各種數(shù)據(jù)結(jié)構(gòu)和功能服務(wù)的實(shí)現(xiàn)代碼,這些都是目前的編程技術(shù)所能夠?qū)崿F(xiàn)的。因此,這里不再贅述。
激活待查毒對(duì)象就是要讓附在待查毒對(duì)象上的病毒活動(dòng)起來并表現(xiàn)出病毒的行為。例如如果待查毒對(duì)象是可執(zhí)行二進(jìn)制文件(DOS exe文件、DOS com文件、DOS bat文件、Windows NE或PB文件),那么激活就是執(zhí)行的意思;如果待查毒對(duì)象是WORD等帶可執(zhí)行宏的文檔文件,那么激活就是打開該文檔并是能讓其中的宏執(zhí)行的方式打開。
上述標(biāo)準(zhǔn)誘餌還可設(shè)置虛擬的系統(tǒng)時(shí)間,包括各種日期和時(shí)間,用于誘發(fā)對(duì)時(shí)間敏感的病毒,如類似CIH病毒(在4月26日發(fā)作)、和“黑色星期五”病毒等。如圖1所示,本發(fā)明的查殺毒程序2的查毒部分提供一個(gè)標(biāo)準(zhǔn)誘餌的集合,包括多個(gè)標(biāo)準(zhǔn)誘餌11,或誘餌集。所謂誘餌,是指可能被病毒感染的已知對(duì)象。按照本發(fā)明的一個(gè)實(shí)施例,如果要查殺DOS病毒,誘餌是DOS程序;如果要查殺WINDOWS95病毒,誘餌是WINDOWS95程序;如果要查殺WORD病毒,誘餌是WORD文檔;等等。無論待查殺毒對(duì)象是一個(gè)什么類型的可執(zhí)行體,誘餌都是一個(gè)與待查殺毒對(duì)象同類型的可執(zhí)行體。不過誘餌是無毒的,其尺寸、內(nèi)容、結(jié)構(gòu)及它的行為功能都是已知,而待查殺毒對(duì)象是否帶毒是未知的(在查之前),如果真帶毒的話,那么其真實(shí)尺寸、內(nèi)容、結(jié)構(gòu)及它的行為功能都是未知的。
另外,上述誘餌11不是隨便的一個(gè)可執(zhí)行體,而是經(jīng)過大量的已知病毒實(shí)驗(yàn),使其能被大量的已知病毒感染所得到的可執(zhí)行體。誘餌的尺寸、內(nèi)容都很合病毒“胃口”即可感染性極強(qiáng)。如果誘餌被病毒感染了,能夠從誘餌中提取出病毒信息。總之,誘餌就是一個(gè)很容易被病毒感染的已知可執(zhí)行體,誘餌集就是多個(gè)很容易被病毒感染的各種類型已知可執(zhí)行體的集合。
具體講,按照本發(fā)明的一個(gè)實(shí)施例,上述標(biāo)準(zhǔn)誘餌11的設(shè)置包括,例如,DOS com型誘餌集,包含構(gòu)成誘餌集的多個(gè)誘餌文件,其尺寸分布在1K至60K之間大小不等的多個(gè)文件(1K、2.5K、12K、20K、30K、40K等);誘餌集中文件的第一條指令應(yīng)分別為Jmp、call、mov、xor等指令;誘餌集中文件的時(shí)間日期和屬性也應(yīng)分別不同,用于誘發(fā)不同類型的對(duì)時(shí)間或?qū)傩悦舾械牟《尽?br>
上述標(biāo)準(zhǔn)誘餌的設(shè)置還可以包括DOS exe型誘餌集,包括構(gòu)成誘餌集的多個(gè)誘餌文件,其文件頭尺寸分別為0×20、0×200、0×400、0×600、0×800等幾種,文件尺寸分別為4K、10K、20K、40K、80K等幾種,文件最后一頁大小分別為為0×00、0×03、0×80、0×87、0×100、0×198等幾種;其重定位項(xiàng)數(shù)分別為0×00、0×01、0×02、0×04、0×10等幾種但不占滿重定位項(xiàng)表;其CS、IP的值也設(shè)為各種各樣的值;程序的堆棧空間分別設(shè)有堆??臻g在程序體前部、堆棧空間在程序體中部、堆??臻g在程序體后部、堆??臻g在程序體末端(不屬于程序體)等幾種。
上述標(biāo)準(zhǔn)誘餌的設(shè)置還可以包括引導(dǎo)型誘餌集,其包括MSDOS、PCDOS、DRDOS、WIN9X等系統(tǒng)的不同版本的引導(dǎo)扇區(qū)及主引導(dǎo)扇區(qū)的集合。它實(shí)際上是在上述計(jì)算機(jī)模擬單元4生成虛擬硬盤、軟盤時(shí),按照上述引導(dǎo)型誘餌集生成包含各種如MSDOS、PCDOS、DRDOS、WIN9X等系統(tǒng)的不同版本的引導(dǎo)扇區(qū)及主引導(dǎo)扇區(qū)的虛擬硬盤和軟盤,用來誘發(fā)引導(dǎo)型病毒。
同樣,上述標(biāo)準(zhǔn)誘餌的設(shè)置還可以包括宏病毒誘餌集,包括各種尺寸、各種類型的WORD文件,用于誘發(fā)宏病毒感染。
如圖1所示,所述病毒感染誘發(fā)單元10又稱病毒樣本生成機(jī),利用上述提供的各種誘餌集,進(jìn)行病毒感染誘發(fā)處理,即運(yùn)行所述待查毒文件及其中可能帶有的病毒,盡最大努力讓標(biāo)準(zhǔn)宿主文件即上述各種誘餌感染上病毒的一個(gè)功能單元。染毒判斷單元12判斷是否有任何誘餌在病毒樣本生成機(jī)10中被感染上病毒。具體講,染毒判斷單元12將病毒感染誘發(fā)單元10中將待查毒對(duì)象運(yùn)行后得到的各個(gè)誘餌與運(yùn)行前的各自誘餌進(jìn)行比較,檢查有無改變。如果有任何誘餌在病毒誘發(fā)運(yùn)行前后發(fā)生了改變,則認(rèn)定該待查毒對(duì)象帶毒。同時(shí)該改變后的誘餌文件即為病毒樣本。也就是說,如果病毒樣本生成機(jī)10沒有生成樣本13,說明目標(biāo)文件無毒;若樣本生成機(jī)生成了樣本13,說明目標(biāo)文件有毒并且標(biāo)準(zhǔn)宿主文件(誘餌)成了標(biāo)準(zhǔn)樣本,其體內(nèi)有所有的殺毒信息。按照本發(fā)明的一個(gè)實(shí)例,假設(shè)在上述虛擬DOS環(huán)境中已有DOS內(nèi)存病毒駐留上述虛擬內(nèi)存,病毒樣本生成機(jī)對(duì)DOS exe、DOS com誘餌進(jìn)行執(zhí)行、打開、讀、關(guān)閉、查找等等操作,盡最大努力讓內(nèi)存病毒感染上上述誘餌。被病毒改寫、即感染后的待查毒對(duì)象即為標(biāo)準(zhǔn)樣本13。
對(duì)于文件型病毒,感染上病毒的誘餌文件本身就成為上述標(biāo)準(zhǔn)樣本。對(duì)于引導(dǎo)區(qū)型病毒,所述樣本生成機(jī)10根據(jù)在上述虛擬硬盤或軟盤中的被病毒改變后的引導(dǎo)區(qū)信息,生成上述標(biāo)準(zhǔn)樣本13。
所述標(biāo)準(zhǔn)樣本13是指一個(gè)被病毒感染的標(biāo)準(zhǔn)誘餌或指一個(gè)被病毒感染的標(biāo)準(zhǔn)宿主。標(biāo)準(zhǔn)宿主是病毒分析員對(duì)其大小、內(nèi)容及體系結(jié)構(gòu)都很清楚的可執(zhí)行體,其上面很適合附帶病毒,如感染條件合適的話。
如圖1所示,按照本發(fā)明的一個(gè)實(shí)施例,本發(fā)明的殺毒部分的病毒學(xué)習(xí)機(jī)14,又稱標(biāo)準(zhǔn)樣本分析機(jī),它把上述標(biāo)準(zhǔn)誘餌11與生成的標(biāo)準(zhǔn)樣本13進(jìn)行比較,分析樣本,并從標(biāo)準(zhǔn)樣本中提取出全部的病毒信息或殺毒所必需的信息。此過程叫病毒學(xué)習(xí)機(jī)的學(xué)習(xí)過程。病毒學(xué)習(xí)機(jī)的學(xué)習(xí)過程是一種仿人工殺毒的過程,其不用特征碼,與特征碼殺毒有本質(zhì)區(qū)別。病毒學(xué)習(xí)機(jī)從標(biāo)準(zhǔn)樣本中提取的信息或?qū)W習(xí)的知識(shí)包括病毒的尺寸大小、病毒在文件宿主中的位置、病毒是否加密變型、病毒是否對(duì)宿主進(jìn)行了加密運(yùn)算、或病毒已經(jīng)破壞了宿主程序沒法清除(可以刪除)、病毒是否對(duì)宿主進(jìn)行了重定位、病毒是否把宿主進(jìn)行了節(jié)對(duì)齊、宿主對(duì)象的關(guān)鍵信息(例如宿主程序的入口)的值或位置等等。
例如對(duì)于普通DOS com型病毒,該病毒學(xué)習(xí)機(jī)14提取出兩點(diǎn)知識(shí)1.病毒的尺寸大小;2.宿主對(duì)象原有功能是否完整或病毒是否已經(jīng)破壞了宿主程序的原有功能。其中,采用的得到病毒的尺寸大小的算法之一是用標(biāo)準(zhǔn)樣本的尺寸大小減去標(biāo)準(zhǔn)誘餌(或標(biāo)準(zhǔn)宿主)的尺寸大??;采用的判斷宿主對(duì)象原始功能是否完整的算法是在上述計(jì)算機(jī)模擬單元4中虛擬計(jì)算機(jī)環(huán)境里運(yùn)行標(biāo)準(zhǔn)樣本直到結(jié)束或虛擬計(jì)算機(jī)當(dāng)機(jī),在此過程中如果產(chǎn)生了標(biāo)準(zhǔn)誘餌(或標(biāo)準(zhǔn)宿主)的原始功能,那么宿主對(duì)象原始功能完整,否則宿主對(duì)象原始功能不完整。
傳統(tǒng)的特征碼殺毒方法是用事先由病毒分析員填好的已知病毒特征庫里的信息(數(shù)據(jù)或代碼)來清除病毒的。本發(fā)明的病毒清除單元15是一種仿人工的殺毒單元,它不用病毒分析員填好的已知病毒特征庫來殺毒,而是用病毒學(xué)習(xí)機(jī)14實(shí)時(shí)學(xué)習(xí)得到的病毒知識(shí)來把病毒清除。該模仿人工查殺毒的病毒清除單元15根據(jù)上述病毒學(xué)習(xí)機(jī)14提取的關(guān)于病毒的信息和知識(shí),把病毒學(xué)習(xí)機(jī)14實(shí)時(shí)學(xué)習(xí)得到的病毒知識(shí)運(yùn)用到待殺毒對(duì)象上并清除病毒。該清毒單元的原則是“解鈴還需系鈴人”,病毒樣本生產(chǎn)機(jī)10和病毒學(xué)習(xí)機(jī)14向病毒學(xué)習(xí)病毒的感染過程并分析感染的結(jié)果(標(biāo)準(zhǔn)樣本)得到病毒的數(shù)據(jù)及屬性;病毒的本質(zhì)在于感染和傳播并有一的隱蔽性,也就是說絕大多數(shù)病毒不會(huì)破壞宿主的原始功能,清毒單元15虛擬執(zhí)行病毒,病毒就會(huì)還原宿主對(duì)象,清毒單元把病毒還原的宿主對(duì)象存盤便可(對(duì)于那些在內(nèi)存與在磁盤的存在形式不一樣的對(duì)象,要進(jìn)行相應(yīng)轉(zhuǎn)換)。至于病毒什么時(shí)候還原宿主對(duì)象就的用病毒學(xué)習(xí)機(jī)學(xué)到的病毒屬性來判斷。例如,按照本發(fā)明的一個(gè)實(shí)施例,采用病毒自還原法就是清毒單元15根據(jù)感染過程推理出感染的逆過程即解毒過程的方法之一。如果病毒學(xué)習(xí)機(jī)學(xué)到的病毒屬性或數(shù)據(jù)足夠多的話,就用這些這種屬性或數(shù)據(jù)計(jì)算出原始宿主的關(guān)鍵信息(被病毒改過的信息)從而解毒。用軟件實(shí)時(shí)學(xué)習(xí)并實(shí)時(shí)運(yùn)用的殺毒處理在該清毒單元15得到實(shí)現(xiàn),而這是目前所有查殺毒軟件產(chǎn)品所沒有的。
作為一個(gè)示例,本發(fā)明的清毒單元15清除普通DOS com型病毒的過程如下1.如果標(biāo)準(zhǔn)樣本的原始功能不完整,那么刪除待殺毒文件,否則進(jìn)行下一步;2.把待殺毒的DOS com文件裝入虛擬的計(jì)算機(jī)環(huán)境執(zhí)行至到虛擬CPU程序段寄存器Cs值為程序段前綴段地址并且寄存器IP值為0×0100時(shí)為止;3.計(jì)算待殺毒文件清毒后應(yīng)有尺寸大小,干凈的DOScom文件尺寸大小等于待殺毒DOS com文件尺寸大小減去病毒尺寸大?。?.生成干凈的目標(biāo)DOS com型文件,即把虛擬內(nèi)存CS:IP開始到CS:IP+干凈的DOS com文件尺寸大小的內(nèi)容存為文件。
如果上述病毒學(xué)習(xí)機(jī)14無法學(xué)習(xí)病毒知識(shí)或病毒清除單元16判斷病毒宿主的原始功能已經(jīng)被破壞,則刪除所述待查殺對(duì)象。
圖2A、2B、2C示出了本發(fā)明的查殺病毒的方法的一個(gè)實(shí)施例的處理流程圖。該流程的各個(gè)步驟分別在上述圖1中的各個(gè)處理單元中執(zhí)行,以構(gòu)成完整的查毒和殺毒處理。如圖2A所示,首先,從硬盤、軟盤或互聯(lián)網(wǎng)輸入的數(shù)據(jù)等中待查殺的目標(biāo)對(duì)象19的來源中讀取待查殺的目標(biāo)對(duì)象19(步驟S101),然后判斷該目標(biāo)對(duì)象是否為可能帶毒的對(duì)象(S102)。可能帶毒的對(duì)象,顧名思義就是從理論上說該對(duì)象有被病毒感染的可能性,但不一定帶毒??赡軒Ф緦?duì)象一定是一個(gè)可執(zhí)行體,例如*.exe、*.com、*.bat、.doc、PE和NE文件、磁盤引導(dǎo)扇區(qū)及主引導(dǎo)扇區(qū),等等。一個(gè)不可執(zhí)行體不可能是一個(gè)可能帶毒對(duì)象,例如*.txt。
如果在步驟S102中,判斷所述目標(biāo)對(duì)象是可能帶毒對(duì)象,則進(jìn)至步驟S103,進(jìn)行查殺毒處理;如判斷該對(duì)象不可能帶毒,如為不可執(zhí)行體,例如*.txt,則判斷該目標(biāo)對(duì)象無毒;如目標(biāo)對(duì)象未知,則報(bào)告目標(biāo)對(duì)象為未知對(duì)象。
在步驟S103中,由所述計(jì)算機(jī)模擬單元4生成生成一個(gè)模擬的計(jì)算機(jī)環(huán)境,包括生成虛擬CPU,虛擬OS,虛擬外部存儲(chǔ)設(shè)備(硬盤,軟盤),虛擬內(nèi)存、虛擬系統(tǒng)時(shí)間等,以便在其中虛擬運(yùn)行所述可能帶毒對(duì)象。在步驟S104,提供多個(gè)計(jì)算機(jī)病毒可能感染的感染對(duì)象,即圖1中的標(biāo)準(zhǔn)誘餌11,包括上述的文件型誘餌集和所述虛擬硬盤、軟盤等的引導(dǎo)扇區(qū)誘餌集等。在步驟S105,裝入所述待查殺對(duì)象19到所述生成的虛擬計(jì)算機(jī)環(huán)境中。在步驟S106,在所述模擬的計(jì)算機(jī)環(huán)境中激活附在所述待查毒對(duì)象上的病毒,即用上述設(shè)置的各種誘餌去誘發(fā)可能的病毒對(duì)上述虛擬計(jì)算機(jī)環(huán)境及各種誘餌文件的感染。在一方面,在步驟S107中,判斷是否有誘餌被感染,另一方面,在步驟S108中判斷該虛擬的計(jì)算機(jī)環(huán)境是否帶毒,即判斷所述虛擬的內(nèi)存中是否帶毒,所述虛擬的各種硬盤的引導(dǎo)扇區(qū)是否帶毒,和所述虛擬的軟盤的引導(dǎo)扇區(qū)中是否帶毒。在步驟S107中,如判斷有誘餌被感染,則進(jìn)至圖2B中的步驟S111;否則,報(bào)告目標(biāo)對(duì)象無毒。在步驟S108中,如判斷該虛擬環(huán)境帶毒,則進(jìn)至圖2B中的步驟S110,對(duì)虛擬計(jì)算機(jī)環(huán)境里的誘餌進(jìn)行盡可能多的操作,以盡量誘發(fā)帶毒對(duì)各種誘餌的感染,然后進(jìn)到步驟S107,再判斷是否有誘餌被感染。
如圖2B所示,步驟S111報(bào)告所示待查毒對(duì)象有毒,產(chǎn)生標(biāo)準(zhǔn)樣本,并分析病毒類型,如該病毒是DOS病毒、宏病毒、引導(dǎo)扇區(qū)病毒等等。之后進(jìn)至步驟S112,提示用戶是否需要?dú)⒍?。如用戶不需要?dú)⒍荆瑒t給出目標(biāo)對(duì)象帶毒的報(bào)告,然后在步驟S109,查毒結(jié)束。如用戶需要?dú)⒍荆M(jìn)至步驟S113。
在步驟S113中,提取出在虛擬計(jì)算機(jī)環(huán)境中生成的所有標(biāo)準(zhǔn)樣本,然后在步驟S114中,利用所述病毒學(xué)習(xí)機(jī)14來分析生成的標(biāo)準(zhǔn)樣本,其中主要是判斷標(biāo)準(zhǔn)樣本的原始功能(即標(biāo)準(zhǔn)誘餌的功能)是否完整。在步驟S115,判斷標(biāo)準(zhǔn)宿主的原始功能(感染前的功能)是否完整,如判斷不完整,則進(jìn)至步驟S116;如判斷為完整的,則進(jìn)至圖2C中的步驟S120。
在步驟S116中,確定病毒宿主的原始功能已經(jīng)被病毒破壞無法清除只有刪除。在步驟S117,詢問用戶是否刪除該帶毒文件,若是則刪除該待查毒文件(步驟S118),若否,殺毒結(jié)束(步驟S119)。
如圖2C所示,在步驟S120中,所述病毒學(xué)習(xí)機(jī)14從標(biāo)準(zhǔn)樣本中學(xué)習(xí)所有有關(guān)病毒的知識(shí),盡最大努力學(xué)到清毒所需的病毒關(guān)鍵數(shù)據(jù)或?qū)傩灾恋綄W(xué)夠了為止。例如一個(gè)DOS com型病毒學(xué)到以下知識(shí)序列便夠1.病毒不加密不變形不變長;2.病毒的尺寸virus_size;3.病毒只改了宿主的頭三個(gè)字節(jié);4.病毒存放宿主的頭三個(gè)字節(jié)的位置data_offset_in_virus(相對(duì)病毒體)。
然后在步驟S121中,病毒清除單元15利用病毒學(xué)習(xí)機(jī)14所學(xué)到的病毒關(guān)鍵數(shù)據(jù)或?qū)傩栽诖龤⒍緦?duì)象(宿主對(duì)象)中的病毒體內(nèi)查找或計(jì)算原始宿主中被病毒修改過的關(guān)鍵數(shù)據(jù)或?qū)傩?。例如一個(gè)有下列屬性的DOS com病毒1.病毒不加密不變形不變長;2.病毒的尺寸virus_size;3.病毒只改了宿主的頭三個(gè)字節(jié);4.病毒存放宿主的頭三個(gè)字節(jié)的位置data_offset_in_virus(相對(duì)病毒體)。清除上序病毒步驟如下1.計(jì)算病毒體在文件中的位置virus_offset_in_file等于待殺毒文件的尺寸fils_size減去病毒的尺寸virus_size;2.計(jì)算宿主的頭三個(gè)字節(jié)的位置data_offset_in_file(相對(duì)宿主文件)等于virus_offset_in_file+data_offset_in_virus;3.用data_offset_in_file處的三字節(jié)修復(fù)宿主文件的頭三字節(jié);4.把待殺毒文件從尾部砍掉virus_size字節(jié)。
在步驟S122中,判斷病毒修改過的宿主信息的原始值是否計(jì)算成功。如否,則殺毒失敗(步驟S125);如是,則進(jìn)至步驟S123。
在步驟S123中,修復(fù)待殺毒對(duì)象(宿主對(duì)象)的被病毒修改過的數(shù)據(jù)或?qū)傩?,例如文件尺寸、文件頭數(shù)據(jù)等,這樣,就清除了病毒。
在步驟S124,報(bào)告殺毒成功。然后,進(jìn)至步驟S119,殺毒結(jié)束。
本發(fā)明的上述查殺毒的方法及其各個(gè)查殺毒單元都可以通過用普通的計(jì)算機(jī)編程語言(如C語言等)編制相應(yīng)的軟件來實(shí)現(xiàn),該軟件可以裝在計(jì)算機(jī)中運(yùn)行;可以包含在軟盤中進(jìn)行銷售和運(yùn)行使用;也可以通過網(wǎng)絡(luò)及互聯(lián)網(wǎng)的形式進(jìn)行傳輸和下載,并加以運(yùn)行。
在本發(fā)明的用軟件實(shí)現(xiàn)的所述查殺病毒的計(jì)算機(jī)系統(tǒng)和方法中,能夠利用計(jì)算機(jī)病毒的根本特性感染性,來查出病毒,并實(shí)時(shí)學(xué)習(xí)和實(shí)時(shí)運(yùn)用有關(guān)病毒的知識(shí),這是目前所有查殺毒軟件產(chǎn)品所沒有的。本發(fā)明判定病毒的方法是根據(jù)“結(jié)果”,而不是根據(jù)行為,可以稱其為行為結(jié)果判定技術(shù)。當(dāng)然,本發(fā)明的方法也知道病毒的行為,而且知道病毒的每一種行為和行為的結(jié)果,根據(jù)這些行為和結(jié)果,可以安全地把病毒清除,但是不對(duì)單獨(dú)的行為(如寫盤)進(jìn)行判斷,所以可以節(jié)省很多時(shí)間,速度較快。并且,本發(fā)明在實(shí)際內(nèi)存中用一小區(qū)域提供了病毒生存繁殖的模擬環(huán)境,使得處理速度足夠快,從而使盡量誘發(fā)病毒感染能夠?qū)嶋H實(shí)現(xiàn)。
采用本發(fā)明的查殺病毒的計(jì)算機(jī)系統(tǒng)和方法,絕大多數(shù)已知和未知病毒不再需要人工分析,不需病毒特征庫就能將其查殺;能及時(shí)發(fā)現(xiàn)新出現(xiàn)的病毒;能查殺的病毒數(shù)量不再受限制,有多少查殺多少;并且,采用本發(fā)明的反病毒軟件不再落后于病毒,能夠可靠地發(fā)現(xiàn)和殺除未知的病毒。
雖然本發(fā)明已以前述優(yōu)選實(shí)施例說明,然其并非用于限制本發(fā)明,任何本領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,可作各種的更動(dòng)與修改。因此本發(fā)明的保護(hù)范圍以后附的權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種檢測(cè)和清除計(jì)算機(jī)病毒的方法,其特征在于,包括以下步驟計(jì)算機(jī)模擬步驟,在一臺(tái)計(jì)算機(jī)上模擬一個(gè)計(jì)算機(jī)病毒賴以生存的虛擬計(jì)算機(jī)環(huán)境;提供多個(gè)計(jì)算機(jī)病毒可能感染的感染對(duì)象,即誘餌,用于誘發(fā)病毒感染;裝入待檢測(cè)對(duì)象到所述模擬的計(jì)算機(jī)環(huán)境中;在所述模擬的計(jì)算機(jī)環(huán)境中激活該待檢測(cè)對(duì)象,以誘發(fā)附在所述待測(cè)對(duì)象上的病毒對(duì)所述多個(gè)感染對(duì)象進(jìn)行感染,并生成感染后的標(biāo)準(zhǔn)樣本;將運(yùn)行后的所述多個(gè)感染對(duì)象與原始提供的多個(gè)感染對(duì)象進(jìn)行比較分析,判斷有無改變,如有改變,判斷所述待檢測(cè)對(duì)象帶有病毒;如無改變,判斷其沒有病毒。
2.如權(quán)利要求1所述的方法,還包括以下步驟病毒分析和學(xué)習(xí)步驟,用于在所述病毒判斷步驟判斷有病毒時(shí),對(duì)生成的標(biāo)準(zhǔn)樣本進(jìn)行分析,并從標(biāo)準(zhǔn)樣本中提取關(guān)于病毒的信息和知識(shí);病毒清除步驟,用于根據(jù)所述關(guān)于病毒的信息和知識(shí),根據(jù)病毒對(duì)所述感染對(duì)象即誘餌的改變,對(duì)所述帶病毒的待檢測(cè)對(duì)象進(jìn)行相應(yīng)的清除病毒體并修正改病毒修改過的關(guān)鍵信息從而清除病毒。
3.如權(quán)利要求1或2所述的方法,其中所述計(jì)算機(jī)模擬步驟包括提供功能函數(shù)來調(diào)用和執(zhí)行以下步驟中央處理器(CPU)模擬步驟,用于模擬CPU的指令;操作系統(tǒng)(OS)模擬步驟,用于模擬OS提供的各種服務(wù)和各種數(shù)據(jù)結(jié)構(gòu);外部存儲(chǔ)設(shè)備模擬步驟,包括模擬硬盤、軟盤等設(shè)備的存儲(chǔ)空間及結(jié)構(gòu);和內(nèi)存模擬步驟,用于生成、分配和管理一模擬的內(nèi)存空間。
4.如權(quán)利要求3所述的方法,其中所述提供的感染對(duì)象包括不同大小不同內(nèi)容的各種類型的誘餌集,用于誘發(fā)不同類型不同感染條件的病毒,包括DOS文件型誘餌,用于DOS com型文件誘發(fā)DOS com型病毒;用模擬的DOS引導(dǎo)扇區(qū),用于誘發(fā)DOS引導(dǎo)扇區(qū)型病毒;WORD文件型誘餌,用于誘發(fā)宏病毒等等。
5.如權(quán)利要求4所述的方法,其中對(duì)同一種類的病毒提供不同大小不同內(nèi)容的多種誘餌,盡最大可能的滿足待查毒對(duì)象里的病毒的感染條件。
6.如權(quán)利要求5所述的方法,其中還包括系統(tǒng)時(shí)間模擬步驟,生成虛擬的系統(tǒng)時(shí)間,用于誘發(fā)對(duì)時(shí)間敏感的病毒。
7.如權(quán)利要6所述的方法,其中所述模擬OS包括模擬DOS,WINDOWS,UNIX等多種操作系統(tǒng)之一。
8.如權(quán)利要求2所述的方法,在所述病毒清除步驟中,虛擬執(zhí)行病毒,使被感染的宿主對(duì)象即被判斷為帶有病毒的所述待檢測(cè)對(duì)象還原,從而清除病毒。
9.如權(quán)利要求3所述的方法,其中在所述外部存儲(chǔ)設(shè)備模擬步驟中,在內(nèi)存中開辟一塊小的內(nèi)存空間來模擬硬盤,使內(nèi)存空間的虛擬硬盤具有跟正常硬盤一樣的結(jié)構(gòu),包括扇區(qū)號(hào)、磁道號(hào)、柱面號(hào)的三維空間概念,主引導(dǎo)扇區(qū)和對(duì)應(yīng)的0道中的空閑扇區(qū),緊接著有引導(dǎo)區(qū),文件分配表,根目錄區(qū),還有所需的系統(tǒng)文件,以及所述用來誘發(fā)病毒的誘餌文件等。
10.如權(quán)利要求3所述的方法,其中在所述外部存儲(chǔ)設(shè)備模擬步驟中,在內(nèi)存中開辟一塊小的內(nèi)存空間來模擬軟盤,使內(nèi)存空間的虛擬軟硬盤具有跟正常軟盤一樣的結(jié)構(gòu),包括引導(dǎo)區(qū),文件分配表,根目錄區(qū),還有所需的系統(tǒng)文件,以及所述用來誘發(fā)病毒的誘餌文件等。
11.一種檢測(cè)和清除計(jì)算機(jī)病毒的計(jì)算機(jī)系統(tǒng),包括一普通的計(jì)算機(jī),其特征在于,該系統(tǒng)包括計(jì)算機(jī)模擬單元,在一臺(tái)計(jì)算機(jī)上模擬一個(gè)計(jì)算機(jī)病毒賴以生存的虛擬計(jì)算機(jī)環(huán)境;多個(gè)計(jì)算機(jī)病毒可能感染的感染對(duì)象,即誘餌,用于誘發(fā)病毒感染;控制單元,用于裝入待檢測(cè)對(duì)象到所述模擬的計(jì)算機(jī)環(huán)境中;病毒感染誘發(fā)單元,用于在所述模擬的計(jì)算機(jī)環(huán)境中激活該待檢測(cè)對(duì)象,以誘發(fā)附在所述待測(cè)對(duì)象上的病毒對(duì)所述多個(gè)感染對(duì)象進(jìn)行感染,并生成感染后的標(biāo)準(zhǔn)樣本;病毒判斷單元,用于將運(yùn)行后的所述多個(gè)感染對(duì)象與原始提供的多個(gè)感染對(duì)象進(jìn)行比較分析,判斷有無改變,如有改變,判斷所述待檢測(cè)對(duì)象帶有病毒;如無改變,判斷其沒有病毒。
12.如權(quán)利要求11所述的系統(tǒng),還包括病毒分析和學(xué)習(xí)機(jī),用于在所述病毒判斷步驟判斷有病毒時(shí),對(duì)生成的標(biāo)準(zhǔn)樣本進(jìn)行分析,并從標(biāo)準(zhǔn)樣本中提取關(guān)于病毒的信息和知識(shí);病毒清除單元,用于根據(jù)所述關(guān)于病毒的信息和知識(shí),根據(jù)病毒對(duì)所述感染對(duì)象即誘餌的改變,對(duì)所述帶病毒的待檢測(cè)對(duì)象進(jìn)行相應(yīng)的清除病毒體和修正改病毒修改過的關(guān)鍵信息從而清除病毒。
13.如權(quán)利要求11或12所述的系統(tǒng),其中所述計(jì)算機(jī)模擬單元包括中央處理器(CPU)模擬單元,用于模擬CPU的指令;操作系統(tǒng)(OS)模擬單元,用于模擬OS提供的各種服務(wù)和各種數(shù)據(jù)結(jié)構(gòu);外部存儲(chǔ)設(shè)備模擬單元,包括模擬硬盤、軟盤等設(shè)備的存儲(chǔ)空間及結(jié)構(gòu);和內(nèi)存模擬單元,用于生成、分配和管理一模擬的內(nèi)存空間,所述的各個(gè)單元都是一些可調(diào)用的功能函數(shù)和分配的內(nèi)存空間,不依賴于具體的CPU、OS及外部存儲(chǔ)設(shè)備。
14.如權(quán)利要求13所述的系統(tǒng),其中所述提供的感染對(duì)象包括不同大小不同內(nèi)容的各種類型的誘餌集,用于誘發(fā)不同類型不同感染條件的病毒,包括DOS文件型誘餌,用于DOS com型文件誘發(fā)DOS com型病毒;用模擬的DOS引導(dǎo)扇區(qū),用于誘發(fā)DOS引導(dǎo)扇區(qū)型病毒;WORD文件型誘餌,用于誘發(fā)宏病毒等等。
15.如權(quán)利要求14所述的系統(tǒng),其中對(duì)同一種類的病毒提供不同大小不同內(nèi)容的多種誘餌,盡最大可能的滿足待查毒對(duì)象里的病毒的感染條件。
16.如權(quán)利要求15所述的系統(tǒng),其中還包括系統(tǒng)時(shí)間模擬單元,用于生成虛擬的系統(tǒng)時(shí)間,以誘發(fā)對(duì)時(shí)間敏感的病毒。
17.如權(quán)利要求16所述的系統(tǒng),其中所述模擬OS包括模擬DOS,WINDOWS,UNIX等多種操作系統(tǒng)之一。
18.如權(quán)利要求12所述的系統(tǒng),所述病毒清除單元虛擬執(zhí)行病毒,使被感染的宿主對(duì)象即被判斷為帶有病毒的所述待檢測(cè)對(duì)象還原,從而清除病毒。
19.如權(quán)利要求13所述的系統(tǒng),其中所述外部存儲(chǔ)設(shè)備模擬單元在內(nèi)存中開辟一塊小的內(nèi)存空間來模擬硬盤,使內(nèi)存空間的虛擬硬盤具有跟正常硬盤一樣的結(jié)構(gòu),包括扇區(qū)號(hào)、磁道號(hào)、柱面號(hào)的三維空間概念,主引導(dǎo)扇區(qū)和對(duì)應(yīng)的0道中的空閑扇區(qū),緊接著有引導(dǎo)區(qū),文件分配表,根目錄區(qū),還有所需的系統(tǒng)文件,以及所述用來誘發(fā)病毒的誘餌文件等。
20.如權(quán)利要求13所述的系統(tǒng),其中所述外部存儲(chǔ)設(shè)備模擬單元在內(nèi)存中開辟一塊小的內(nèi)存空間來模擬軟盤,使內(nèi)存空間的虛擬軟硬盤具有跟正常軟盤一樣的結(jié)構(gòu),包括引導(dǎo)區(qū),文件分配表,根目錄區(qū),還有所需的系統(tǒng)文件,以及所述用來誘發(fā)病毒的誘餌文件等。
21.一種計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì),用于使計(jì)算機(jī)執(zhí)行權(quán)利要求1-10的方法中的各個(gè)步驟。
22.一種傳輸介質(zhì),用于通過網(wǎng)絡(luò)傳輸使計(jì)算機(jī)執(zhí)行權(quán)利要求1-10的方法中的各個(gè)步驟。
全文摘要
檢測(cè)和清除計(jì)算機(jī)病毒的方法、系統(tǒng)和介質(zhì),包括:計(jì)算機(jī)模擬步驟,模擬計(jì)算機(jī)環(huán)境;提供多個(gè)病毒感染對(duì)象,即誘餌;裝入待檢測(cè)對(duì)象到模擬計(jì)算機(jī)環(huán)境中并激活,以誘發(fā)病毒感染,并生成感染后的標(biāo)準(zhǔn)樣本;將感染對(duì)象與原始感染對(duì)象進(jìn)行比較分析,判斷有無病毒;病毒分析和學(xué)習(xí)步驟,對(duì)標(biāo)準(zhǔn)樣本進(jìn)行分析,并提取關(guān)于病毒的信息和知識(shí);病毒清除步驟,清除病毒體并修正病毒修改過的關(guān)鍵信息來清除病毒。可有效檢測(cè)殺除已知和未知病毒。
文檔編號(hào)G06F1/00GK1314638SQ0111772
公開日2001年9月26日 申請(qǐng)日期2001年4月29日 優(yōu)先權(quán)日2001年4月29日
發(fā)明者唐昭妙 申請(qǐng)人:北京瑞星科技股份有限公司