两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

病毒檢測(cè)系統(tǒng)的制作方法

文檔序號(hào):6427352閱讀:192來源:國(guó)知局
專利名稱:病毒檢測(cè)系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種防病毒系統(tǒng),具體來說,涉及一種病毒消除系統(tǒng)。
背景技術(shù)
計(jì)算機(jī)病毒是當(dāng)今計(jì)算機(jī)領(lǐng)域的主要問題。例如,計(jì)算機(jī)病毒可以是一個(gè)程序(或某些代碼單元、例如,計(jì)算機(jī)對(duì)其做出響應(yīng)的指令,如代碼塊、代碼元素或代碼段),該程序可以附加到附著于其他程序和/或?qū)ο螅梢詮?fù)制其本身,和/或可以在計(jì)算機(jī)系統(tǒng)上執(zhí)行未經(jīng)請(qǐng)求的或惡意的操作。雖然這里所描述的是涉及計(jì)算機(jī)病毒,但是本發(fā)明可以應(yīng)用于能夠修改計(jì)算機(jī)資源的一個(gè)或多個(gè)部份的任何類型的惡意代碼。
優(yōu)選情況下,防病毒系統(tǒng)查找或檢測(cè)病毒,然后修復(fù)受影響的文件、內(nèi)存、啟動(dòng)扇區(qū)等等。病毒用來使對(duì)它們的檢測(cè)和消除復(fù)雜化的技術(shù)之一是對(duì)病毒體的一部分或?qū)⒁芨腥镜奈募M(jìn)行加密,以便防病毒系統(tǒng)比較難以對(duì)它進(jìn)行解密,并難以修復(fù)文件。這使得防病毒系統(tǒng)比較難以檢測(cè)并將感染過程返回,以糾正文件。
某些病毒執(zhí)行的加密可能涉及對(duì)病毒代碼或受害文件數(shù)據(jù)執(zhí)行的復(fù)雜數(shù)學(xué)或邏輯運(yùn)算,使得病毒代碼難以辨認(rèn),從而對(duì)病毒代碼難以有時(shí)不可能進(jìn)行分析和識(shí)別。
此外,由于加密可以依賴于某些數(shù)字密鑰,該數(shù)字可以從一個(gè)受感染對(duì)樣本更改為另一個(gè)樣本,因此模式匹配可能不足以識(shí)別病毒體。防病毒引擎應(yīng)該能夠首先將病毒解密,然后才能將它與已知病毒的數(shù)據(jù)庫(kù)進(jìn)行匹配,或者以別的方式對(duì)它進(jìn)行分析。
為了執(zhí)行其計(jì)劃的用途,病毒本身應(yīng)該能夠解密代碼或數(shù)據(jù)的加密部分,以便它可以使用這些部分。防病毒系統(tǒng)有時(shí)可以分析病毒代碼的負(fù)責(zé)解密的部分。然后,防病毒系統(tǒng)可以使用病毒本身用來解密加密部分的相同解密算法,以便防病毒系統(tǒng)可以繼續(xù)對(duì)病毒文件進(jìn)行進(jìn)一步的分析。這有時(shí)可以通過在一個(gè)非常安全的環(huán)境中模擬病毒體來進(jìn)行,該安全環(huán)境不允許病毒可能采取的任何惡意操作在實(shí)際計(jì)算機(jī)上執(zhí)行,而只在防病毒系統(tǒng)模擬的“虛擬機(jī)”上進(jìn)行。
加密技術(shù)使用一個(gè)密鑰,該密鑰用于將原始的代碼或數(shù)據(jù)轉(zhuǎn)換為難辨認(rèn)的加密狀態(tài)。密鑰通常是某個(gè)整數(shù)或?qū)崝?shù),但也可以是某個(gè)字符串。密鑰用于對(duì)數(shù)據(jù)進(jìn)行加密,并可以被病毒用來解密已經(jīng)加密的數(shù)據(jù),否則,數(shù)據(jù)對(duì)于病毒無用。
通常,病毒將密鑰存儲(chǔ)在被感染的文件內(nèi)的某處。在這樣的情況下,防病毒系統(tǒng)可以從被感染的文件中來檢索它,并使用它來解密被病毒加密的數(shù)據(jù)的所需要的部分。
新型的破壞性的病毒在不斷地涌現(xiàn)。例如,出現(xiàn)了一種被稱為Win32/Magistr.B.Worm的病毒。此病毒雖然相對(duì)比較檢測(cè)到,但是卻難以刪除。這種類型的病毒對(duì)宿主文件的入口點(diǎn)代碼的一部分進(jìn)行加密。為了有效地刪除這種類型的病毒,并使代碼得以恢復(fù),應(yīng)該對(duì)這種代碼進(jìn)行解密。然而,對(duì)于這種類型病毒,用于加密的密鑰不像某些病毒那樣存儲(chǔ)在病毒體內(nèi)。相反,這種類型的病毒的加密密鑰是使用Windows操作系統(tǒng)中的計(jì)算機(jī)的名稱計(jì)算出來的。在將被感染的文件復(fù)制到另一個(gè)計(jì)算機(jī)的情況下,當(dāng)被感染的計(jì)算機(jī)名未知時(shí),很難檢索該密鑰,從而難以將代碼解密。
相應(yīng)地,諸如Win32/Magistr.B之類的病毒以不同的方式使用加密技術(shù)。在將病毒體本身加密的同時(shí),為使檢測(cè)復(fù)雜化,病毒還將原始文件的一部分加密,以使消除過程復(fù)雜化,可能使用計(jì)算機(jī)名作為密鑰。防病毒系統(tǒng)應(yīng)該能夠?qū)⒃嘉募哪且徊糠纸饷埽员銓⒃撐募耆謴?fù)到其被感染前的狀態(tài)。
具體來說,如上所述,病毒有時(shí)將用于將文件的加密部分加密的密鑰存儲(chǔ)在同一個(gè)被感染文件內(nèi)。然而,諸如Win32/Magistr.B之類的病毒,不將加密密鑰存儲(chǔ)在文件中,而是使用它從系統(tǒng)本身檢索到的“計(jì)算機(jī)名”作為加密密鑰。這就寄希望于計(jì)算機(jī)名未改變,對(duì)于給定計(jì)算機(jī)保持不變,并可以安全地用于將在該計(jì)算機(jī)上感染的文件中的數(shù)據(jù)解密。
問題是,當(dāng)防病毒系統(tǒng)需要糾正這樣的被感染文件的(并因此需要將其一部分解密)時(shí),它還需要訪問文件在其上被感染的計(jì)算機(jī)的計(jì)算機(jī)名,以獲取密鑰,并能夠?qū)?shù)據(jù)的加密的那一部分解密,以便可以將它們恢復(fù)。然而,檢索密鑰并使用它是非常危險(xiǎn)的,并不總是可行的因?yàn)楫?dāng)防病毒系統(tǒng)掃描網(wǎng)絡(luò)上的文件時(shí),防病毒系統(tǒng)程序本身可能位于不同的計(jì)算機(jī)上(例如,網(wǎng)絡(luò)服務(wù)器),而不是位于被感染的工作站計(jì)算機(jī)本身上。相應(yīng)地,防病毒系統(tǒng)不能總是可靠地檢索到被感染的計(jì)算機(jī)的計(jì)算機(jī)名。
另一個(gè)問題是,當(dāng)被感染的文件移出它被感染所在的計(jì)算機(jī)(例如,發(fā)送到防病毒小組進(jìn)行分析,或者計(jì)算機(jī)名被受感染計(jì)算機(jī)上的用戶改變),可能無法確定原始計(jì)算機(jī)的名稱。

