專利名稱:未知病毒程序的識(shí)別及清除方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種未知病毒程序的識(shí)別及清除方法,特別是涉及一種對(duì)于未知病毒程序的識(shí)別方法以及清除該病毒程序的方法。
背景技術(shù):
通常的反病毒程序中,對(duì)于病毒程序的識(shí)別通常采用特征代碼掃描技術(shù)。反病毒程序由兩部分組成一部分是病毒程序代碼庫,含有經(jīng)過特別選定的各種計(jì)算機(jī)病毒程序的特征代碼串;另一部分是利用該代碼庫對(duì)待檢測程序進(jìn)行掃描的掃描程序和清除程序。通過查找待檢測程序中是否存在病毒程序代碼庫中的特征代碼串來判斷待檢測程序是否為病毒程序。病毒程序掃描程序能識(shí)別的計(jì)算機(jī)病毒程序的數(shù)目完全取決于病毒程序代碼庫內(nèi)所含病毒程序的特征代碼串的數(shù)量有多少。顯而易見,所述病毒程序代碼庫中病毒程序代碼特征代碼串的數(shù)量越多,掃描程序能識(shí)別出的病毒程序就越多。特征碼查毒方案實(shí)際上是人工查毒經(jīng)驗(yàn)的簡單表述,它再現(xiàn)了人工辨識(shí)病毒程序的一般方法,采用了“同一病毒程序或同類病毒程序的某一部分代碼相同”的原理,也就是說,如果病毒程序及其變種、變形病毒程序具有同一性,則可以對(duì)這種同一性進(jìn)行描述,并通過對(duì)程序體與描述結(jié)果(亦即“特征碼”)進(jìn)行比較來查找病毒程序。但是并非所有病毒程序都可以描述其特征碼,很多病毒程序都難以描述,甚至無法用特征碼進(jìn)行描述。并且特征碼識(shí)別方法需要技術(shù)人員預(yù)先分析得出病毒程序的特征碼,所以實(shí)際上只能識(shí)別已知病毒程序,對(duì)未知病毒程序不能進(jìn)行有效的識(shí)別和清除。
申請(qǐng)?zhí)枮?1117726.8號(hào)的中國發(fā)明專利公開了一種采用病毒程序行為感染實(shí)驗(yàn)法診斷病毒程序的方法。該方法是指先運(yùn)行待檢測程序,再運(yùn)行足夠多的確切知道不帶毒的正常程序作為誘餌,然后觀察這些正常程序的長度和校驗(yàn)和,如果發(fā)現(xiàn)有的程序長度增長,或者校驗(yàn)和發(fā)生變化等情況,就可以判斷出該待檢測程序是否為病毒程序。當(dāng)然,為了保證本計(jì)算機(jī)系統(tǒng)的安全,一般都會(huì)利用程序模擬一個(gè)CPU,它可以像真正CPU一樣取值,譯碼,執(zhí)行,以及模擬一段代碼在真正CPU上運(yùn)行得到的結(jié)果。但是由于所述的病毒程序行為感染分析法需要模擬一個(gè)CPU,甚至整個(gè)操作系統(tǒng),以及需要采用足夠多的誘餌誘發(fā)待檢測程序,所以會(huì)導(dǎo)致所述方法占用較大的系統(tǒng)空間以及識(shí)別病毒程序的效率低下。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明要解決的技術(shù)問題是提供一種不僅僅能識(shí)別已知病毒程序,也可以識(shí)別未知病毒程序的未知病毒程序的識(shí)別方法以及清除方法。
為解決上述技術(shù)問題,本發(fā)明提出了一種未知病毒程序的識(shí)別方法,包括獲取待檢測程序的行為數(shù)據(jù);根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合以及預(yù)置的病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合,判斷所述待檢測程序是否為病毒程序。
所述方法還包括建立經(jīng)驗(yàn)庫,用于存儲(chǔ)病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)的集合,以及存儲(chǔ)病毒程序從行為數(shù)據(jù)到結(jié)果數(shù)據(jù)的過程表達(dá)式,所述過程表達(dá)式包括行為數(shù)據(jù)和結(jié)果數(shù)據(jù)以及從行為到結(jié)果的對(duì)應(yīng)關(guān)系數(shù)據(jù);以及,將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合與所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)進(jìn)行比較,得到所述行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù)。
所述方法還包括建立原則庫,用于存儲(chǔ)病毒程序的破壞性操作結(jié)果數(shù)據(jù);以及,比較行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù)以及所述原則庫中的破壞性操作結(jié)果數(shù)據(jù),判斷所述待檢測程序是否為病毒程序。
所述方法還可以只包括建立經(jīng)驗(yàn)庫,用于存儲(chǔ)病毒程序從行為到結(jié)果的過程表達(dá)式,所述過程表達(dá)式包括病毒程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合、結(jié)果數(shù)據(jù)、從行為到結(jié)果的對(duì)應(yīng)關(guān)系數(shù)據(jù)以及結(jié)果數(shù)據(jù)的各種排列組合的集合;以及,將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合與所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)或行為數(shù)據(jù)集合進(jìn)行比較,得到所述行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù);以及,將所述操作結(jié)果數(shù)據(jù)與所述經(jīng)驗(yàn)庫中的結(jié)果數(shù)據(jù)、以及結(jié)果數(shù)據(jù)的各種排列組合的集合進(jìn)行比較,判斷所述待檢測程序是否為病毒程序。
所述方法還包括對(duì)所述待檢測程序進(jìn)行特征碼識(shí)別,判斷所述待檢測程序是否為病毒程序。
所述方法還包括將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合按照經(jīng)驗(yàn)庫中行為數(shù)據(jù)或者行為數(shù)據(jù)集合的順序進(jìn)行排列。
本發(fā)明可以按照下述步驟獲取待檢測程序的行為數(shù)據(jù)獲得已知病毒程序的破壞性行為數(shù)據(jù);根據(jù)所述破壞性行為數(shù)據(jù)設(shè)置對(duì)應(yīng)的控制處理程序;使控制處理程序獲得對(duì)所述破壞性行為數(shù)據(jù)操作的控制權(quán);待檢測程序的破壞性行為數(shù)據(jù)調(diào)用相應(yīng)的控制處理程序,由所述控制處理程序記錄所述待檢測程序的行為數(shù)據(jù)。
所述方法還包括如果所述待檢測程序被判定為病毒程序,則將所述待檢測程序的行為數(shù)據(jù)存儲(chǔ)至所述經(jīng)驗(yàn)庫中的行為信息中,將所述待檢測程序行為對(duì)應(yīng)的結(jié)果數(shù)據(jù)存儲(chǔ)至所述經(jīng)驗(yàn)庫中的結(jié)果信息中,并建立所述待檢測程序的行為數(shù)據(jù)和結(jié)果數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系。
所述方法還包括如果所述待檢測程序被判定為病毒程序,則將所述待檢測程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合存儲(chǔ)為病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合。
所述方法還包括如果所述待檢測程序被判定為病毒程序,存儲(chǔ)病毒程序的破壞性操作結(jié)果數(shù)據(jù)或破壞性操作結(jié)果數(shù)據(jù)排列組合后的數(shù)據(jù)集合。
所述方法還包括建立有害行為庫,用于存儲(chǔ)病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合。
本發(fā)明提供的未知病毒程序的清除方法,包括獲取待檢測程序的行為數(shù)據(jù);根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合以及預(yù)置的典型病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合,判斷所述待檢測程序是否為病毒程序;如果判定所述待檢測程序是病毒程序,則清除所述待檢測程序。
所述未知病毒程序的清除方法,還包括如果判定所述待檢測程序是病毒程序,根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合,建立對(duì)應(yīng)的逆行為操作步驟;執(zhí)行所述逆行為操作步驟。
與現(xiàn)有技術(shù)相比,本發(fā)明具有至少以下的優(yōu)點(diǎn)本發(fā)明通過實(shí)踐中總結(jié),得出一些典型病毒程序的典型行為,獲取待檢測程序的行為數(shù)據(jù),進(jìn)行行為的比較,從而判斷所述待檢測程序是否為病毒程序。所以本專利不僅僅能識(shí)別已知病毒程序,也可以相當(dāng)準(zhǔn)確的識(shí)別多數(shù)的未知病毒程序。
本發(fā)明通過經(jīng)驗(yàn)庫或者原則庫存儲(chǔ)病毒程序的一些信息,通過一定的比較或者邏輯分析過程,即同時(shí)考慮所述待檢測程序的行為和結(jié)果,故可以實(shí)現(xiàn)未知病毒程序的精確識(shí)別,提高未知病毒程序識(shí)別的準(zhǔn)確度和效率。并且所述的經(jīng)驗(yàn)庫和原則庫還可以在識(shí)別未知病毒程序的過程中進(jìn)行自動(dòng)完善,故可以提高未知病毒程序識(shí)別的準(zhǔn)確度和效率。
本發(fā)明還提供了一種未知病毒程序的清除方法,不僅可以清除病毒程序,并且可以根據(jù)所述病毒程序的行為,建立并執(zhí)行所述病毒程序的逆行為操作,故可以實(shí)現(xiàn)對(duì)被病毒程序破壞的數(shù)據(jù)的恢復(fù),以解決雖然清除了病毒程序卻不能恢復(fù)被破壞的數(shù)據(jù)的問題。
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
圖1是本發(fā)明所述未知病毒程序識(shí)別方法的第一實(shí)施例的步驟流程圖;圖2是本發(fā)明所述未知病毒程序識(shí)別方法的第二實(shí)施例的步驟流程圖;圖3是本發(fā)明所述未知病毒程序識(shí)別方法中的獲取待檢測程序的行為數(shù)據(jù)的步驟流程圖;圖4是本發(fā)明所述未知病毒程序識(shí)別及清除方法的步驟流程圖;圖5是系統(tǒng)功能調(diào)用表的結(jié)構(gòu)示意圖;圖6是系統(tǒng)功能調(diào)用程序?qū)嶋H存儲(chǔ)區(qū)的示意圖;圖7是圖5所示的系統(tǒng)功能調(diào)用表存儲(chǔ)有相應(yīng)的控制處理程序時(shí)的結(jié)構(gòu)示意圖;圖8是圖7所示存儲(chǔ)實(shí)例的功能調(diào)用程序?qū)嶋H存儲(chǔ)區(qū)的示意圖;圖9是存儲(chǔ)有所述控制處理程序的一個(gè)獨(dú)立的操作行為調(diào)用表的結(jié)構(gòu)示意圖;圖10是將所有控制處理程序存儲(chǔ)為另一個(gè)獨(dú)立的操作行為調(diào)用表的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明的核心思想在于獲取待檢測程序的行為數(shù)據(jù),并與已經(jīng)獲得的病毒程序的特殊行為數(shù)據(jù),即與破壞性操作有關(guān)的行為數(shù)據(jù)進(jìn)行比較,從而判斷所述待檢測程序是否為病毒程序。所以本發(fā)明方法不僅僅能識(shí)別已知病毒程序,通過行為數(shù)據(jù)的比較,也可以識(shí)別出多數(shù)的未知病毒程序。
參照?qǐng)D1,是本發(fā)明所述未知病毒程序識(shí)別方法的第一實(shí)施例的流程圖。
圖1所述的方法包括以下步驟步驟s1,獲取待檢測程序的行為數(shù)據(jù)。所述待檢測程序的行為數(shù)據(jù),其實(shí)質(zhì)就是一系列能夠完成特定功能或結(jié)果的源代碼序列塊,即能夠完成特定功能或結(jié)果的程序操作指令或以及程序操作指令和操作參數(shù)或具體的程序操作指令的集合或程序操作指令以及操作參數(shù)的集合。所述的序列塊可以由反病毒技術(shù)人員人工和借助輔助程序分析得出,采用一般分析病毒程序的方式對(duì)該待檢測程序進(jìn)行分析即可。所述分析過程除了反病毒技術(shù)人員之外,還需要DEBUG、PROVIEW等分析用工具程序和專用的試驗(yàn)用計(jì)算機(jī)。因?yàn)樗龃龣z測程序?yàn)椴《境绦颍锌赡茉诒环治鲭A段繼續(xù)傳染甚至發(fā)作,把軟盤、硬盤內(nèi)的數(shù)據(jù)完全破壞,這就要求分析操作必須在專門設(shè)立的試驗(yàn)用PC機(jī)上進(jìn)行,一面帶來不必要的損失。
通常的分析病毒程序的步驟可以分為動(dòng)態(tài)和靜態(tài)兩種。所述動(dòng)態(tài)分析則是指利用DEBUG等程序調(diào)試工具在內(nèi)存加載病毒程序的情況下,對(duì)病毒程序做動(dòng)態(tài)跟蹤,觀察病毒程序的具體工作過程,以理解病毒程序工作的原理。在病毒程序編碼比較簡單時(shí),動(dòng)態(tài)分析不是必須的。但當(dāng)病毒程序采用了較多的技術(shù)手段時(shí),則必須使用動(dòng)、靜態(tài)相結(jié)合的分析方法才能完成整個(gè)分析過程。例如F_lip病毒程序采用隨機(jī)加密的手段,利用對(duì)病毒程序解密程序的動(dòng)態(tài)分析才能完成解密工作,從而進(jìn)行下一步的靜態(tài)分析。所述靜態(tài)分析是指利用DEBUG等反匯編程序?qū)⒉《境绦虼a形成反匯編后的程序清單進(jìn)行分析,看病毒程序可以分為哪些模塊,使用了哪些系統(tǒng)調(diào)用功能程序,采用了哪些技巧,如何將病毒程序感染文件的過程轉(zhuǎn)化為清除病毒程序、修復(fù)文件的過程,哪些代碼可被用做特征碼以及如何防御這種病毒程序?qū)е碌钠茐牡取?br>
現(xiàn)有技術(shù)中,如果進(jìn)行上述分析,能夠獲得病毒程序的特征碼,存入病毒程序特征碼庫中,以后即可根據(jù)特征碼實(shí)現(xiàn)病毒程序的識(shí)別。由于特征碼識(shí)別法只能識(shí)別已知的病毒程序,因此,為識(shí)別出未知病毒程序,在本實(shí)施方式中需要分析得出所述待檢測程序的行為操作數(shù)據(jù),即一系列完成特定功能或結(jié)果的源代碼序列塊,根據(jù)所述源代碼序列塊判斷所述待檢測程序是否為病毒程序。當(dāng)然,所述獲取待檢測程序行為數(shù)據(jù)的步驟也可以由計(jì)算機(jī)自行完成,該部分的實(shí)施例在后面進(jìn)行詳述。
步驟s2,根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合以及預(yù)置的病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合,判斷所述待檢測程序是否為病毒程序。
所述預(yù)置的病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合可以采用數(shù)據(jù)庫的方式進(jìn)行存儲(chǔ),以方便存儲(chǔ)和調(diào)用。所述病毒程序的行為數(shù)據(jù)可以通過上述的人工分析過程或者計(jì)算機(jī)分析過程得出,也可以直接采用現(xiàn)有的對(duì)病毒程序的行為分析結(jié)果。所述病毒程序的行為數(shù)據(jù)也就是符合一定條件的源代碼序列塊。
將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合,與預(yù)置的病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合進(jìn)行比較,就可以判斷出所述待檢測程序是否為病毒程序。當(dāng)然,也可以采用其他本領(lǐng)域技術(shù)人員熟悉的分析方法,達(dá)到判斷所述待檢測程序是否為病毒程序之目的。所述判斷采用的規(guī)則可以是本領(lǐng)域技術(shù)人員根據(jù)經(jīng)驗(yàn)得出的,可能存在相當(dāng)?shù)牟町悾?dāng)然,這些規(guī)則都可以給出所述待檢測程序是病毒程序或者不是病毒程序的判斷結(jié)果,只不過判斷的準(zhǔn)確度有一些差異而已。而且由于采用的分析方法的不同肯定會(huì)導(dǎo)致判斷采用的規(guī)則有所不同,所以本文在此不對(duì)采用的分析方法和判斷的規(guī)則作一定的限制,只要利用了本發(fā)明所述的行為數(shù)據(jù)比較的方式就在本發(fā)明的構(gòu)思之內(nèi)。以下以一種判斷規(guī)則為例進(jìn)行說明。
可以通過步驟s1中的人工或者計(jì)算機(jī)分析的過程,對(duì)已知的病毒程序進(jìn)行分析,得出已知病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)的集合(下文統(tǒng)一稱為行為數(shù)據(jù)),并可以將所述行為數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中,本文將該數(shù)據(jù)庫稱為有害行為數(shù)據(jù)庫。所述有害行為數(shù)據(jù)庫中存儲(chǔ)的是各種病毒程序的一系列行為操作數(shù)據(jù),所述病毒程序的行為操作數(shù)據(jù)還可以是經(jīng)過技術(shù)人員依一定規(guī)則選出的,例如選擇病毒程序要實(shí)施破壞時(shí)經(jīng)常執(zhí)行的操作行為數(shù)據(jù)。例如采用13H中斷寫磁盤的操作,是病毒程序的共同行為,而且比較特殊。經(jīng)過操作行為數(shù)據(jù)的選擇,有害行為數(shù)據(jù)庫可以存儲(chǔ)較少的用于判斷未知程序的數(shù)據(jù)量,從而提高病毒程序行為數(shù)據(jù)的比較速率。當(dāng)然,也可以通過計(jì)算機(jī)對(duì)已知病毒程序進(jìn)行自動(dòng)分析,記錄所述病毒程序的所有行為數(shù)據(jù),或者通過計(jì)算機(jī)按照預(yù)定義的規(guī)則對(duì)所述病毒程序的行為數(shù)據(jù)進(jìn)行篩選記錄。
這樣,將所述待檢測程序的行為數(shù)據(jù)和有害行為數(shù)據(jù)庫中的行為數(shù)據(jù)進(jìn)行比較,就能夠判斷出所述待檢測程序是否為病毒程序。
判斷情況A當(dāng)所述待檢測程序的行為數(shù)據(jù)與所述有害行為庫中存儲(chǔ)的病毒程序行為數(shù)據(jù)相同或者相似,就可以得出待檢測程序就是已知病毒程序類型或者已知病毒程序類型的一個(gè)變種的結(jié)論。所述的相同或者相似,可以預(yù)定義一個(gè)或者多個(gè)參數(shù),當(dāng)所述待檢測程序的行為數(shù)據(jù)和所述典型行為數(shù)據(jù)的匹配或者包括程度達(dá)到或者超過所述參數(shù)時(shí),可以認(rèn)為相同或者相似。
具體的,在一個(gè)實(shí)施例中,某待檢測程序的行為數(shù)據(jù)為行為1、行為2、行為3、行為4、行為5、行為6、行為7、行為8。
在有害行為庫中存儲(chǔ)的某病毒程序的系列行為數(shù)據(jù)為行為2、行為3、行為4、行為5、行為6。
將上述行為數(shù)據(jù)比較之后得出所述待檢測程序行為完全包含了該病毒程序的行為特征,則可直接判斷此待檢測程序是該病毒程序的一個(gè)變種。
判斷情況B當(dāng)所述待檢測程序的行為數(shù)據(jù)與所述有害行為庫中的病毒程序行為數(shù)據(jù)中的任何一條都不符合,則判定所述待檢測程序?yàn)楹戏ǔ绦颉?br>
具體的,在一個(gè)實(shí)施例中,某待檢測程序的行為數(shù)據(jù)為行為-1、行為-2、行為-3;在所述有害行為庫中的有害行為數(shù)據(jù)包括行為1、行為2、行為3、行為4、行為5、行為6......行為n(n為自然數(shù));將上述行為數(shù)據(jù)比較之后得出所述待檢測程序行為不包含有害行為庫中存儲(chǔ)的任何一個(gè)行為,認(rèn)為所述待檢測程序合法。
判斷情況C當(dāng)所述待檢測程序的行為數(shù)據(jù)與所述有害行為庫中存儲(chǔ)的病毒程序行為數(shù)據(jù)比較之后,不屬于上述判斷情況A、B中的任何一個(gè),則需要進(jìn)行進(jìn)一步識(shí)別。當(dāng)然這樣進(jìn)一步識(shí)別的步驟流程,只是為了增加未知病毒程序識(shí)別的準(zhǔn)確度,也可以判斷情況只有兩個(gè)分支是或者否。
具體的,在一個(gè)實(shí)施例中,一個(gè)待檢測程序程序的行為數(shù)據(jù)為行為1、行為2、行為3、行為4;在所述有害行為庫中某病毒程序的系列行為包括行為2、行為3、行為4、行為5、行為6;比較之后得出所述待檢測程序行為只具有某種病毒程序的系列行為的一部分,則不能直接判斷待檢測程序的性質(zhì),需要對(duì)所述待檢測程序作進(jìn)一步判斷。當(dāng)然,也可以直接給出結(jié)論,將該待檢測程序視為不是病毒程序或者是病毒程序,但是這樣的結(jié)論是不夠精確的。為了提高病毒程序的識(shí)別程度,需要對(duì)所述待檢測程序作進(jìn)一步判斷,以下步驟是對(duì)所述待檢測程序的繼續(xù)識(shí)別過程。
步驟s3,建立經(jīng)驗(yàn)庫,所述經(jīng)驗(yàn)庫存儲(chǔ)病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)的集合,以及存儲(chǔ)從行為數(shù)據(jù)到結(jié)果數(shù)據(jù)的過程表達(dá)式,所述過程表達(dá)式包括行為數(shù)據(jù)和結(jié)果數(shù)據(jù)以及從行為數(shù)據(jù)到結(jié)果數(shù)據(jù)的對(duì)應(yīng)關(guān)系數(shù)據(jù);還可以建立一個(gè)原則庫,所述原則庫用于存儲(chǔ)病毒程序的破壞性操作結(jié)果數(shù)據(jù)。
所述經(jīng)驗(yàn)庫用來存儲(chǔ)病毒程序的“一個(gè)行為導(dǎo)致的結(jié)果”或“多個(gè)行為按照先后順序依次完成后導(dǎo)致的結(jié)果”的“行為邏輯推理表達(dá)式”或“離散數(shù)學(xué)表達(dá)式”的集合。無論采用哪種表達(dá)式進(jìn)行表達(dá),實(shí)際上都是說明了所述病毒程序從行為到結(jié)果的過程,每一個(gè)表達(dá)式都是經(jīng)驗(yàn)庫中的一個(gè)存儲(chǔ)元素,經(jīng)驗(yàn)庫中存儲(chǔ)的所有表達(dá)式構(gòu)成了一個(gè)完整的集合。
具體的,在一個(gè)實(shí)施例中行為邏輯推理表達(dá)式(行為A)與(行為B)導(dǎo)致(結(jié)果AB)以實(shí)際程序舉例說明病毒程序“自動(dòng)查找a.exe文件的文件位置,然后將a.exe文件的文件位置添加到注冊(cè)表相應(yīng)的啟動(dòng)項(xiàng)里,讓操作系統(tǒng)啟動(dòng)后自動(dòng)運(yùn)行a.exe文件?!?行為A)等同于“自動(dòng)查找a.exe文件的文件位置”。
(行為B)等同于“將a.exe文件的文件位置添加到注冊(cè)表相應(yīng)的啟動(dòng)項(xiàng)里”。
(結(jié)果AB)等同于“操作系統(tǒng)啟動(dòng)后自動(dòng)運(yùn)行a.exe文件”。
所述原則庫存儲(chǔ)病毒程序的破壞性操作結(jié)果,所述破壞性操作結(jié)果一般可以包括對(duì)計(jì)算機(jī)操作系統(tǒng)被病毒程序破壞后的惡性結(jié)果,例如非常規(guī)讀寫操作、刪除某系統(tǒng)文件、導(dǎo)致內(nèi)存沖突、破壞硬盤分區(qū)表等等。所述的一個(gè)破壞性操作結(jié)果就是所述原則庫的一個(gè)存儲(chǔ)元素。當(dāng)然,所述破壞性操作結(jié)果也可以包括可能破壞系統(tǒng)的操作結(jié)果,因?yàn)椴《境绦蜻M(jìn)行的一些操作單獨(dú)看來并不一定是具有破壞性的,合法程序也進(jìn)行這樣的操作。在經(jīng)驗(yàn)庫中的每個(gè)行為都可以有相對(duì)應(yīng)的結(jié)果,行為的組合也可以有相對(duì)應(yīng)的結(jié)果。
步驟s4,將獲得的所述待檢測程序的行為數(shù)據(jù)進(jìn)行順序排列,如<(行為A)與(行為B)....與(行為N)>,并與所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)進(jìn)行比較。這里所述的順序可以是病毒程序的行為數(shù)據(jù)在病毒程序中的排列順序,也可以是經(jīng)驗(yàn)庫中存儲(chǔ)的病毒程序的行為數(shù)據(jù)的順序排列。所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)是指行為邏輯推理表達(dá)式中“導(dǎo)致”字段前的信息。所述待檢測程序的行為數(shù)據(jù)按照經(jīng)驗(yàn)庫中行為數(shù)據(jù)的順序進(jìn)行排列,即可以得到一系列的行為序列,依次與所述經(jīng)驗(yàn)庫中存儲(chǔ)的行為數(shù)據(jù)進(jìn)行比較。如果所述經(jīng)驗(yàn)庫中存在相匹配的行為信息,則執(zhí)行步驟s5;如果所述經(jīng)驗(yàn)庫中不存在任何相匹配的行為信息,則可以判定所述待檢測程序?yàn)楹戏ǔ绦颉K鰧@得的所述待檢測程序的行為數(shù)據(jù)按照順序進(jìn)行排列之目的是在于提高比較操作的效率和準(zhǔn)確度,當(dāng)然也可以不排列待檢測程序的行為數(shù)據(jù)直接進(jìn)行比較。
步驟s5,根據(jù)所述經(jīng)驗(yàn)庫中匹配的行為數(shù)據(jù)所對(duì)應(yīng)的結(jié)果數(shù)據(jù)以及所述原則庫中的破壞性操作結(jié)果,即比較行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù)以及所述原則庫中的破壞性操作結(jié)果數(shù)據(jù),判斷所述待檢測程序是否為病毒程序。
所述匹配是指步驟s4中比較后的一種結(jié)果。所述經(jīng)驗(yàn)庫中匹配的行為數(shù)據(jù)所對(duì)應(yīng)的結(jié)果數(shù)據(jù)是指行為邏輯推理表達(dá)式中“導(dǎo)致”字段后的數(shù)據(jù)。所述判斷所采用的規(guī)則可以是本領(lǐng)域技術(shù)人員根據(jù)經(jīng)驗(yàn)得出的,可以存在相當(dāng)?shù)牟町?,?dāng)然,這些規(guī)則都可以給出所述待檢測程序是病毒程序或者不是病毒程序的判斷結(jié)果,只不過判斷的準(zhǔn)確度有一些差異而已。
本實(shí)施方式采用將所述經(jīng)驗(yàn)庫中匹配的行為數(shù)據(jù)所對(duì)應(yīng)的結(jié)果數(shù)據(jù)和所述原則庫中的破壞性操作結(jié)果進(jìn)行比較的分析方法,如果比較之后所述原則庫中的任何一個(gè)存儲(chǔ)元素被匹配,則可以判定所述待檢測程序?yàn)槲粗牟《境绦?;否則,可以判定所述待檢測程序?yàn)楹戏ǔ绦颉?br>
當(dāng)然,所述步驟s4、s5還可以涉及比較、邏輯分析或者邏輯判斷的過程,這些分析方法的加入,都可以完善本實(shí)施方式識(shí)別未知病毒程序的準(zhǔn)確度以及效率。這些分析方法對(duì)于本領(lǐng)域一般技術(shù)人員來說是熟知的,在此就不再贅述。
對(duì)于圖1中的步驟s4、步驟s5,參照以下具體例子進(jìn)行說明。例假設(shè)某一個(gè)病毒程序的行為是“自動(dòng)查找a.exe文件的文件位置,然后將a.exe文件的文件位置添加到注冊(cè)表相應(yīng)的啟動(dòng)項(xiàng)里,讓操作系統(tǒng)啟動(dòng)后自動(dòng)運(yùn)行a.exe文件。”那么“自動(dòng)查找a.exe文件的文件位置”(此為行為A)導(dǎo)致“獲取了a.exe文件的文件位置”(此為結(jié)果A),“將a.exe文件的文件位置添加到注冊(cè)表相應(yīng)的啟動(dòng)項(xiàng)里”(此為行為B)導(dǎo)致“讓操作系統(tǒng)啟動(dòng)后自動(dòng)運(yùn)行a.exe文件”(此為結(jié)果B)假設(shè)下述的“行為邏輯推理表達(dá)式1”和“行為邏輯推理表達(dá)式2”都是經(jīng)驗(yàn)庫中的存儲(chǔ)元素,并且假設(shè)(結(jié)果B)是原則庫中的一個(gè)存儲(chǔ)元素,則行為邏輯推理表達(dá)式1(行為A)導(dǎo)致(結(jié)果A);行為邏輯推理表達(dá)式2(行為B)導(dǎo)致(結(jié)果B);步驟s4,將所述病毒程序的“行為”數(shù)據(jù)與所述經(jīng)驗(yàn)庫里的存儲(chǔ)元素進(jìn)行比較的過程如下<(行為A)>等同或者匹配于<行為邏輯推理表達(dá)式1的行為信息,即指“行為邏輯推理表達(dá)式1”里“導(dǎo)致”字段前的信息>。
<(行為B)>等同或者匹配于<行為邏輯推理表達(dá)式2的行為信息,即指“行為邏輯推理表達(dá)式2”里“導(dǎo)致”字段前的信息>。
步驟s5,將所述經(jīng)驗(yàn)庫中匹配的行為信息對(duì)應(yīng)的結(jié)果數(shù)據(jù),即指“行為邏輯推理表達(dá)式”里“導(dǎo)致”字段后的數(shù)據(jù),與“原則庫”里的存儲(chǔ)元素進(jìn)行比較的過程如下<(結(jié)果A)不等同或者匹配于“原則庫”中的任何一個(gè)存儲(chǔ)元素>;<(結(jié)果B)等同或者匹配于“原則庫”中的其中一個(gè)存儲(chǔ)元素>;
分析處理的過程情況2(結(jié)果A)不是“原則庫”中的任何一個(gè)存儲(chǔ)元素。
(結(jié)果B)是“原則庫”中的其中一個(gè)存儲(chǔ)元素。
(結(jié)果A)是(結(jié)果B)成立的前提條件。所述前提條件的判定可以根據(jù)數(shù)據(jù)讀寫操作、獲取、調(diào)用等操作之間的邏輯關(guān)系,通過計(jì)算機(jī)進(jìn)行判定。
判斷結(jié)論是病毒程序。
上述的判定規(guī)則中,不僅要求(結(jié)果B)是“原則庫”中的其中一個(gè)存儲(chǔ)元素,而且要求(結(jié)果A)對(duì)(結(jié)果B)有貢獻(xiàn),滿足這兩個(gè)條件,才能判斷所述待檢測程序是病毒程序。
當(dāng)然,所述的判定規(guī)則也可以只要求滿足(結(jié)果A)或者(結(jié)果B),其中任何一個(gè)是“原則庫”中的其中一個(gè)存儲(chǔ)元素;就可以判定所述待檢測程序是病毒程序。由于采用的判定規(guī)則的不同,可能會(huì)導(dǎo)致判定結(jié)果的準(zhǔn)確度有所差異,但是只要采用了行為以及結(jié)果的共同比較過程,則就屬于本發(fā)明的構(gòu)思之一。
另外,也可以僅建立經(jīng)驗(yàn)庫,用于存儲(chǔ)病毒程序從行為到結(jié)果的過程表達(dá)式,這里,所述過程表達(dá)式包括病毒程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合、結(jié)果數(shù)據(jù)、從行為到結(jié)果的對(duì)應(yīng)關(guān)系數(shù)據(jù)以及結(jié)果數(shù)據(jù)的各種排列組合的集合;這樣,就可以將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合與所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)或行為數(shù)據(jù)集合進(jìn)行比較,得到所述行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù),進(jìn)一步將所述操作結(jié)果數(shù)據(jù)與所述經(jīng)驗(yàn)庫中的結(jié)果數(shù)據(jù)、以及結(jié)果數(shù)據(jù)的各種排列組合的集合進(jìn)行比較,也可以判斷出所述待檢測程序是否為病毒程序。
具體參照?qǐng)D2,是本發(fā)明所述未知病毒程序識(shí)別方法的第二實(shí)施例的步驟流程圖,包括以下步驟步驟21,獲取待檢測程序的行為數(shù)據(jù)。所述待檢測程序的行為數(shù)據(jù),其實(shí)質(zhì)就是一系列能夠完成特定功能或結(jié)果的源代碼序列塊,所述的序列塊可以預(yù)先分析得出,當(dāng)然,所述獲取待檢測程序的行為數(shù)據(jù)的步驟也可以由計(jì)算機(jī)自行完成,該部分的實(shí)施例在后面進(jìn)行詳述。
步驟22,根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)以及預(yù)置的病毒程序的行為數(shù)據(jù),判斷所述待檢測程序是否為病毒程序。所述預(yù)置的病毒程序的行為數(shù)據(jù)可以采用數(shù)據(jù)庫的方式進(jìn)行存儲(chǔ),以方便存儲(chǔ)和調(diào)用。所述病毒程序的行為數(shù)據(jù)可以通過分析過程得出,也可以直接采用現(xiàn)有的對(duì)病毒程序的行為分析結(jié)果。所述的病毒程序的行為數(shù)據(jù)也就是符合一定條件的源代碼序列塊。
圖2所示方法中的大部分步驟和圖1所示方法中的步驟相類似,在此不再贅述。圖2所示識(shí)別方法與圖1所示識(shí)別方法的主要區(qū)別在于提高未知病毒程序識(shí)別準(zhǔn)確度的步驟23、24、25有所不同,以下對(duì)此部分進(jìn)行說明,未詳盡信息請(qǐng)參見圖1所示方法的說明。
步驟23,建立經(jīng)驗(yàn)庫,所述經(jīng)驗(yàn)庫用于存儲(chǔ)病毒程序從行為到結(jié)果的過程表達(dá)式,包括行為數(shù)據(jù)和結(jié)果數(shù)據(jù)以及從行為到結(jié)果的對(duì)應(yīng)關(guān)系數(shù)據(jù);并將所述的結(jié)果數(shù)據(jù)進(jìn)行排列組合,形成結(jié)果數(shù)據(jù)的排列組合的集合。
步驟24,將獲得的所述待檢測程序的行為數(shù)據(jù)按照一定的順序進(jìn)行排列如<(行為A)與(行為B)....與(行為N)>,并與所述經(jīng)驗(yàn)庫中存儲(chǔ)的行為信息進(jìn)行比較。所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)是指行為邏輯推理表達(dá)式中“導(dǎo)致”字段前的信息。所述待檢測程序的行為數(shù)據(jù)按照一定的順序進(jìn)行排列后,即可以得到一系列的行為序列,依次與所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)進(jìn)行比較。如果所述經(jīng)驗(yàn)庫中存在相匹配的行為數(shù)據(jù),則執(zhí)行步驟25;如果所述經(jīng)驗(yàn)庫中不存在任何相匹配的行為信息,則可以判定所述待檢測程序?yàn)楹戏ǔ绦颉?br>
步驟25,將所述經(jīng)驗(yàn)庫中匹配的行為數(shù)據(jù)所對(duì)應(yīng)的結(jié)果數(shù)據(jù)按照一定的順序進(jìn)行排列,并與所述經(jīng)驗(yàn)庫中的結(jié)果數(shù)據(jù)排列組合的集合進(jìn)行比較,就可以判斷出所述待檢測程序是否為病毒程序。
所述按照一定的順序還可以是指按照結(jié)果產(chǎn)生的順序,<如(結(jié)果A)與(結(jié)果B)....與(結(jié)果N)>。所述經(jīng)驗(yàn)庫中匹配的行為數(shù)據(jù)所對(duì)應(yīng)的結(jié)果數(shù)據(jù)是指行為邏輯推理表達(dá)式中“導(dǎo)致”字段后的數(shù)據(jù)。同樣,所述判斷采用的規(guī)則可以是本領(lǐng)域技術(shù)人員根據(jù)經(jīng)驗(yàn)得出的,可以存在相當(dāng)?shù)牟町?,這些規(guī)則都可以給出所述待檢測程序是病毒程序或者不是病毒程序的判斷結(jié)果,只不過判斷的準(zhǔn)確度有一些差異而已。所述經(jīng)驗(yàn)庫中的結(jié)果數(shù)據(jù)排列組合的集合可以是所有的或者經(jīng)過初步篩選的結(jié)果數(shù)據(jù)的排列組合;這樣可以大大減小集合中排列組合的數(shù)量以及提高匹配效率。
所述將獲得的所述待檢測程序的行為數(shù)據(jù)按照一定的順序進(jìn)行排列,以及將所述經(jīng)驗(yàn)庫中匹配的行為信息所對(duì)應(yīng)的結(jié)果信息按照其順序進(jìn)行排列,在于提高比較的效率和準(zhǔn)確度,當(dāng)然也可以不經(jīng)過排列直接進(jìn)行對(duì)比。
本實(shí)施方式可以采用將所述經(jīng)驗(yàn)庫中匹配的行為數(shù)據(jù)對(duì)應(yīng)的結(jié)果數(shù)據(jù)按照一定的順序進(jìn)行排列,并與所述經(jīng)驗(yàn)庫中存儲(chǔ)的結(jié)果數(shù)據(jù)的排列組合的集合進(jìn)行比較,如果比較之后符合所述經(jīng)驗(yàn)庫中的結(jié)果數(shù)據(jù)排列組合的集合里的任何一個(gè)子集,則可以判定所述待檢測程序?yàn)槲粗牟《境绦?;否則,可以判定所述待檢測程序?yàn)楹戏ǔ绦颉?br>
當(dāng)然,所述步驟24、25還可以涉及比較、邏輯分析或者邏輯判斷的過程,這些分析方法的加入,都可以完善本專利識(shí)別未知病毒程序的準(zhǔn)確度以及效率。這些分析方法對(duì)于本領(lǐng)域一般技術(shù)人員來說是熟知的,在此就不再贅述。
對(duì)于步驟24、步驟25,參照以下具體例子進(jìn)行說明。例假設(shè)一個(gè)病毒程序的行為“自動(dòng)查找a.exe文件的文件位置,然后將a.exe文件的文件位置添加到注冊(cè)表相應(yīng)的啟動(dòng)項(xiàng)里,讓操作系統(tǒng)啟動(dòng)后自動(dòng)運(yùn)行a.exe文件?!蹦敲础白詣?dòng)查找a.exe文件的文件位置”(此為行為A)導(dǎo)致“獲取了a.exe文件的文件位置”(此為結(jié)果A),“將a.exe文件的文件位置添加到注冊(cè)表相應(yīng)的啟動(dòng)項(xiàng)里”(此為行為B)導(dǎo)致“讓操作系統(tǒng)啟動(dòng)后自動(dòng)運(yùn)行a.exe文件”(此為結(jié)果B)假設(shè)“行為邏輯推理表達(dá)式1”和“行為邏輯推理表達(dá)式2”都是經(jīng)驗(yàn)庫中的存儲(chǔ)元素,假設(shè)(結(jié)果A)與(結(jié)果B)的組合排列是“結(jié)果數(shù)據(jù)排列組合的集合”里的其中一個(gè)子集。所述“(結(jié)果A)與(結(jié)果B)”中的“與”是邏輯上的用語“和”,即“and”。
行為邏輯推理表達(dá)式1(行為A)導(dǎo)致(結(jié)果A);行為邏輯推理表達(dá)式2(行為B)導(dǎo)致(結(jié)果B);那么,步驟24“行為”與“經(jīng)驗(yàn)庫”里的存儲(chǔ)元素進(jìn)行比較的過程中,<(行為A)>等同或者匹配于行為邏輯推理表達(dá)式1中的行為數(shù)據(jù),即指“行為邏輯推理表達(dá)式1”里“導(dǎo)致”字段前的信息。
<(行為B)>等同或者匹配于行為邏輯推理表達(dá)式2的行為數(shù)據(jù),即指“行為邏輯推理表達(dá)式2”里“導(dǎo)致”字段前的信息。
步驟25中,所述經(jīng)驗(yàn)庫中匹配的行為數(shù)據(jù)對(duì)應(yīng)的結(jié)果數(shù)據(jù),即指“行為邏輯推理表達(dá)式”中“導(dǎo)致”字段后的信息,將所述結(jié)果數(shù)據(jù)進(jìn)行組合排列得到(結(jié)果A)與(結(jié)果B)。所述“(結(jié)果A)與(結(jié)果B)”中的“與”是邏輯上的用語。
分析處理的結(jié)果是(結(jié)果A)與(結(jié)果B)的組合排列是“結(jié)果數(shù)據(jù)排列組合的集合”中的一個(gè)子集。
進(jìn)一步得到判斷結(jié)果該待檢測程序是病毒程序。
圖1和圖2示出的兩種實(shí)施方式,提高識(shí)別未知病毒準(zhǔn)確度和效率的方法,當(dāng)然,還可以采用本領(lǐng)域技術(shù)人員熟悉的其他方法,但是由于篇幅有限,在此就不再贅述。當(dāng)然,也可以將圖1和圖2示出的兩種實(shí)施方式的有益部分合并在一起使用。所述的核心步驟是指圖1和圖2示出的步驟s1、s2和步驟21、22。
本實(shí)施方式所述的未知病毒程序的識(shí)別方法,還可以包括對(duì)所述待檢測程序進(jìn)行特征碼識(shí)別,判斷所述待檢測程序是否為病毒程序。因?yàn)橛龅酱龣z測程序的時(shí)候,無法得知是已知病毒程序、合法程序或者未知病毒程序,所以可以先經(jīng)過特征碼識(shí)別步驟,已減輕本實(shí)施方式所述未知病毒程序的識(shí)別步驟的計(jì)算量。如果對(duì)比之后,所述已知的病毒程序特征碼能夠被所述待檢測程序完全匹配,則說明所述待檢測程序?yàn)橐阎《境绦?,這樣就可以免除對(duì)已知病毒程序進(jìn)行繼續(xù)的行為判斷,以提高檢測效率。一般情況下,病毒程序特征碼是連續(xù)的若干個(gè)字節(jié)組成的代碼串,在病毒程序特征碼中還可以包含有一個(gè)或幾個(gè)“模糊”字節(jié)。當(dāng)與這種類型的病毒程序特征碼進(jìn)行比較時(shí),只要除“模糊”字節(jié)之外的字符串都能完好匹配,則說明該待檢測程序?yàn)椴《境绦颉?br>
如果所述待檢測程序被判定為病毒程序,則將所述待檢測程序的行為數(shù)據(jù)存儲(chǔ)至所述經(jīng)驗(yàn)庫中的行為信息中,將所述待檢測程序行為對(duì)應(yīng)的結(jié)果數(shù)據(jù)存儲(chǔ)至所述經(jīng)驗(yàn)庫中的結(jié)果信息中,并建立所述待檢測程序的行為數(shù)據(jù)和結(jié)果數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系。這樣,就可以實(shí)時(shí)的完善和增加所述經(jīng)驗(yàn)庫的數(shù)據(jù)。所述原則庫中的存儲(chǔ)元素一般可以不進(jìn)行自動(dòng)增加或者完善,因?yàn)閷?duì)于計(jì)算機(jī)系統(tǒng)的破壞性操作結(jié)果基本是穩(wěn)定不變的。
如果所述待檢測程序被判定為病毒程序,則將所述待檢測程序的行為數(shù)據(jù)存儲(chǔ)為一類病毒程序的行為數(shù)據(jù);用于完善預(yù)置的所述典型病毒程序的行為數(shù)據(jù)。
當(dāng)然,所述獲取待檢測程序的行為數(shù)據(jù)的步驟也可以由計(jì)算機(jī)自行完成,參照?qǐng)D3,示出了一個(gè)由計(jì)算機(jī)自動(dòng)完成獲取待檢測程序的行為數(shù)據(jù)的實(shí)施例。
步驟31,獲取和分解已知病毒程序的破壞性操作行為。通過對(duì)病毒程序多年的觀察、研究,發(fā)現(xiàn)病毒程序有一些行為,是病毒程序的共同行為,而且比較特殊。所述已知病毒程序的破壞性操作行為的獲取和分解可以通過人工完成也可以通過計(jì)算機(jī)實(shí)現(xiàn)。所述的破壞性操作行為一般可以包括對(duì)計(jì)算機(jī)系統(tǒng)的非常規(guī)操作或者易造成惡性結(jié)果的操作。例如非常規(guī)讀寫操作、刪除某系統(tǒng)文件、導(dǎo)致內(nèi)存沖突、破壞硬盤分區(qū)表等等。下面列舉一些具體的可以作為監(jiān)測病毒程序的行為占用INT13H、修改DOS系統(tǒng)數(shù)據(jù)區(qū)的內(nèi)存總量、對(duì)COM和EXE文件做寫入動(dòng)作、病毒程序與宿主程序的切換特征等。除了上述較為明顯的破壞性操作行為,病毒程序一般還會(huì)包括較為正常的操作行為,如果單獨(dú)或者組合起來有可能產(chǎn)生破壞數(shù)據(jù)的危險(xiǎn)操作,則也屬于本發(fā)明所述病毒程序的破壞性操作行為的范圍內(nèi)。
通常,一個(gè)病毒程序的破壞行為可以由一系列的執(zhí)行破壞性操作的指令或指令集以及操作參數(shù)構(gòu)成的,每一個(gè)所述的指令或指令集至少產(chǎn)生一個(gè)獨(dú)立的破壞性操作行為。因此,分解現(xiàn)有病毒程序的破壞性操作行為,即是將已經(jīng)存在的病毒程序中包含的獨(dú)立的破壞性操作行為涉及的指令或指令集提取出來。例如,假設(shè)13H中斷的03H或05H號(hào)功能調(diào)用涉及可能的破壞數(shù)據(jù)的危險(xiǎn)操作,則13H中斷的03H或05H號(hào)功能調(diào)用對(duì)應(yīng)的指令就可以被看作是產(chǎn)生一個(gè)獨(dú)立的破壞性操作行為的指令。假設(shè),10H中斷的02H號(hào)功能調(diào)用和11H的06H號(hào)功能調(diào)用組合在一起涉及可能的破壞數(shù)據(jù)的危險(xiǎn)操作,則10H中斷的02H號(hào)功能調(diào)用和11H的06H號(hào)功能調(diào)用對(duì)應(yīng)的指令集合就可以被看作是產(chǎn)生一個(gè)獨(dú)立的破壞性操作行為的指令集。如果一個(gè)被檢測的程序具有這樣的指令代碼,就可以得知該被檢測程序存在一個(gè)可能破壞性其他程序或數(shù)據(jù)的可疑操作行為,將這些行為收集起來,就可以通過程序的行為集合判斷一個(gè)程序是否為病毒程序以及如何最大限度地恢復(fù)相應(yīng)的病毒程序破壞的數(shù)據(jù)。
獲取已知病毒程序的破壞性操作行為,也可以通過計(jì)算機(jī)輔助完成。例如采用申請(qǐng)?zhí)枮?1117726.8、名稱為“檢測和清除已知及未知計(jì)算機(jī)病毒的方法、系統(tǒng)和介質(zhì)”的中國發(fā)明專利介紹的,以提供用于誘發(fā)病毒感染的感染對(duì)象來檢測病毒的方法,就可以獲得已知和未知病毒程序的破壞性操作行為。由于申請(qǐng)?zhí)枮?1117726.8的發(fā)明已經(jīng)公開,在此不在贅述。
步驟32,根據(jù)所述破壞性操作行為設(shè)置或編制該操作行為對(duì)應(yīng)的控制處理程序。
為此,當(dāng)將現(xiàn)有病毒程序的破壞性操作行為分解出來以后,就可以根據(jù)所述破壞性操作行為編制該行為對(duì)應(yīng)的控制處理程序,所述控制處理程序用于響應(yīng)待檢測程序的破壞性操作行為涉及的指令和參數(shù),并反饋所述破壞性操作行為成功的信息以誘導(dǎo)該程序的下一個(gè)行為,同時(shí)記錄所述待檢測程序的該項(xiàng)破壞性操作行為。
假設(shè),一個(gè)程序中的破壞性操作行為涉及的指令和參數(shù)為DEL(參數(shù)1;參數(shù)2;參數(shù)3),其中,DEL表示刪除,參數(shù)1表示被刪除的盤號(hào),參數(shù)2表示被刪除的簇號(hào),參數(shù)3表示接受刪除是否成功的變量,則該破壞性操作行為對(duì)應(yīng)的控制處理程序可以是(1)WRITE(FILE1,“DEL(參數(shù)1;參數(shù)2;參數(shù)3)”);(2)WRITE(DEL(參數(shù)1;參數(shù)2;參數(shù)3),0,0,0);其中,第(1)行的指令表示將破壞性指令“DEL(參數(shù)1;參數(shù)2;參數(shù)3)”作為字符串記錄進(jìn)文件FILE1中;第(2)行的指令表示向?qū)⑵茐男灾噶頓EL(參數(shù)1;參數(shù)2;參數(shù)3)反饋操作成功的標(biāo)志“0”。
步驟33,將所述控制處理程序嵌入操作系統(tǒng),使控制處理程序獲得對(duì)所述破壞性操作行為的控制權(quán),這種控制權(quán)可以通過使控制處理程序獲得優(yōu)于操作系統(tǒng)的系統(tǒng)控制權(quán)而獲得。
為了能夠自動(dòng)快速地檢測并記錄程序中可能出現(xiàn)的破壞性操作行為,以甄別該程序是否為病毒程序,需要所述控制處理程序獲得對(duì)被檢測程序出現(xiàn)的破壞性操作行為的控制權(quán),以獲得被檢測程序中出現(xiàn)的破壞性操作行為,為此,采用將所述控制處理程序嵌入到操作系統(tǒng)中的辦法使控制處理程序獲得相應(yīng)的破壞性操作行為的控制權(quán);當(dāng)然,也可以通過其他方式使控制處理程序獲得系統(tǒng)的監(jiān)控權(quán)從而檢測并記錄待檢測程序的破壞性操作行為。如果采用將所述控制處理程序嵌入到操作系統(tǒng)中的方式,即可以通過將控制處理程序嵌入到操作系統(tǒng)的功能調(diào)用表實(shí)現(xiàn);也可以將控制處理程序存儲(chǔ)到一個(gè)獨(dú)立的操作行為調(diào)用表,使其具有比操作系統(tǒng)的功能調(diào)用表更高級(jí)的優(yōu)先權(quán)實(shí)現(xiàn)。例如任何操作系統(tǒng)中都會(huì)存在一個(gè)系統(tǒng)功能調(diào)用表,系統(tǒng)功能調(diào)用表根據(jù)需要可以有不同的結(jié)構(gòu)。參考圖5,圖5所示的系統(tǒng)功能調(diào)用表包括兩個(gè)字段,一個(gè)是編號(hào)字段,用于存儲(chǔ)系統(tǒng)功能調(diào)用程序的編號(hào);一個(gè)是功能調(diào)用地址字段,用于存儲(chǔ)系統(tǒng)功能調(diào)用程序指針,即地址,該地址通常對(duì)應(yīng)系統(tǒng)功能調(diào)用程序的首地址。圖6是系統(tǒng)功能調(diào)用程序?qū)嶋H存儲(chǔ)區(qū)的示意圖,當(dāng)需要某個(gè)操作系統(tǒng)提供的功能時(shí),例如需要13H中斷處理程序提供的寫磁盤操作,就需要從圖5所示的系統(tǒng)功能調(diào)用表中提取出13H中斷處理程序的地址,再到圖6所示的存儲(chǔ)區(qū)中的相應(yīng)地址處讀取相應(yīng)的程序到內(nèi)存中執(zhí)行即可獲得操作結(jié)果。如果將所述控制處理程序嵌入到操作系統(tǒng)中,方法之一就是將相應(yīng)的控制處理程序存儲(chǔ)到系統(tǒng)功能調(diào)用表中。假設(shè)現(xiàn)在有100H(H表示16進(jìn)制)個(gè)破壞性操作行為被分解出來,而且已經(jīng)編制好100H個(gè)對(duì)應(yīng)的控制處理程序,則,將這100H個(gè)控制處理程序的存儲(chǔ)地址存入到圖5所示表中,存儲(chǔ)結(jié)果參考圖7,圖8示出了圖7存儲(chǔ)實(shí)例的功能調(diào)用程序?qū)嶋H存儲(chǔ)區(qū)的示意圖。所述控制處理程序的存儲(chǔ)地址依次存儲(chǔ)到系統(tǒng)功能調(diào)用程序地址的后面。
實(shí)際中,將所述控制處理程序嵌入到操作系統(tǒng)中的方法實(shí)際中不限于圖7所示的存儲(chǔ)方式,也可以采用圖9所示的將所述控制處理程序直接存儲(chǔ)為一個(gè)獨(dú)立的操作行為調(diào)用表的方式,并使所述控制處理程序獲得優(yōu)于系統(tǒng)功能調(diào)用程序的優(yōu)先權(quán),該步驟的實(shí)現(xiàn)方式是將圖5中的系統(tǒng)功能調(diào)用指針,即功能調(diào)用地址字段的系統(tǒng)功能調(diào)用程序的地址修改為相應(yīng)控制處理程序的地址即可。以圖7為例,假設(shè)編號(hào)為0A00的A控制處理程序地址與編號(hào)為0003的05H中斷相對(duì)應(yīng),就需要將“功能調(diào)用地址”字段存儲(chǔ)的“05H中斷地址”修改為“A控制處理程序地址”,從而在所述破壞性操作行為涉及的指令調(diào)用“05H中斷地址”對(duì)應(yīng)的程序時(shí),實(shí)際上調(diào)用的是“A控制處理程序地址”,從而使“A控制處理程序”獲得了優(yōu)于“05H中斷”的系統(tǒng)控制權(quán)。繼續(xù)推廣這種思想,就可以將所述控制處理程序嵌入操作系統(tǒng)。
在另外的實(shí)施例中,還可以使所述破壞性操作行為對(duì)應(yīng)的系統(tǒng)功能調(diào)用程序?qū)⑵淇刂茩?quán)移交給相應(yīng)的控制處理程序,從而使控制處理程序獲得對(duì)所述破壞性操作行為的控制權(quán)。以圖10這種存儲(chǔ)方式為例,所有的控制處理程序在系統(tǒng)中形成了另外一張系統(tǒng)功能調(diào)用表,只要使該表具有比系統(tǒng)原有的系統(tǒng)功能調(diào)用表具有更高的優(yōu)先級(jí),就可以使控制處理程序獲得對(duì)所述破壞性操作行為的控制權(quán)。例如,在待檢測程序調(diào)用所述控制處理程序調(diào)用系統(tǒng)功能調(diào)用程序時(shí),首先調(diào)用圖10所述的表中的控制處理程序,如果在圖10所述的表中不存在被調(diào)用的控制處理程序,再去調(diào)用圖2所述的表中的真正的系統(tǒng)功能調(diào)用程序。
由于通過步驟33,已經(jīng)使控制處理程序獲得對(duì)所述破壞性操作行為的控制權(quán),因此待檢測程序在步驟34,待檢測程序調(diào)用所述控制處理程序時(shí),就可以由所述控制處理程序?qū)ζ溥M(jìn)行應(yīng)答并記錄所述待檢測程序的操作行為。即,所述待檢測程序執(zhí)行時(shí),一旦其中存在的實(shí)現(xiàn)破壞性操作行為的指令被執(zhí)行,即調(diào)用相應(yīng)的系統(tǒng)功能調(diào)用程序,就會(huì)首先調(diào)用相應(yīng)的控制處理程序,由所述控制處理程序?qū)ζ溥M(jìn)行應(yīng)答并記錄所述待檢測程序的破壞性操作行為。
通常的病毒程序需要獲得一條破壞性的行為操作結(jié)果,在得到成功操作的結(jié)果時(shí),才繼續(xù)后續(xù)的操作,因此為了對(duì)待檢測程序進(jìn)行進(jìn)一步的判斷,還可以通過所述的控制處理程序?qū)λ龃龣z測程序的調(diào)用返回成功應(yīng)答的信息,從而誘導(dǎo)所述待檢測程序繼續(xù)進(jìn)行下一行為,而實(shí)際上,操作系統(tǒng)的控制權(quán)由于在步驟33已由控制處理程序接管,所述待檢測程序并沒有得到實(shí)際運(yùn)行的效果,其收到的信息是控制處理程序傳回的信息,其獲得的信息相對(duì)于其需求來說是虛假信息,因此待檢測程序并沒有在操作系統(tǒng)的環(huán)境下實(shí)際運(yùn)行,而是在控制處理程序構(gòu)成主控制權(quán)的環(huán)境中虛擬運(yùn)行,從而可以檢測和記錄所述待檢測程序的一系列行為操作,并且不會(huì)對(duì)系統(tǒng)造成損害。上述的獲得病毒程序的可執(zhí)行的行為操作的方法可以理解為在現(xiàn)實(shí)的操作系統(tǒng)內(nèi)通過軟件實(shí)現(xiàn)的方法虛擬一個(gè)運(yùn)行環(huán)境。這個(gè)環(huán)境的數(shù)據(jù)與運(yùn)行結(jié)果與真實(shí)的操作系統(tǒng)完全隔離,但是文件或進(jìn)程的執(zhí)行過程和結(jié)果與在真實(shí)的操作系統(tǒng)中運(yùn)行是完全相同的。
實(shí)際中,所述步驟33是一個(gè)可選擇的步驟,無論所述控制處理程序是否嵌入操作系統(tǒng),只要其在程序操作行為涉及的指令運(yùn)行時(shí)具有優(yōu)于操作系統(tǒng)的控制權(quán),即可形成誘發(fā)待檢測程序行為的虛擬運(yùn)行環(huán)境,從而檢測到所述待檢測程序的操作行為。
步驟35,所述待檢測程序運(yùn)行結(jié)束后,將記錄的所述待檢測程序的一系列行為數(shù)據(jù)一并發(fā)送輸出。
參照?qǐng)D4,是本發(fā)明所述未知病毒程序的清除方法的步驟流程圖,所述的未知病毒程序識(shí)別方法可以采用圖1或者圖2所示的任一流程。圖4所示的清未知病毒程序除方法中在圖1或者圖2所示檢測未知病毒程序方法的基礎(chǔ)上還包括如果判定所述待檢測程序是病毒程序,則清除所述待檢測程序。
圖4所示的清除方法在清除病毒程序的基礎(chǔ)上,還可以附加恢復(fù)被病毒程序破壞的數(shù)據(jù)的恢復(fù)方法,包括以下步驟步驟41、如果判定所述待檢測程序是病毒程序,則根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù),建立對(duì)應(yīng)的逆行為操作步驟。
由于已經(jīng)獲得病毒程序的可執(zhí)行的行為操作步驟,因此可以根據(jù)所述行為操作步驟建立所述行為操作步驟對(duì)應(yīng)的逆行為操作步驟;例如,建立行為操作步驟1、2、...、N對(duì)應(yīng)的逆操作步驟1、2、...、N。假設(shè)行為操作步驟1用于轉(zhuǎn)移存儲(chǔ)數(shù)據(jù),則對(duì)應(yīng)的逆行為操作步驟1則用于對(duì)應(yīng)的逆行為操作,以恢復(fù)數(shù)據(jù);如果行為操作步驟2用于刪除數(shù)據(jù),則對(duì)應(yīng)的逆行為操作步驟2用于完成對(duì)應(yīng)的逆操作,以恢復(fù)被刪除的數(shù)據(jù)(例如以冗余校驗(yàn)的方式恢復(fù)數(shù)據(jù))。所述建立對(duì)應(yīng)的逆行為操作步驟,即生成一個(gè)程序源代碼指令的集合,所述指令集合相對(duì)應(yīng)的操作步驟與所述行為操作步驟所執(zhí)行的操作相反。
步驟42、執(zhí)行所述逆行為操作步驟。
由于所述逆行為操作步驟就是程序源代碼指令的集合,所以對(duì)所述逆行為操作步驟的執(zhí)行實(shí)際上就是對(duì)所述程序源代碼指令進(jìn)行依次分別的調(diào)用的過程。根據(jù)每個(gè)程序源代碼指令進(jìn)行相應(yīng)的執(zhí)行操作,從而完成被病毒程序破壞的數(shù)據(jù)的恢復(fù)操作。例如,建立一個(gè)執(zhí)行逆行為操作步驟功能的一個(gè)主功能函數(shù),在這個(gè)主功能函數(shù)里實(shí)際上是將所述程序源代碼指令進(jìn)行依次分別調(diào)用的過程。
所述的逆行為操作步驟,即程序源代碼指令的集合,可以以數(shù)據(jù)庫的方式進(jìn)行存儲(chǔ)或者以大型數(shù)據(jù)存儲(chǔ)表的方式進(jìn)行存儲(chǔ)。例如,將所述的逆行為操作步驟以數(shù)據(jù)庫列表的方式進(jìn)行存儲(chǔ),則某一個(gè)病毒程序的逆行為操作步驟就是該數(shù)據(jù)庫中的一個(gè)存儲(chǔ)元素(子集)。該數(shù)據(jù)庫可以采用如下的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)所述的某一個(gè)存儲(chǔ)元素,即某一個(gè)病毒程序的逆行為操作步驟(病毒程序名稱)、(逆行為操作步驟1,逆行為操作步驟2,......逆行為操作步驟N)、(附加信息段,刪除病毒程序體);其中,所述的1、2......N表示了清除病毒程序步驟的順序,所述的逆行為操作步驟包括源代碼序列塊,所述源代碼序列塊用以完成所述病毒程序行為操作步驟對(duì)應(yīng)的逆操作。上述的逆行為操作步驟信息中還可以包括相關(guān)操作參數(shù)等。上述的數(shù)據(jù)結(jié)構(gòu)還可以采用其他方式,例如(病毒程序名稱)、(逆行為操作步驟1,逆行為操作步驟2,......逆行為操作步驟N,附加信息段)、(刪除病毒程序體);實(shí)際上,上述的存儲(chǔ)方式以及存儲(chǔ)的數(shù)據(jù)結(jié)構(gòu)只是為了說明本發(fā)明的技術(shù)思想而舉出的一個(gè)具體實(shí)施例而已,可以采用其他可行的存儲(chǔ)方式和數(shù)據(jù)結(jié)構(gòu)進(jìn)行替代,只要能夠?qū)崿F(xiàn)所述逆行為操作步驟的存儲(chǔ)和調(diào)用即可。
由所述行為操作步驟得出對(duì)應(yīng)的逆行為操作步驟,可以通過一對(duì)應(yīng)表來實(shí)現(xiàn)預(yù)置數(shù)據(jù)列表,表中對(duì)應(yīng)列出了各種行為操作步驟以及相對(duì)應(yīng)的逆行為操作步驟;當(dāng)所述病毒程序進(jìn)行了某個(gè)行為操作步驟,則從所述預(yù)置的數(shù)據(jù)列表中比較得出相對(duì)應(yīng)的逆行為操作步驟,例如添加和刪除;依次完成所述病毒程序的所有行為操作步驟向逆行為操作步驟的轉(zhuǎn)換。
以上對(duì)本發(fā)明所提供的一種未知病毒程序的識(shí)別及清除方法進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
1.一種未知病毒程序的識(shí)別方法,其特征在于,包括獲取待檢測程序的行為數(shù)據(jù);根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合以及預(yù)置的病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合,判斷所述待檢測程序是否為病毒程序。
2.如權(quán)利要求1所述的未知病毒程序的識(shí)別方法,其特征在于,還包括建立經(jīng)驗(yàn)庫,用于存儲(chǔ)病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)的集合,以及存儲(chǔ)病毒程序從行為數(shù)據(jù)到結(jié)果數(shù)據(jù)的過程表達(dá)式,所述過程表達(dá)式包括行為數(shù)據(jù)和結(jié)果數(shù)據(jù)以及從行為到結(jié)果的對(duì)應(yīng)關(guān)系數(shù)據(jù);以及,將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合與所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)進(jìn)行比較,得到所述行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù)。
3.如權(quán)利要求2所述的未知病毒程序的識(shí)別方法,其特征在于,還包括建立原則庫,用于存儲(chǔ)病毒程序的破壞性操作結(jié)果數(shù)據(jù);以及,比較行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù)以及所述原則庫中的破壞性操作結(jié)果數(shù)據(jù),判斷所述待檢測程序是否為病毒程序。
4.如權(quán)利要求1所述的未知病毒程序的識(shí)別方法,其特征在于,還包括建立經(jīng)驗(yàn)庫,用于存儲(chǔ)病毒程序從行為到結(jié)果的過程表達(dá)式,所述過程表達(dá)式包括病毒程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合、結(jié)果數(shù)據(jù)、從行為到結(jié)果的對(duì)應(yīng)關(guān)系數(shù)據(jù)以及結(jié)果數(shù)據(jù)的各種排列組合的集合;以及,將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合與所述經(jīng)驗(yàn)庫中的行為數(shù)據(jù)或行為數(shù)據(jù)集合進(jìn)行比較,得到所述行為數(shù)據(jù)或者行為數(shù)據(jù)集合導(dǎo)致的操作結(jié)果數(shù)據(jù);以及,將所述操作結(jié)果數(shù)據(jù)與所述經(jīng)驗(yàn)庫中的結(jié)果數(shù)據(jù)、以及結(jié)果數(shù)據(jù)的各種排列組合的集合進(jìn)行比較,判斷所述待檢測程序是否為病毒程序。
5.如權(quán)利要求1、2、3或4所述的未知病毒程序的識(shí)別方法,其特征在于,還包括對(duì)所述待檢測程序進(jìn)行特征碼識(shí)別,判斷所述待檢測程序是否為病毒程序。
6.如權(quán)利要求3或4所述的未知病毒程序的識(shí)別方法,其特征在于,包括將獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合按照經(jīng)驗(yàn)庫中行為數(shù)據(jù)或者行為數(shù)據(jù)集合的順序進(jìn)行排列。
7.如權(quán)利要求1、2、3或4所述的未知病毒程序的識(shí)別方法,其特征在于,按照下述步驟獲取待檢測程序的行為數(shù)據(jù)獲得已知病毒程序的破壞性行為數(shù)據(jù);根據(jù)所述破壞性行為數(shù)據(jù)設(shè)置對(duì)應(yīng)的控制處理程序;使控制處理程序獲得對(duì)所述破壞性行為數(shù)據(jù)操作的控制權(quán);待檢測程序的破壞性行為數(shù)據(jù)調(diào)用相應(yīng)的控制處理程序,由所述控制處理程序記錄所述待檢測程序的行為數(shù)據(jù)。
8.如權(quán)利要求1、2、3或4所述的未知病毒程序的識(shí)別方法,其特征在于,還包括如果所述待檢測程序被判定為病毒程序,則將所述待檢測程序的行為數(shù)據(jù)存儲(chǔ)至所述經(jīng)驗(yàn)庫中的行為信息中,將所述待檢測程序行為對(duì)應(yīng)的結(jié)果數(shù)據(jù)存儲(chǔ)至所述經(jīng)驗(yàn)庫中的結(jié)果信息中,并建立所述待檢測程序的行為數(shù)據(jù)和結(jié)果數(shù)據(jù)之間的對(duì)應(yīng)關(guān)系。
9.如權(quán)利要求1、2、3或4所述的未知病毒程序的識(shí)別方法,其特征在于,還包括如果所述待檢測程序被判定為病毒程序,則將所述待檢測程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合存儲(chǔ)為病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合。
10.如權(quán)利要求9所述的未知病毒程序的識(shí)別方法,其特征在于,還包括如果所述待檢測程序被判定為病毒程序,存儲(chǔ)病毒程序的破壞性操作結(jié)果數(shù)據(jù)或破壞性操作結(jié)果數(shù)據(jù)排列組合后的數(shù)據(jù)集合。
11.如權(quán)利要求1所述的未知病毒程序的識(shí)別方法,其特征在于,還包括建立有害行為庫,用于存儲(chǔ)病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合。
12.一種未知病毒程序的清除方法,其特征在于,包括獲取待檢測程序的行為數(shù)據(jù);根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合以及預(yù)置的典型病毒程序的行為數(shù)據(jù)或者行為數(shù)據(jù)集合,判斷所述待檢測程序是否為病毒程序;如果判定所述待檢測程序是病毒程序,則清除所述待檢測程序。
13.如權(quán)利要求12所述的未知病毒程序的清除方法,其特征在于,還包括如果判定所述待檢測程序是病毒程序,根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)或行為數(shù)據(jù)集合,建立對(duì)應(yīng)的逆行為操作步驟;執(zhí)行所述逆行為操作步驟。
全文摘要
本發(fā)明公開了一種未知病毒程序的識(shí)別方法,包括獲取待檢測程序的行為數(shù)據(jù);根據(jù)獲得的所述待檢測程序的行為數(shù)據(jù)以及預(yù)置的典型病毒程序的行為數(shù)據(jù),判斷所述待檢測程序是否為病毒程序。本發(fā)明不僅僅能識(shí)別已知病毒程序,也可以相當(dāng)準(zhǔn)確的識(shí)別多數(shù)的未知病毒程序。本發(fā)明還進(jìn)一步比較行為結(jié)果以及行為與結(jié)果之間的關(guān)系,故可以實(shí)現(xiàn)未知病毒程序的精確識(shí)別,提高未知病毒程序識(shí)別的準(zhǔn)確度和效率。本發(fā)明還提供了一種未知病毒程序的清除方法,不僅可以清除病毒程序,并且可以根據(jù)所述病毒程序的行為,建立并執(zhí)行所述病毒程序的逆行為操作,故可以實(shí)現(xiàn)對(duì)被病毒程序破壞的數(shù)據(jù)的恢復(fù)。
文檔編號(hào)G06F21/56GK1936910SQ200610007610
公開日2007年3月28日 申請(qǐng)日期2006年2月15日 優(yōu)先權(quán)日2005年11月16日
發(fā)明者白杰, 魯征宇, 李薇 申請(qǐng)人:白杰, 李薇, 魯征宇