發(fā)明內(nèi)容
說明了一種方法、系統(tǒng)和計(jì)算機(jī)代碼,它們用于消除計(jì)算機(jī)系統(tǒng)中存在的加密的計(jì)算機(jī)病毒,并包括對(duì)加密數(shù)據(jù)進(jìn)行分析,以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié),基于最頻繁出現(xiàn)的加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰,并使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)。
檢測(cè)和消除計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)病毒的方法包括掃描計(jì)算機(jī)系統(tǒng)以檢測(cè)計(jì)算機(jī)病毒,確定是否將加密數(shù)據(jù)解密以便消除在計(jì)算機(jī)系統(tǒng)中檢測(cè)到的計(jì)算機(jī)病毒,分析加密數(shù)據(jù)以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié),當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位,基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰,并使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
一種用于檢測(cè)和消除計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)病毒的系統(tǒng)包括掃描設(shè)備,用于掃描計(jì)算機(jī)系統(tǒng)以檢測(cè)計(jì)算機(jī)病毒,解密控制設(shè)備,用于判斷在檢測(cè)到計(jì)算機(jī)病毒之后是否對(duì)計(jì)算機(jī)系統(tǒng)中的加密數(shù)據(jù)進(jìn)行解密,加密字節(jié)處理設(shè)備,用于分析加密數(shù)據(jù),以當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié),主導(dǎo)字節(jié)控制器,用于判斷最頻繁出現(xiàn)的加密字節(jié)是否為主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)中在統(tǒng)計(jì)上占主導(dǎo)地位,加密密鑰計(jì)算設(shè)備,用于基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰,解密設(shè)備,用于基于加密密鑰來解密加密數(shù)據(jù)的每一個(gè)字節(jié),以將加密數(shù)據(jù)恢復(fù)為在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
一種可被計(jì)算機(jī)系統(tǒng)讀取的程序存儲(chǔ)介質(zhì),包含可由計(jì)算機(jī)系統(tǒng)執(zhí)行以進(jìn)行抽彩的指令的程序,包括下列步驟掃描計(jì)算機(jī)系統(tǒng)以檢測(cè)計(jì)算機(jī)病毒,確定是否將加密數(shù)據(jù)解密以便消除在計(jì)算機(jī)系統(tǒng)中檢測(cè)到的計(jì)算機(jī)病毒,分析加密數(shù)據(jù)以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié),當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)是在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位,基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰,并使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
一種將被計(jì)算機(jī)病毒感染的計(jì)算機(jī)系統(tǒng)中的加密數(shù)據(jù)解密的方法包括下列步驟判斷是否將要對(duì)加密數(shù)據(jù)進(jìn)行解密,分析加密數(shù)據(jù)以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié),當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位,基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)以及它們之間的已知關(guān)系來計(jì)算加密密鑰,并使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
附圖簡(jiǎn)要說明通過參考下列詳細(xì)描述并參考附圖,可以對(duì)本發(fā)明和其中的許多優(yōu)點(diǎn)有一個(gè)比較完整的認(rèn)識(shí),其特征在于

圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于消除病毒的系統(tǒng)的流程圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于檢測(cè)和消除計(jì)算機(jī)病毒的方法的流程圖;圖3是說明根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于檢測(cè)和消除計(jì)算機(jī)病毒的系統(tǒng)的方框圖;圖4是能夠?qū)崿F(xiàn)根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于檢測(cè)和消除計(jì)算機(jī)病毒的方法和系統(tǒng)的計(jì)算機(jī)系統(tǒng)的方框圖;以及圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的將計(jì)算機(jī)系統(tǒng)中的加密數(shù)據(jù)解密的方法的流程圖。
具體實(shí)施例方式
在描述附圖中說明的本發(fā)明的優(yōu)選實(shí)施例時(shí),為了清楚起見,使用了特定的術(shù)語。然而,本發(fā)明不僅限于如此選擇的特定的術(shù)語,應(yīng)該理解,每一個(gè)特定元素都包括按類似方式操作的所有技術(shù)等效物。
本系統(tǒng)能夠掃描并檢測(cè)病毒,包括用于消除它在文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)、其他對(duì)象等等中發(fā)現(xiàn)的感染的機(jī)制或修復(fù)過程。
優(yōu)選情況下,該系統(tǒng)掃描計(jì)算機(jī)系統(tǒng)的文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)以檢測(cè)病毒??梢允褂酶鞣N掃描方法來檢測(cè)文件中是否存在病毒。系統(tǒng)可以利用簽名掃描,在這種方法中,系統(tǒng)掃描是否存在病毒簽名,病毒簽名是病毒留在被感染文件中的獨(dú)特的十六進(jìn)制代碼集。可以利用啟發(fā)式掃描來檢測(cè)未知病毒,即,其病毒簽名還未知的病毒。啟發(fā)式掃描涉及用于檢測(cè)類似于病毒的行為模式的人工智能技術(shù)??梢允褂猛暾詸z查來判斷文件的大小是否由于在該文件中存在病毒而增大。此外,系統(tǒng)可以監(jiān)視程序的某些操作(如調(diào)用函數(shù)),以檢測(cè)可疑的程序行為。此外,系統(tǒng)還可以監(jiān)視程序系統(tǒng)調(diào)用,以檢測(cè)和停止表示存在病毒的系統(tǒng)調(diào)用。盡管上文討論了多種掃描和檢測(cè)技術(shù),但是本發(fā)明不僅限于使用這些技術(shù),但包括用于探測(cè)病毒的任何技術(shù)。
一旦檢測(cè)到了病毒,主要的問題是消除病毒,并修復(fù)病毒所進(jìn)行的任何損壞。修復(fù)過程的目的試圖將諸如文件、內(nèi)存或磁盤啟動(dòng)扇區(qū)等等之類的對(duì)象盡可能地恢復(fù)到其被感染之前的初始狀態(tài),如此給檢測(cè)到被感染的對(duì)象的消毒。
修復(fù)過程在系統(tǒng)識(shí)別或檢測(cè)到病毒之后運(yùn)行,而用戶要求防病毒系統(tǒng)修復(fù)被感染的對(duì)象作為對(duì)來自防病毒系統(tǒng)的警報(bào)的響應(yīng)或者通過給防病毒系統(tǒng)發(fā)出指令,以無需提示自動(dòng)修復(fù)發(fā)現(xiàn)被感染的對(duì)象。一般來說,此選項(xiàng)是用戶或系統(tǒng)管理員預(yù)先選擇的。
修復(fù)過程由一組可以按順序執(zhí)行的指令構(gòu)成。這些指令可以對(duì)文件執(zhí)行各種更改,如將一個(gè)文件中的數(shù)據(jù)塊從一個(gè)地方復(fù)制到另一個(gè)地方,或者,將解密數(shù)據(jù)從內(nèi)部緩沖區(qū)復(fù)制到一個(gè)文件中的各個(gè)地方(例如,在病毒將對(duì)于修復(fù)過程很關(guān)鍵的某些數(shù)據(jù)加密的情況下)或剪切包含病毒代碼的文件的片段。
修復(fù)過程指令可以作為一組以C編寫的快速執(zhí)行的函數(shù)來實(shí)現(xiàn),該組函數(shù)可以幫助修復(fù)過程指令完成復(fù)雜的修復(fù)過程。
如上所述,可以基于病毒簽名來檢測(cè)病毒。在這種情況下,還可以輕松地識(shí)別已經(jīng)檢測(cè)到了哪些特定的病毒,因?yàn)椴《竞灻麑?duì)于每一個(gè)病毒都是唯一的。那么,在某種程度上簡(jiǎn)化了修復(fù)過程,因?yàn)椴《镜纳矸菔且阎?,如此,病毒所造成的損壞的類型是已知的。否則,可能需要分析病毒,以便判斷病毒可能會(huì)產(chǎn)生什么樣的損壞。
如上所述,病毒常常將病毒體的一部分和被感染的文件的一部分加密,以便使病毒檢測(cè)和消除過程復(fù)雜化。例如,Win32/Magistr.B.Worm將被感染的文件的入口點(diǎn)代碼加密,如此,使從被感染文件中刪除病毒以及修復(fù)病毒對(duì)文件所造成的任何損壞的過程復(fù)雜化。Win32/Magistr.B.Worm病毒進(jìn)一步使刪除和修復(fù)過程復(fù)雜化的方式在于,它不將加密密鑰存儲(chǔ)在被感染的文件中(在那里可以由系統(tǒng)檢索到),而是使用計(jì)算機(jī)名來生成加密密鑰。這就提出了一個(gè)問題,例如,當(dāng)病毒檢測(cè)和消除系統(tǒng)程序在服務(wù)器或被感染計(jì)算機(jī)系統(tǒng)之外的計(jì)算機(jī)上運(yùn)行時(shí)或者當(dāng)病毒將要發(fā)送給防病毒小組進(jìn)行分析時(shí)。在這兩種情況下,病毒檢測(cè)和消除系統(tǒng)可能無法獲得被感染的計(jì)算機(jī)的計(jì)算機(jī)名。
盡管上述問題看起來不可能解決,因?yàn)榻o防病毒系統(tǒng)提供了由未知密鑰加密的未知數(shù)據(jù),但是,本系統(tǒng)能夠使用成功率很高的概率算法來確定密鑰。本系統(tǒng)能夠基于在組合的原始代碼中某些字節(jié)的出現(xiàn)概率確定未知的加密密鑰。
該算法基于這樣的認(rèn)識(shí)某些系統(tǒng)可能包括一些字節(jié),這些字節(jié)具有某些形式,可以被確定和用于確定病毒所使用的密鑰。例如,英特爾處理器的32位可執(zhí)行代碼包含許多“零”(值“零”的字節(jié)),和值255的字節(jié)。例如,這些類型的字節(jié)的百分比可能非常高,甚至可以超過所有字節(jié)的60%。此外,值為零的字節(jié)常常成對(duì)出現(xiàn),這就可以允許這些字節(jié)比較容易地被檢測(cè)到,從而有助于本系統(tǒng)和方法。值得注意的是,對(duì)于其他處理器,根據(jù)被病毒感染的對(duì)象的類型,帶有不同值的字節(jié)可以是最常發(fā)生的字節(jié),本發(fā)明不僅限于與任何特定的處理器或?qū)ο笠黄鹗褂谩?br> 本系統(tǒng)和方法可以使用這里簡(jiǎn)稱為“概率加密密鑰猜測(cè)”的系統(tǒng)。病毒常常使用的加密方法是用一個(gè)恒定的密鑰對(duì)數(shù)據(jù)的每一個(gè)字節(jié)執(zhí)行邏輯XOR運(yùn)算。相應(yīng)地,使用在加密之前包含零的字節(jié)將在加密之后包含所使用的密鑰的值這一知識(shí)。
由于零是在原始數(shù)據(jù)中最??吹降闹担用軘?shù)據(jù)中最??吹降闹祵⑹欠啦《鞠到y(tǒng)查找的密鑰的值。這種情況為真的概率與零為原始數(shù)據(jù)中最常使用的值的概率相同,非常高。事實(shí)上,在本系統(tǒng)中,使用概率密鑰猜測(cè)來識(shí)別原始數(shù)據(jù)的字節(jié)。結(jié)果,已知加密數(shù)據(jù)可以與“已知”或其中加密方法(利用未知加密密鑰對(duì)原始數(shù)據(jù)執(zhí)行邏輯XOR操作)也已知的原始數(shù)據(jù)的至少預(yù)期字節(jié)進(jìn)行比較。如此,可以確定加密密鑰,一旦確定,便可以基于已知的加密方法應(yīng)用于其余的加密數(shù)據(jù)以恢復(fù)原始數(shù)據(jù)。
如此,本系統(tǒng)可以統(tǒng)計(jì)加密數(shù)據(jù)中每一個(gè)字節(jié)的出現(xiàn)次數(shù),并選擇最頻繁使用的那一個(gè)。在此示例中,這將是密鑰。
具體來說,通過分析EXE入口點(diǎn)代碼,很清楚,在代碼中00(零)和FF(-1)字節(jié)比其他字節(jié)多,特別是在EXE32位和較高位中,因?yàn)閿?shù)字與所使用的位數(shù)對(duì)準(zhǔn),小的數(shù)字用零(對(duì)于正數(shù))和-1(對(duì)于負(fù)數(shù))填充。
如果用于加密的方法是已知的,系統(tǒng)可以計(jì)算零和-1字節(jié)的加密值,然后查找那些值,并據(jù)此計(jì)算用于加密的密鑰。
例如,如果密鑰值是2,加密的方法是將密鑰值與代碼中的每個(gè)字節(jié)相加,這就意味著,是零的每個(gè)字節(jié)現(xiàn)在是2(因?yàn)?+2=2),是-1的每個(gè)字節(jié)現(xiàn)在是1(因?yàn)?1+2=1)。在這樣的加密中,1和2很可能比其他字節(jié)多。那么,查找密鑰相對(duì)比較容易。1和2占主導(dǎo)地位。顯然,密鑰是2,因?yàn)?-X=-1,2-X=0,X=2。如此,找到了密鑰。
如圖1所示,在開始之后(步驟S2),判斷EXE入口點(diǎn)是否需要解密。在此示例中,加密方法是已知的,加密密鑰是未知的(步驟S4)。在步驟S6中,找到了加密代碼中最占主導(dǎo)地位的字節(jié)。然后,就占主導(dǎo)地位的字節(jié)在統(tǒng)計(jì)上是否比其他字節(jié)出現(xiàn)次數(shù)更加頻繁進(jìn)行判斷(取決于EXE位類型16、32、64)(步驟S8)。如果在統(tǒng)計(jì)上判斷認(rèn)為某些字節(jié)占主導(dǎo)地位不安全(步驟S10),則該過程結(jié)束(步驟S16)。如果認(rèn)為某些字節(jié)占主導(dǎo)地位是安全的,則假設(shè)它們最初是0和-1,則如上所述相應(yīng)地對(duì)占主導(dǎo)地位的字節(jié)執(zhí)行相反的加密方法(步驟S12),并確定密鑰。例如,為確定密鑰,可以使用下列公式F(加密字節(jié)密鑰)=解密字節(jié)(0,-1)。然后,使用密鑰將代碼解密(步驟S14),過程結(jié)束(步驟16)。
雖然上文的講述是在假設(shè)加密方法執(zhí)行XOR運(yùn)算的情況下進(jìn)行的,但是,本系統(tǒng)和方法不僅限于此。即,本系統(tǒng)和方法可以用于任何類型的在其中可以確定加密方法并可以執(zhí)行解密的病毒。例如,可以采用各種加密方法,可以使用本系統(tǒng)來確定每一種加密方法的有效的解密密鑰,直到找到正確的加密類型和對(duì)應(yīng)的密鑰。此外,雖然上文是就32位可執(zhí)行代碼(其中0字節(jié)和/或255字節(jié)可能占主導(dǎo)地位)進(jìn)行描述的,對(duì)于任何類型的可執(zhí)行代碼(其中,已知,或者可以判斷,對(duì)于特定的已知值,足夠百分比的字節(jié)是已知的),都可以實(shí)現(xiàn)本系統(tǒng)。
圖1的流程圖描述了用于修復(fù)病毒的一種方法,該方法在下列特定情況下使用,已知,文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)的原始數(shù)據(jù)已知被0和-1值占主導(dǎo)地位。然而,本方法和系統(tǒng)不僅限于這種情況。
圖2說明了根據(jù)本發(fā)明的檢測(cè)和消除病毒的比較一般的方法。在步驟S20中,掃描計(jì)算機(jī)系統(tǒng),以檢測(cè)是否存在計(jì)算機(jī)病毒。在步驟S21中,判斷在檢測(cè)到病毒之后是否要將加密數(shù)據(jù)解密。如果數(shù)據(jù)不必解密(在步驟S21中為“否”),則可以執(zhí)行進(jìn)一步的處理(步驟S26)。否則,在步驟S22中,確定加密數(shù)據(jù)中的最頻繁出現(xiàn)的加密字節(jié)。在步驟S23中,判斷最頻繁出現(xiàn)的加密字節(jié)是否為主導(dǎo)加密字節(jié)(其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)中在統(tǒng)計(jì)上占主導(dǎo)地位)。如果沒有確定主導(dǎo)加密字節(jié),則可以執(zhí)行進(jìn)一步的處理(步驟S26)。基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰(步驟S24)。然后使用加密密鑰來將加密數(shù)據(jù)的每一個(gè)字節(jié)解密,并利用已知關(guān)系和加密密鑰來將加密數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)(步驟S25)。然后,可以使用恢復(fù)的原始數(shù)據(jù)進(jìn)行進(jìn)一步的處理(步驟S26)。
在掃描步驟(步驟S20)中,可以利用上文描述的任何掃描方法來檢測(cè)在文件、計(jì)算機(jī)系統(tǒng)的內(nèi)存、磁盤啟動(dòng)扇區(qū)中是否存在病毒。如果在掃描步驟中沒有檢測(cè)到病毒,則可以應(yīng)用補(bǔ)充處理(步驟S26)。
在判斷步驟S21中,就是否將加密數(shù)據(jù)解密進(jìn)行判斷。例如,如果在步驟S20中檢測(cè)到了病毒,但病毒是一個(gè)已知病毒,可能不需要解密就可以消除,可能不需要對(duì)加密數(shù)據(jù)進(jìn)行解密。如果不需要進(jìn)行解密(在步驟S21中為“否”),則可以執(zhí)行進(jìn)一步的處理(步驟S26)。下面將詳細(xì)討論此進(jìn)一步的處理。如果需要對(duì)加密數(shù)據(jù)進(jìn)行解密(在步驟S21中為“是”),則在步驟S22中對(duì)加密數(shù)據(jù)進(jìn)行分析。
在步驟S22中,對(duì)加密數(shù)據(jù)進(jìn)行分析,以識(shí)別加密數(shù)據(jù)的最頻繁出現(xiàn)的字節(jié)。簡(jiǎn)單來說,這是通過統(tǒng)計(jì)加密數(shù)據(jù)的每一個(gè)字節(jié)的出現(xiàn)次數(shù)來實(shí)現(xiàn)。即,統(tǒng)計(jì)加密數(shù)據(jù)中的特定的字節(jié)的每一次出現(xiàn)。然后,確定加密數(shù)據(jù)的最頻繁出現(xiàn)的字節(jié)。
在步驟23中,就最頻繁出現(xiàn)的加密字節(jié)是否為主導(dǎo)加密字節(jié)進(jìn)行判斷。即,基于加密數(shù)據(jù)的每一個(gè)字節(jié)的統(tǒng)計(jì),判斷最頻繁出現(xiàn)的加密字節(jié)是否占加密數(shù)據(jù)的足夠的百分比,以在統(tǒng)計(jì)上在加密數(shù)據(jù)中占主導(dǎo)地位。如果沒有發(fā)現(xiàn)主導(dǎo)加密字節(jié)(在步驟S23中為“否”),則可以進(jìn)行進(jìn)一步的處理(步驟S26)。在這種情況下,概率加密密鑰猜測(cè)可能不能提供可靠的加密密鑰,因?yàn)闆]有找到主導(dǎo)加密字節(jié)。在找到主導(dǎo)加密字節(jié)的情況下(在步驟S23中為“是”),可以將主導(dǎo)加密字節(jié)與原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)進(jìn)行比較(步驟S24)。
在步驟S24中,基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)之間的已知關(guān)系來計(jì)算加密密鑰。已知關(guān)系可以是病毒利用的加密方法。將主導(dǎo)加密字節(jié)與原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)進(jìn)行比較。一般來說,原始數(shù)據(jù)是指在被計(jì)算機(jī)病毒加密之前文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)中存在的數(shù)據(jù)。例如,在圖1中描述的方法中,判斷1和2是主導(dǎo)加密字節(jié)。由于0和-1預(yù)計(jì)是原始數(shù)據(jù)的最占優(yōu)勢(shì)的字節(jié),0和1是對(duì)應(yīng)的預(yù)期原始字節(jié)。如上所述,根據(jù)情況,可以預(yù)期不同的字節(jié)在原始數(shù)據(jù)中最頻繁地出現(xiàn)。許多病毒所使用的加密方法是借助于加密密鑰對(duì)原始數(shù)據(jù)的每一個(gè)字節(jié)進(jìn)行邏輯XOR運(yùn)算,加密密鑰保持不變。如此,預(yù)期的原始字節(jié)+加密密鑰=加密數(shù)據(jù)的主導(dǎo)加密字節(jié)。在有一個(gè)以上的主導(dǎo)加密字節(jié)的情況下,將會(huì)有一個(gè)以上的對(duì)應(yīng)著預(yù)期原始字節(jié),然而,加密密鑰保持不變,以便加密密鑰是使對(duì)于數(shù)據(jù)的每一個(gè)主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的每一個(gè)對(duì)應(yīng)的預(yù)期原始字節(jié)來說上述等式都為真的值。例如,如上文參考圖1所描述的,主導(dǎo)加密字節(jié)是1和2。對(duì)應(yīng)的預(yù)期原始字節(jié)預(yù)計(jì)分別是-1和0。加密密鑰是使下列兩個(gè)等式都成立的值-l+X=1和0+X=2。如此,如上所述,加密密鑰是2。值得注意的是,對(duì)應(yīng)的預(yù)期原始字節(jié)是0,此計(jì)算步驟特別簡(jiǎn)單,因?yàn)榧用苊荑€將是主導(dǎo)加密字節(jié)。一旦計(jì)算了加密密鑰,可以將加密數(shù)據(jù)解密(步驟S26)。
在步驟S25中,由于加密密鑰現(xiàn)在是已知的,加密方法也已知,可以通過簡(jiǎn)單地顛倒加密方法并應(yīng)用加密數(shù)據(jù)和加密密鑰,將加密數(shù)據(jù)解密,以恢復(fù)原始數(shù)據(jù)。然后,恢復(fù)的原始數(shù)據(jù)可以在進(jìn)一步的處理中利用(步驟26)。
進(jìn)一步處理(步驟S26)是指檢測(cè)和消除病毒所需的任何其他處理。例如,在掃描步驟(S20)中沒有檢測(cè)到病毒的情況下,進(jìn)一步處理可以是指掃描另一個(gè)文件、內(nèi)存或磁盤啟動(dòng)扇區(qū)。或者,進(jìn)一步處理可以是指使用不同的掃描方法再次開始處理。如果沒有必要將數(shù)據(jù)解密(在步驟S21中為“否”),進(jìn)一步的處理可以是如上所述的任何消除處理,如復(fù)制數(shù)據(jù)的一部分,刪除數(shù)據(jù)的一部分。在加密數(shù)據(jù)不存在主導(dǎo)加密字節(jié)的情況下(在步驟S23)的情況下,補(bǔ)充處理可以是指應(yīng)用某些其他解密系統(tǒng),如強(qiáng)力方法,而沒有本系統(tǒng)的概率加密密鑰推測(cè)的優(yōu)點(diǎn)。在步驟S25中在將加密數(shù)據(jù)解密以恢復(fù)原始數(shù)據(jù)之后需要補(bǔ)充處理的情況下,進(jìn)一步的處理還可以是指其他消除處理,如對(duì)恢復(fù)的原始數(shù)據(jù)分析病毒或從文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)等等刪除病毒之類的操作。盡管上文討論了特定的補(bǔ)充處理步驟,但是,應(yīng)該理解,本發(fā)明不僅限于此,補(bǔ)充處理可以是指檢測(cè)和消除計(jì)算機(jī)病毒的任何處理。
這里所描述的方法可以通過用于檢測(cè)和消除計(jì)算機(jī)病毒的系統(tǒng)來實(shí)現(xiàn)。下面將參考圖3對(duì)用于檢測(cè)和消除計(jì)算機(jī)病毒的系統(tǒng)進(jìn)行描述。
提供了一個(gè)掃描設(shè)備30,用于掃描文件、內(nèi)存、啟動(dòng)扇區(qū)等等,以檢測(cè)是否存在計(jì)算機(jī)病毒或其他惡意代碼。掃描設(shè)備可以實(shí)現(xiàn)上文所提及的任何或所有掃描方法,或任何其他所需要的掃描方法。如果沒有檢測(cè)到病毒,補(bǔ)充處理設(shè)備36可以應(yīng)用補(bǔ)充處理,以便檢測(cè)和消除計(jì)算機(jī)病毒。下面將詳細(xì)描述補(bǔ)充處理設(shè)備36。
解密控制設(shè)備31判斷是否應(yīng)該將文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)等等中檢測(cè)到的加密數(shù)據(jù)進(jìn)行解密,如果掃描設(shè)備30檢測(cè)到了計(jì)算機(jī)病毒,但不需要解密就可以消除計(jì)算機(jī)病毒。如果不需要解密,則可以指示補(bǔ)充處理設(shè)備36以為文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)等等中的數(shù)據(jù)提供補(bǔ)充處理。如果需要解密,則由加密字節(jié)處理設(shè)備32對(duì)加密數(shù)據(jù)進(jìn)行分析。
加密字節(jié)處理設(shè)備32分析加密數(shù)據(jù),以判斷加密數(shù)據(jù)中的最頻繁出現(xiàn)的加密字節(jié)。簡(jiǎn)單來說,加密字節(jié)處理設(shè)備32只將加密數(shù)據(jù)的每一個(gè)特定的字節(jié)的每一次出現(xiàn)相加。加密數(shù)據(jù)的最頻繁出現(xiàn)的特定的字節(jié)是加密數(shù)據(jù)中最頻繁出現(xiàn)的加密字節(jié)。
主導(dǎo)字節(jié)控制器33確認(rèn)加密數(shù)據(jù)中的最頻繁出現(xiàn)的加密字節(jié)是否為主導(dǎo)加密字節(jié)。即,主導(dǎo)字節(jié)控制器33判斷加密字節(jié)處理設(shè)備32所提供的最頻繁出現(xiàn)的加密字節(jié)是否在統(tǒng)計(jì)上在加密數(shù)據(jù)中占主導(dǎo)地位。如果是這種情況,則可以將主導(dǎo)加密字節(jié)與加密密鑰計(jì)算設(shè)備34中的原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)進(jìn)行比較。如果主導(dǎo)加密字節(jié)在統(tǒng)計(jì)上不占主導(dǎo)地位,則概率加密密鑰猜測(cè)可能不提供加密密鑰。然后,可以在補(bǔ)充處理設(shè)備36中對(duì)加密數(shù)據(jù)進(jìn)行補(bǔ)充處理。
加密密鑰計(jì)算設(shè)備34基于加密數(shù)據(jù)的最主導(dǎo)的加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)之間的已知關(guān)系來計(jì)算加密密鑰。已知關(guān)系可以是病毒所使用的加密的方法。如上所述,病毒常常借助于加密密鑰并對(duì)原始數(shù)據(jù)的每一個(gè)字節(jié)進(jìn)行邏輯XOR運(yùn)算來產(chǎn)生加密數(shù)據(jù)。如此,預(yù)期的原始字節(jié)+加密密鑰=主導(dǎo)加密字節(jié)。通過使用此已知關(guān)系,加密密鑰計(jì)算設(shè)備34確定加密密鑰,因?yàn)樵紨?shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)是已知的,加密數(shù)據(jù)的主導(dǎo)加密字節(jié)是已知的。如上所述,關(guān)系與在有多個(gè)主導(dǎo)加密字節(jié)從而有多個(gè)數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)的情況下對(duì)于確定加密密鑰同樣有用。在這種情況下,加密密鑰只不過是使加密數(shù)據(jù)的每一個(gè)主導(dǎo)加密字節(jié)和其對(duì)應(yīng)的預(yù)期原始字節(jié)的關(guān)系為真的值。
一旦計(jì)算了加密密鑰,解密設(shè)備35將加密數(shù)據(jù)解密以恢復(fù)被計(jì)算機(jī)病毒感染之前文件、內(nèi)存、磁盤啟動(dòng)扇區(qū)中存在的原始數(shù)據(jù)。解密是使用加密密鑰和已知關(guān)系進(jìn)行的。具體來說,加密密鑰是在解密方法中利用的,解密方法和加密方法相反,由已知關(guān)系代表。如此,數(shù)據(jù)的每一個(gè)加密字節(jié)都可以恢復(fù)到被計(jì)算機(jī)病毒加密之前存在的原始數(shù)據(jù)?;謴?fù)的原始數(shù)據(jù)可以接收補(bǔ)充處理設(shè)備36的進(jìn)一步處理。
補(bǔ)充處理設(shè)備36提供了廣泛的處理選項(xiàng)。例如,當(dāng)掃描設(shè)備30沒有檢測(cè)到病毒時(shí),進(jìn)一步的處理可以包括掃描另一個(gè)文件、內(nèi)存或磁盤啟動(dòng)扇區(qū)。在發(fā)現(xiàn)病毒的情況下,但根據(jù)解密控制器31判斷不需要對(duì)加密數(shù)據(jù)進(jìn)行解密,補(bǔ)充處理通常包括如上所述的任何消除過程,如,復(fù)制或從被感染的文件剪切數(shù)據(jù)。當(dāng)主導(dǎo)字節(jié)控制器33沒有發(fā)現(xiàn)加密數(shù)據(jù)的主導(dǎo)加密字節(jié)時(shí),即,當(dāng)加密數(shù)據(jù)中的最頻繁出現(xiàn)的加密字節(jié)在加密數(shù)據(jù)中在統(tǒng)計(jì)上不占主導(dǎo)地位時(shí),補(bǔ)充處理可以包括任何其他解密方法。具體來說,補(bǔ)充處理可以包括判斷加密密鑰的另一種方法,以便可以將加密數(shù)據(jù)解密。在解密設(shè)備35將加密數(shù)據(jù)解密之后,恢復(fù)的原始數(shù)據(jù)可以接收補(bǔ)充處理,如分析病毒以了解其操作或任何其他消除處理。盡管敘述了這些具體的補(bǔ)充處理技術(shù),但是本發(fā)明不僅限于此,補(bǔ)充處理可以應(yīng)用于幫助探測(cè)和消除計(jì)算機(jī)病毒的任何處理過程。
上文描述的方法和系統(tǒng)可以在通用數(shù)字計(jì)算機(jī)、個(gè)人計(jì)算機(jī)(PC)或網(wǎng)絡(luò)服務(wù)器上實(shí)現(xiàn)。圖4顯示了一個(gè)能夠?qū)崿F(xiàn)本系統(tǒng)和方法的計(jì)算機(jī)系統(tǒng)的示例。一般稱為系統(tǒng)400的計(jì)算機(jī)系統(tǒng)可以包括中央處理單元(CPU)402、內(nèi)存404、打印機(jī)接口406、顯示單元408、LAN(局域網(wǎng))數(shù)據(jù)傳輸控制器410、LAN接口412、網(wǎng)絡(luò)控制器414、內(nèi)部總線416、帶有鏈接422的數(shù)據(jù)庫(kù)420,以及一個(gè)或多個(gè)輸入設(shè)備418,如鍵盤、鼠標(biāo)等等。自然,其他組件可以包括在計(jì)算機(jī)系統(tǒng)400中,某些組件可以不需要。系統(tǒng)400還代表計(jì)算機(jī)系統(tǒng)的一個(gè)示例,可以向該計(jì)算機(jī)系統(tǒng)中應(yīng)用用于檢測(cè)和消除計(jì)算機(jī)病毒的系統(tǒng)和方法,以檢測(cè)和消除系統(tǒng)400中存在的任何計(jì)算機(jī)病毒。
如上所述,防病毒系統(tǒng)通常是在不同于正在檢查其中的計(jì)算機(jī)病毒的計(jì)算機(jī)上實(shí)現(xiàn)的。例如,網(wǎng)絡(luò)服務(wù)器可以運(yùn)行防病毒程序以檢查在網(wǎng)絡(luò)的所有工作站上是否存在病毒?;蛘撸W(wǎng)絡(luò)上的每一個(gè)工作站都可以本地獨(dú)立地運(yùn)行防病毒系統(tǒng)。本發(fā)明的方法和系統(tǒng)也可以在電子郵件服務(wù)器上實(shí)現(xiàn),以檢測(cè)和消除電子郵件中存在的病毒,以避免網(wǎng)絡(luò)的感染或網(wǎng)絡(luò)上的單個(gè)工作站的感染。本發(fā)明適用于所有這些情況。
值得注意的是,這里所描述的用于將加密數(shù)據(jù)解密的概率密鑰猜測(cè)方法可以在許多當(dāng)前現(xiàn)有的防病毒系統(tǒng)中使用,以增強(qiáng)可用的消除病毒的處理過程,否則可以在這里所描述的獨(dú)立的防病毒系統(tǒng)中實(shí)現(xiàn)。圖5說明了根據(jù)本發(fā)明的一個(gè)實(shí)施例的將計(jì)算機(jī)系統(tǒng)中的加密數(shù)據(jù)解密的方法。在開始該方法之后(步驟S50),判斷是否需要對(duì)加密數(shù)據(jù)進(jìn)行解密(步驟S52)。在步驟S54,分析加密數(shù)據(jù),以判斷加密數(shù)據(jù)的最頻繁出現(xiàn)的加密字節(jié)。在步驟56,確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是否為主導(dǎo)加密字節(jié)。在步驟58,基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)計(jì)算加密密鑰。在步驟60,基于加密密鑰將加密數(shù)據(jù)解密。
如果不需要解密(在步驟S52中為“否”),則該方法可以結(jié)束(步驟S62)。如果最頻繁出現(xiàn)的加密字節(jié)不是主導(dǎo)加密字節(jié),則該方法可以結(jié)束(步驟S62)。在這種情況下,概率密鑰猜測(cè)可能不會(huì)提供可靠的加密密鑰,如此可能不能用于將加密數(shù)據(jù)解密。請(qǐng)注意,盡管在步驟S62中使用了術(shù)語“結(jié)束”,但這不一定表明將不對(duì)加密數(shù)據(jù)進(jìn)行進(jìn)一步的處理,而只是表明,不需要根據(jù)圖5所示的方法的將數(shù)據(jù)解密的方法來將計(jì)算機(jī)病毒加密的數(shù)據(jù)解密。
步驟50-62代表了參考圖1詳細(xì)描述的方法的比較通用的實(shí)現(xiàn)方式,基本上類似于上文詳細(xì)描述的步驟31-37,這里就不再贅述。
本發(fā)明可以使用根據(jù)本說明書的原理設(shè)計(jì)的通用數(shù)字計(jì)算機(jī)和/或服務(wù)器來方便地實(shí)現(xiàn)。相應(yīng)的軟件代碼可以由熟練的程序員基于本發(fā)明的原理來容易地編寫出來。本發(fā)明還可以通過準(zhǔn)備專用集成電路或通過將常規(guī)組件的相應(yīng)的網(wǎng)絡(luò)互連來實(shí)現(xiàn)。
可以根據(jù)上述原理對(duì)本發(fā)明進(jìn)行各種修改。因此,可以理解,在所附權(quán)利要求的范圍內(nèi),可以以不同于這里所描述的方法來實(shí)施。
權(quán)利要求
1.一種檢測(cè)和消除計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)病毒的方法,包括掃描計(jì)算機(jī)系統(tǒng)以檢測(cè)計(jì)算機(jī)病毒;判斷是否將加密數(shù)據(jù)解密以便消除在計(jì)算機(jī)系統(tǒng)中檢測(cè)到的計(jì)算機(jī)病毒;當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),分析加密數(shù)據(jù)以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié);確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位;基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰;以及使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括應(yīng)用補(bǔ)充處理,以便檢測(cè)和消除計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)病毒。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,應(yīng)用補(bǔ)充處理的步驟將對(duì)恢復(fù)的原始數(shù)據(jù)應(yīng)用補(bǔ)充處理。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)掃描步驟不能檢測(cè)到計(jì)算機(jī)病毒時(shí),執(zhí)行應(yīng)用補(bǔ)充處理的步驟。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)判斷步驟判斷不執(zhí)行將加密數(shù)據(jù)解密的步驟時(shí),執(zhí)行應(yīng)用補(bǔ)充處理的步驟。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)確認(rèn)步驟指出最頻繁出現(xiàn)的加密字節(jié)不是主導(dǎo)加密字節(jié)時(shí),執(zhí)行應(yīng)用補(bǔ)充處理的步驟。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,對(duì)應(yīng)的預(yù)期原始字節(jié)是一個(gè)預(yù)期在原始數(shù)據(jù)中最頻繁出現(xiàn)的原始數(shù)據(jù)的字節(jié)。
8根據(jù)權(quán)利要求7所述的方法,其特征在于,基于主導(dǎo)加密字節(jié)和對(duì)應(yīng)的預(yù)期原始字節(jié)之間的已知關(guān)系確定加密密鑰,其中,已知關(guān)系由計(jì)算機(jī)病毒利用的加密方法來進(jìn)行定義。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,解密步驟是通過對(duì)與加密方法的相反的解密方法應(yīng)用加密密鑰和加密數(shù)據(jù)來執(zhí)行的。
10.一種檢測(cè)和消除計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)病毒的方法,包括掃描設(shè)備,用于掃描計(jì)算機(jī)系統(tǒng)以檢測(cè)計(jì)算機(jī)病毒;解密控制設(shè)備,用于判斷在檢測(cè)到計(jì)算機(jī)病毒之后是否對(duì)計(jì)算機(jī)系統(tǒng)中的加密數(shù)據(jù)進(jìn)行解密;加密字節(jié)處理設(shè)備,用于分析加密數(shù)據(jù),以當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié);主導(dǎo)字節(jié)控制器,用于判斷最頻繁出現(xiàn)的加密字節(jié)是否為主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)中在統(tǒng)計(jì)上占主導(dǎo)地位;加密密鑰計(jì)算設(shè)備,用于基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰;以及解密設(shè)備,用于基于加密密鑰來解密加密數(shù)據(jù)的每一個(gè)字節(jié),以將加密數(shù)據(jù)恢復(fù)為在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的系統(tǒng),進(jìn)一步包括補(bǔ)充處理設(shè)備,用于執(zhí)行補(bǔ)充處理,以便檢測(cè)和消除計(jì)算機(jī)病毒。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,補(bǔ)充處理設(shè)備對(duì)恢復(fù)的原始數(shù)據(jù)執(zhí)行補(bǔ)充處理。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,當(dāng)計(jì)算機(jī)病毒不能被掃描設(shè)備檢測(cè)到時(shí),補(bǔ)充處理設(shè)備執(zhí)行補(bǔ)充處理。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,當(dāng)解密控制設(shè)備指出不執(zhí)行將加密數(shù)據(jù)解密的步驟時(shí),補(bǔ)充處理設(shè)備執(zhí)行補(bǔ)充處理。
15.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,當(dāng)主導(dǎo)字節(jié)控制器判斷最頻繁出現(xiàn)的加密字節(jié)不是主導(dǎo)加密字節(jié)時(shí),補(bǔ)充處理設(shè)備執(zhí)行補(bǔ)充處理。
16.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,對(duì)應(yīng)的預(yù)期原始字節(jié)是一個(gè)在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)中預(yù)期最頻繁出現(xiàn)的原始數(shù)據(jù)的字節(jié)。
17.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,加密字節(jié)分析設(shè)備統(tǒng)計(jì)加密數(shù)據(jù)的每一個(gè)字節(jié)的出現(xiàn)次數(shù),以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié)。
18.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,加密密鑰計(jì)算設(shè)備根據(jù)已知關(guān)系比較主導(dǎo)加密字節(jié)與對(duì)應(yīng)的預(yù)期原始字節(jié),并使用已知關(guān)系計(jì)算加密密鑰。
19.根據(jù)權(quán)利要求18的系統(tǒng),其特征在于,已知關(guān)系基于計(jì)算機(jī)病毒將數(shù)據(jù)加密所使用的加密方法。
20.根據(jù)權(quán)利要求10所述的系統(tǒng),其特征在于,解密設(shè)備基于加密密鑰和與計(jì)算機(jī)病毒將數(shù)據(jù)加密所使用的加密方法相反的解密方法,將加密數(shù)據(jù)的每一個(gè)字節(jié)解密以恢復(fù)原始數(shù)據(jù)。
21.一種可被計(jì)算機(jī)系統(tǒng)讀取的程序存儲(chǔ)介質(zhì),包含可由計(jì)算機(jī)執(zhí)行的代碼,包括用于掃描計(jì)算機(jī)系統(tǒng)以檢測(cè)計(jì)算機(jī)病毒的代碼;用于確定是否將加密數(shù)據(jù)解密以便消除在計(jì)算機(jī)系統(tǒng)中檢測(cè)到的計(jì)算機(jī)病毒的代碼;代碼,用于當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),分析加密數(shù)據(jù)以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié);代碼,用于確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位;代碼,用于基于主導(dǎo)加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰;以及代碼,用于使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為在被計(jì)算機(jī)病毒加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
22.一種將被計(jì)算機(jī)病毒感染的計(jì)算機(jī)系統(tǒng)中的加密數(shù)據(jù)解密的方法,包括判斷是否將要對(duì)加密數(shù)據(jù)進(jìn)行解密;當(dāng)判斷將要對(duì)加密數(shù)據(jù)進(jìn)行解密時(shí),分析加密數(shù)據(jù)以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié);確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位;基于主導(dǎo)加密字節(jié),原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié),以及它們之間的已知關(guān)系來計(jì)算加密密鑰;以及使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為加密之前計(jì)算機(jī)系統(tǒng)中存在的原始數(shù)據(jù)。
23.一種消除計(jì)算機(jī)系統(tǒng)中存在的加密計(jì)算機(jī)病毒的方法,包括對(duì)加密數(shù)據(jù)進(jìn)行分析,以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié);基于最頻繁出現(xiàn)的加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰;以及使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)。
24.根據(jù)權(quán)利要求23所述的方法,進(jìn)一步包括確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),主導(dǎo)加密字節(jié)在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位。
25.一種檢測(cè)和消除計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)病毒的方法,包括加密字節(jié)處理設(shè)備,用于對(duì)加密數(shù)據(jù)進(jìn)行分析,以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié);加密密鑰計(jì)算設(shè)備,用于基于最頻繁出現(xiàn)的加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰;以及解密設(shè)備,使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)。
26.根據(jù)權(quán)利要求25所述的系統(tǒng),進(jìn)一步包括主導(dǎo)字節(jié)控制器,用于判斷最頻繁出現(xiàn)的加密字節(jié)是否為主導(dǎo)加密字節(jié),其中,主導(dǎo)加密字節(jié)在加密數(shù)據(jù)中在統(tǒng)計(jì)上占主導(dǎo)地位。
27.一種可被計(jì)算機(jī)系統(tǒng)讀取的程序存儲(chǔ)介質(zhì),包含可由計(jì)算機(jī)執(zhí)行的代碼,包括代碼,用于對(duì)加密數(shù)據(jù)進(jìn)行分析,以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié);代碼,用于基于最頻繁出現(xiàn)的加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰;以及代碼,用于使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)。
28.根據(jù)權(quán)利要求27所述的程序存儲(chǔ)介質(zhì)進(jìn)一步包括代碼,用于確認(rèn)最頻繁出現(xiàn)的加密字節(jié)是主導(dǎo)加密字節(jié),主導(dǎo)加密字節(jié)在加密數(shù)據(jù)的其他字節(jié)中在統(tǒng)計(jì)上占主導(dǎo)地位。
全文摘要
本發(fā)明公開了一種病毒檢測(cè)系統(tǒng)。一種消除計(jì)算機(jī)系統(tǒng)中存在的加密計(jì)算機(jī)病毒的方法包括對(duì)加密數(shù)據(jù)進(jìn)行分析,以確定加密數(shù)據(jù)中的至少一個(gè)最頻繁出現(xiàn)的加密字節(jié),基于最頻繁出現(xiàn)的加密字節(jié)和原始數(shù)據(jù)的對(duì)應(yīng)的預(yù)期原始字節(jié)來計(jì)算加密密鑰,并使用加密密鑰來將加密數(shù)據(jù)解密,以將加密數(shù)據(jù)恢復(fù)為原始數(shù)據(jù)。
文檔編號(hào)G06F21/00GK1571947SQ02817850
公開日2005年1月26日 申請(qǐng)日期2002年9月13日 優(yōu)先權(quán)日2001年9月14日
發(fā)明者卡門納·伊茲哈克, 尼曼·維塔利, 馬利萬楚科·塔拉斯 申請(qǐng)人:計(jì)算機(jī)聯(lián)合思想公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
兴海县| 黄大仙区| 磴口县| 鄂托克旗| 财经| 武威市| 盐山县| 佳木斯市| 横峰县| 罗定市| 石门县| 黑山县| 咸阳市| 岑溪市| 新建县| 石楼县| 苍梧县| 阿拉善盟| 新宁县| 霸州市| 双流县| 临沂市| 正阳县| 汝南县| 凌云县| 台南县| 新巴尔虎右旗| 公安县| 阿巴嘎旗| 六盘水市| 马边| 苍溪县| 安塞县| 红安县| 武穴市| 兴安县| 乌审旗| 潞城市| 中山市| 吕梁市| 营口市|