国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法和裝置的制作方法

      文檔序號(hào):6376506閱讀:185來(lái)源:國(guó)知局

      專(zhuān)利名稱(chēng)::一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法和裝置的制作方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及計(jì)算機(jī)安全,具體涉及一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法和裝置。
      背景技術(shù)
      :使用特征碼掃描進(jìn)行病毒樣本識(shí)別是計(jì)算機(jī)反病毒最早使用的病毒查殺技術(shù)。計(jì)算機(jī)反病毒技術(shù)發(fā)展幾十年來(lái),雖然又出現(xiàn)了行為查殺等病毒查殺技術(shù),但特征碼掃描以其準(zhǔn)確和穩(wěn)定等特點(diǎn),依然是目前主流計(jì)算機(jī)反病毒軟件病毒識(shí)別所采用的主要技術(shù),是目前反病毒技術(shù)中的基礎(chǔ)技術(shù)。特征碼掃描是指采用事先提取的病毒特征對(duì)未知樣本進(jìn)行掃描和判斷的方法。特征的提取是由人工分析或自動(dòng)分析識(shí)別確定為病毒后,對(duì)病毒樣本提取的二進(jìn)制或其它特征,這種特征是該種病毒獨(dú)有的、區(qū)別于其它病毒或正常文件的。查毒時(shí),反病毒軟件依次使用其病毒庫(kù)中的特征對(duì)未知文件進(jìn)行掃描,如果某一特征匹配成功,則表示該文件為該特征所代表的病毒,如果所有特征均未匹配,則認(rèn)為該文件不是病毒,是正常文件。特征碼掃描從根本上說(shuō)是一種特征識(shí)別判定技術(shù),其不但可以用于掃描判定病毒,也可以用于掃描判定正常文件,目前在反病毒軟件中也被廣泛的用于正常樣本的判定。特征碼掃描技術(shù)具有準(zhǔn)確、誤報(bào)率低、實(shí)現(xiàn)技術(shù)簡(jiǎn)單的優(yōu)點(diǎn),其技術(shù)成熟,因此目前依然是反病毒技術(shù)中病毒識(shí)別的主要技術(shù)。但同時(shí),特征碼掃描技術(shù)也有明顯的缺點(diǎn),其對(duì)多態(tài)變形、加密的病毒的識(shí)別能力低,且不能識(shí)別未知病毒。除特征碼掃描外,目前反病毒中常用的病毒識(shí)別技術(shù)還有“行為查殺”技術(shù),其基本原理是指對(duì)已運(yùn)行的樣本或在反病毒軟件中可控環(huán)境中(常見(jiàn)為反病毒虛擬機(jī))運(yùn)行樣本,通過(guò)記錄和判定樣本的運(yùn)行行為來(lái)識(shí)別病毒。行為查殺技術(shù)具有能夠查殺未知病毒的能力,但誤報(bào)率高是其目前依然無(wú)法解決的最大缺點(diǎn)。反病毒軟件使用的殺毒技術(shù),主要是指其對(duì)感染型病毒樣本(被感染型病毒感染的正常文件)的清除能力,對(duì)于非感染型病毒,則簡(jiǎn)單的刪除即可。感染型病毒的清除,目前主要采用使用的殺毒記錄殺毒和硬編碼殺毒兩種方法。殺毒記錄殺毒是指,在分析人員分析測(cè)試過(guò)后編寫(xiě)殺毒記錄,查殺時(shí)判定病毒后執(zhí)行對(duì)應(yīng)的殺毒記錄中的殺毒方法進(jìn)行殺毒。殺毒記錄中描述的是其殺毒引擎支持的殺毒方法(如修改程序入口、截取文件尾部等)及參數(shù)的組合。硬編碼殺毒是指編寫(xiě)專(zhuān)門(mén)的程序代碼進(jìn)行殺毒,其應(yīng)用于殺毒情況較復(fù)雜的情況,例如病毒專(zhuān)殺程序。這里選擇開(kāi)源殺毒引擎ClamAV為例對(duì)于傳統(tǒng)殺毒引擎進(jìn)行分析。ClamAV殺毒引擎查殺方法主要包括以下幾種-MD5(MessageDigestAlgorithm5,消息摘要算法第五版)特征病毒分析員為病毒文件生成相應(yīng)的MD5作為其特征。ClamAV引擎通過(guò)MD5作為其病毒特征;-基于PE(PortableExecute,可移植執(zhí)行)文件節(jié)的MD5特征病毒分析員將病毒PE文件的其中一個(gè)節(jié)作為其文件特征,將節(jié)數(shù)據(jù)生成相應(yīng)的MD5作為其病毒特征。-代碼特征代碼特征是非常傳統(tǒng)的一種病毒特征提取方式。病毒分析員將PE文件中具有特殊含義的二進(jìn)制數(shù)據(jù)作為病毒特征,通常選擇病毒代碼的二進(jìn)制作數(shù)據(jù)為病毒特征。ClamAV的代碼特征不僅是匹配二進(jìn)制數(shù)據(jù),還支持通配符,以及部分正則表達(dá)式,還支持基于文件格式的擴(kuò)展匹配,支持邏輯化特征。-PE文件圖標(biāo)特征=Windows上的病毒經(jīng)常將自己的圖標(biāo)偽裝成非可移植執(zhí)行文件的圖標(biāo),于是ClamAV提供將圖標(biāo)作為病毒的特征。以上特征都是基于ClamAV殺毒引擎體系構(gòu)架。ClamAV殺毒引擎是以算法為基礎(chǔ)的殺毒引擎,其核心的算法是B-M單模匹配算法以及A-C多模匹配算法。由于傳統(tǒng)殺毒引擎(如上述ClamAV)的結(jié)構(gòu)是以算法為基礎(chǔ)的,所以導(dǎo)致以下兩個(gè)比較明顯的問(wèn)題I.病毒特征選取不靈活這里的不靈活體現(xiàn)在兩個(gè)方面,一方面是病毒分析員選取病毒特征不靈活,另一方面是病毒分析員擴(kuò)展新的病毒特征不靈活;ClamAV不同的查殺方法之間是不提供邏輯關(guān)系的。比如使用PE文件節(jié)的MD5特征并不能夠與代碼特征結(jié)合起來(lái)使用。雖然代碼特征提供一定的邏輯匹配的功能,但如果面對(duì)多態(tài)變形病毒,其邏輯匹配的功能仍然無(wú)法滿(mǎn)足精確檢測(cè)的需求。如常見(jiàn)的多態(tài)變形病毒vrut早期版本通過(guò)隨機(jī)從兩套加密算法中選取一套,并隨機(jī)產(chǎn)生一個(gè)密鑰對(duì)病毒體代碼進(jìn)行加密;而解密代碼則通過(guò)一個(gè)多態(tài)引擎生成進(jìn)行多態(tài)變換,使得vrut每次感染的文件其病毒體代碼特征都完全不同。因此僅通過(guò)ClamAV代碼特征所提供的邏輯匹配是無(wú)法對(duì)其進(jìn)行精確查殺的。而如果要對(duì)這種以算法為基礎(chǔ)的殺毒引擎擴(kuò)展其病毒特征選取方法,由于其病毒特征選取方法與引擎偶合度過(guò)大,導(dǎo)致很難進(jìn)行擴(kuò)展。要么在原算法之外新增掃描過(guò)程,以效率為代價(jià)。如ClamAV新增MD5特征掃描就是在其代碼特征掃描之前新增掃描過(guò)程;要么就是修改原引擎中的算法,ClamAV引擎中的A-C多模匹配算法就是經(jīng)過(guò)改進(jìn)的算法,以支持代碼特征中簡(jiǎn)單的邏輯運(yùn)算、通配符等。2.檢測(cè)病毒效率低下對(duì)于殺毒引擎的檢測(cè)效率,主要瓶頸在輸入輸出,如果能夠有效的控制輸入輸出,則查毒的效率就會(huì)有極大的提高。但通過(guò)以上的過(guò)程,可以看到,ClamAV并沒(méi)有針對(duì)輸入輸出進(jìn)行優(yōu)化。MD5特征決定必須對(duì)檢測(cè)文件進(jìn)行全文遍歷。另外由于A-C多模算法在匹配之前需要建立狀態(tài)機(jī),而病毒庫(kù)記錄越大,則狀態(tài)機(jī)建立的所需要的時(shí)間與空間就越多。
      發(fā)明內(nèi)容鑒于上述問(wèn)題,提出了本發(fā)明,以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的用于檢測(cè)和清除計(jì)算機(jī)病毒的方法以及相應(yīng)的裝置。依據(jù)本發(fā)明的一個(gè)方面,提供了一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法,包括利用腳本語(yǔ)言編寫(xiě)用于檢測(cè)和清除計(jì)算機(jī)病毒的腳本并且將所述腳本編譯為二進(jìn)制的病毒庫(kù)文件;用于檢測(cè)計(jì)算機(jī)病毒的檢測(cè)處理,其包括-基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理;-將定位處理的結(jié)果作為變量進(jìn)行運(yùn)算處理和/或邏輯控制處理;-基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)運(yùn)算處理和/或邏輯控制處理的結(jié)果進(jìn)行匹配處理,其中所述匹配處理包括二進(jìn)制匹配處理和/或opcode匹配處理;以及對(duì)與所述多個(gè)病毒記錄中的一個(gè)或多個(gè)匹配的待檢測(cè)的文件進(jìn)行病毒清除處理。所述腳本語(yǔ)言使用可擴(kuò)展標(biāo)記語(yǔ)言XML進(jìn)行描述。所述可移植執(zhí)行文件結(jié)構(gòu)包括可移植執(zhí)行文件入口點(diǎn)的偏移、可移植執(zhí)行文件頭的偏移、可移植執(zhí)行文件數(shù)據(jù)目錄的偏移、可移植執(zhí)行文件附加數(shù)據(jù)的偏移、可移植執(zhí)行文件節(jié)表的偏移、和/或可移植執(zhí)行文件節(jié)的偏移。所述定位處理包括根據(jù)模擬中央處理單元解析的call、jmp、jcc、和/或loop指令,進(jìn)行定位處理。所述多個(gè)病毒記錄中的每個(gè)病毒記錄具有各自的文件特征,在所述基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理的步驟中,檢查所述待檢測(cè)的文件的文件特征,并且基于文件特征與所述待檢測(cè)的文件符合的病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理。所述匹配處理支持通配符號(hào)和浮動(dòng)搜索,包括以下的一種或多種處理利用所述運(yùn)算處理和/或邏輯控制處理的結(jié)果處的指令的opcode、操作數(shù)、長(zhǎng)度,進(jìn)行匹配處理;利用通過(guò)分析可移植執(zhí)行文件的入口指令序列得到的文件編譯器信息,進(jìn)行匹配處理;利用所述待檢測(cè)的文件的屬性信息、資源信息、和/或版本信息,進(jìn)行匹配處理;利用可移植執(zhí)行文件的導(dǎo)入函數(shù)信息和/或?qū)С龊瘮?shù)信息,進(jìn)行匹配處理,所述導(dǎo)入函數(shù)信息包括導(dǎo)入模塊和導(dǎo)入函數(shù)的數(shù)量和名稱(chēng),所述導(dǎo)出函數(shù)信息包括導(dǎo)出模塊和導(dǎo)出函數(shù)的數(shù)量和名稱(chēng);以及利用所述待檢測(cè)的文件的位置和長(zhǎng)度的散列值,進(jìn)行匹配處理。所述運(yùn)算處理包括加、減、乘、除、邏輯與、邏輯或、移位、比較處理。所述邏輯控制處理包括跳轉(zhuǎn)處理和返回處理,其中所述跳轉(zhuǎn)處理包括有條件跳轉(zhuǎn)處理和非條件跳轉(zhuǎn)處理,返回處理包括有條件返回處理和非條件返回處理。每個(gè)病毒記錄包含針對(duì)一種計(jì)算機(jī)病毒的、記錄如何進(jìn)行定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的多條檢測(cè)信息、以及記錄如何進(jìn)行病毒清除處理的多條清除息,所述檢測(cè)處理包括對(duì)于每個(gè)病毒記錄,利用所述多條檢測(cè)信息,對(duì)待檢測(cè)的文件進(jìn)行包括定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的檢測(cè)處理,在所述檢測(cè)處理中,如果所述多條檢測(cè)信息中的每一條檢測(cè)信息均被成功執(zhí)行,則將所述待檢測(cè)的文件判定為含病毒文件。對(duì)待檢測(cè)的文件進(jìn)行病毒清除處理的步驟包括根據(jù)對(duì)應(yīng)的病毒記錄中的多條清除信息,對(duì)所述含病毒文件進(jìn)行病毒清除處理。所述對(duì)所述含病毒文件進(jìn)行病毒清除處理的步驟包括以下的一個(gè)或多個(gè)處理刪除所述含病毒文件;修改所述含病毒文件的入口點(diǎn)地址;向所述含病毒文件的特定區(qū)域?qū)懭霐?shù)據(jù)塊;在所述含病毒文件內(nèi)復(fù)制數(shù)據(jù)塊;刪除所述含病毒文件的特定文件節(jié),并對(duì)所述含病毒文件的格式進(jìn)行調(diào)整;刪除所述含病毒文件頭部和/或尾部的特定大小的數(shù)據(jù);設(shè)置所述含病毒文件的大小。根據(jù)本發(fā)明的另一方面,提供了一種用于檢測(cè)和清除計(jì)算機(jī)病毒的裝置,包括腳本編寫(xiě)和編譯模塊,用于利用腳本語(yǔ)言編寫(xiě)用于檢測(cè)和清除計(jì)算機(jī)病毒的腳本并且將所述腳本編譯為二進(jìn)制的病毒庫(kù)文件;檢測(cè)模塊,用于檢測(cè)計(jì)算機(jī)病毒的檢測(cè)處理,其包括-定位子模塊,用于基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理;-運(yùn)算和邏輯控制子模塊,用于將定位處理的結(jié)果作為變量進(jìn)行運(yùn)算處理和/或邏輯控制處理;-匹配子模塊,用于基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)運(yùn)算處理和/或邏輯控制處理的結(jié)果進(jìn)行匹配處理,其中所述匹配處理包括二進(jìn)制匹配處理和/或opcode匹配處理;以及清除模塊,用于對(duì)與所述多個(gè)病毒記錄中的一個(gè)或多個(gè)匹配的待檢測(cè)的文件進(jìn)行病毒清除處理。所述腳本語(yǔ)言使用可擴(kuò)展標(biāo)記語(yǔ)言XML進(jìn)行描述。所述可移植執(zhí)行文件結(jié)構(gòu)包括可移植執(zhí)行文件入口點(diǎn)的偏移、可移植執(zhí)行文件頭的偏移、可移植執(zhí)行文件數(shù)據(jù)目錄的偏移、可移植執(zhí)行文件附加數(shù)據(jù)的偏移、可移植執(zhí)行文件節(jié)表的偏移、和/或可移植執(zhí)行文件節(jié)的偏移。所述定位處理包括根據(jù)模擬中央處理單元解析的call、jmp、jcc、和/或loop指令,進(jìn)行定位處理。所述多個(gè)病毒記錄中的每個(gè)病毒記錄具有各自的文件特征,所述定位子模塊檢查所述待檢測(cè)的文件的文件特征,并且基于文件特征與所述待檢測(cè)的文件符合的病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理。所述匹配處理支持通配符號(hào)和浮動(dòng)搜索,包括以下的一種或多種處理利用所述運(yùn)算處理和/或邏輯控制處理的結(jié)果處的指令的opcode、操作數(shù)、長(zhǎng)度,進(jìn)行匹配處理;利用通過(guò)分析可移植執(zhí)行文件的入口指令序列得到的文件編譯器信息,進(jìn)行匹配處理;利用所述待檢測(cè)的文件的屬性信息、資源信息、和/或版本信息,進(jìn)行匹配處理;利用可移植執(zhí)行文件的導(dǎo)入函數(shù)信息和/或?qū)С龊瘮?shù)信息,進(jìn)行匹配處理,所述導(dǎo)入函數(shù)信息包括導(dǎo)入模塊和導(dǎo)入函數(shù)的數(shù)量和名稱(chēng),所述導(dǎo)出函數(shù)信息包括導(dǎo)出模塊和導(dǎo)出函數(shù)的數(shù)量和名稱(chēng);以及利用所述待檢測(cè)的文件的位置和長(zhǎng)度的散列值,進(jìn)行匹配處理。所述運(yùn)算處理包括加、減、乘、除、邏輯與、邏輯或、移位、比較處理。所述邏輯控制處理包括跳轉(zhuǎn)處理和返回處理,其中所述跳轉(zhuǎn)處理包括有條件跳轉(zhuǎn)處理和非條件跳轉(zhuǎn)處理,返回處理包括有條件返回處理和非條件返回處理。每個(gè)病毒記錄包含針對(duì)一種計(jì)算機(jī)病毒的、記錄如何進(jìn)行定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的多條檢測(cè)信息、以及記錄如何進(jìn)行病毒清除處理的多條清除息,所述檢測(cè)模塊對(duì)于每個(gè)病毒記錄,利用所述多條檢測(cè)信息,對(duì)待檢測(cè)的文件進(jìn)行包括定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的檢測(cè)處理,在所述檢測(cè)處理中,如果所述多條檢測(cè)信息中的每一條檢測(cè)信息均被成功執(zhí)行,則將所述待檢測(cè)的文件判定為含病毒文件。所述清除模塊根據(jù)對(duì)應(yīng)的病毒記錄中的多條清除信息,對(duì)所述含病毒文件進(jìn)行病毒清除處理。所述清除模塊執(zhí)行以下的一個(gè)或多個(gè)處理刪除所述含病毒文件;修改所述含病毒文件的入口點(diǎn)地址;向所述含病毒文件的特定區(qū)域?qū)懭霐?shù)據(jù)塊;在所述含病毒文件內(nèi)復(fù)制數(shù)據(jù)塊;刪除所述含病毒文件的特定文件節(jié),并對(duì)所述含病毒文件的格式進(jìn)行調(diào)整;刪除所述含病毒文件頭部和/或尾部的特定大小的數(shù)據(jù);設(shè)置所述含病毒文件的大小。本發(fā)明提供了一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法和裝置,所述方法及裝置可以在虛擬機(jī)中使用,可用于惡意軟件(病毒)行為分析、查/殺毒、脫殼等領(lǐng)域。根據(jù)本發(fā)明的實(shí)施例,使用XML來(lái)描述腳本語(yǔ)言和病毒記錄,便于管理和檢索海量的病毒記錄,同時(shí)可將腳本編譯為二進(jìn)制的病毒庫(kù)文件,確保對(duì)病毒進(jìn)行檢測(cè)和清除時(shí)的高效率。本發(fā)明利用類(lèi)似x86匯編指令的腳本描述病毒記錄,以提供類(lèi)似匯編的靈活控制能力以及高的行為抽象度。根據(jù)本發(fā)明的實(shí)施例的每個(gè)處理本身都相對(duì)簡(jiǎn)單,但由于架構(gòu)足夠靈活,可以編寫(xiě)出與匯編復(fù)雜度相當(dāng)?shù)牟《居涗?。本發(fā)明極大地提高了傳統(tǒng)特征碼查殺技術(shù)的靈活性和效率,提高了特征碼查殺技術(shù)對(duì)于多態(tài)變形病毒、病毒家族查殺的適用性。本發(fā)明采用GUID作為處理的唯一描述,因而具有很強(qiáng)的擴(kuò)展性,只要遵從一定的規(guī)范,即可增加新的處理,而并不會(huì)影響原來(lái)的檢測(cè)和清除處理以及病毒記錄。本發(fā)明中的大多數(shù)處理并不涉及到系統(tǒng)輸入輸出操作,部分處理只涉及到極少量的輸入輸出操作,所以檢測(cè)和清除病毒的速度非常快。上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說(shuō)明書(shū)的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。通過(guò)閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中圖I是根據(jù)本發(fā)明的實(shí)施例的用于檢測(cè)和清除計(jì)算機(jī)病毒的方法的流程圖;以及圖2是根據(jù)本發(fā)明的實(shí)施例的用于檢測(cè)和清除計(jì)算機(jī)病毒的裝置的框圖。具體實(shí)施方式下面將參照附圖更詳細(xì)地描述本公開(kāi)的示例性實(shí)施例。雖然附圖中顯示了本公開(kāi)的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開(kāi)而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開(kāi),并且能夠?qū)⒈竟_(kāi)的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。圖I是根據(jù)本發(fā)明的實(shí)施例的用于檢測(cè)和清除計(jì)算機(jī)病毒的方法的流程圖。如圖I所示,在用于檢測(cè)和清除計(jì)算機(jī)病毒的方法100中,一開(kāi)始,執(zhí)行步驟SlOl:利用腳本語(yǔ)言編寫(xiě)用于檢測(cè)和清除計(jì)算機(jī)病毒的腳本并且將所述腳本編譯為二進(jìn)制的病毒庫(kù)文件。根據(jù)本發(fā)明的實(shí)施例,所述腳本語(yǔ)言使用XML(extensibleMarkupLanguage,可擴(kuò)展標(biāo)記語(yǔ)言)進(jìn)行描述。腳本的語(yǔ)句是由不同函數(shù)方法組成的,函數(shù)方法可以分為檢測(cè)處理與病毒清除處理兩大類(lèi)。檢測(cè)處理的主要目的是檢測(cè)病毒,而病毒清除處理則會(huì)對(duì)已經(jīng)確認(rèn)為病毒的文件進(jìn)行操作,以達(dá)到刪除或清除病毒的目的。根據(jù)本發(fā)明的實(shí)施例,將所述腳本語(yǔ)言編譯成二進(jìn)制的病毒庫(kù)文件,在對(duì)病毒進(jìn)行檢測(cè)和清除時(shí)只需要讀取該二進(jìn)制的病毒庫(kù)文件即可。所述腳本語(yǔ)言利用xml語(yǔ)言進(jìn)行掃描。每一種處理?yè)碛形ㄒ坏蘑荌D(GloballyUniqueIdentifier,全局唯一標(biāo)識(shí)符),以保證各處理之間不會(huì)在調(diào)用處理的時(shí)候產(chǎn)生沖突。再使用xml的標(biāo)簽來(lái)掃描此處理的參數(shù)。例如〈stdmethodalias="L_File"base="File"offset="2"target="FILE"clsid="{877289A9-2E55-4aa8-A94A-5EE7412F887C}"/>以上一條xml標(biāo)簽描述所述腳本語(yǔ)言中的定位處理。clsid是定位處理的唯一⑶ID,在編譯的時(shí)候通過(guò)此clsid調(diào)用相應(yīng)的參數(shù)解析處理對(duì)處理進(jìn)行轉(zhuǎn)換。在步驟SlOl后,執(zhí)行用于檢測(cè)計(jì)算機(jī)病毒的檢測(cè)處理,其包括步驟S103a,基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或PE(PortableExecute,可移植執(zhí)行)文件結(jié)構(gòu)的定位處理;步驟S103b,將定位處理的結(jié)果作為變量進(jìn)行運(yùn)算處理和/或邏輯控制處理;步驟S103c,基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)運(yùn)算處理和/或邏輯控制處理的結(jié)果進(jìn)行匹配處理,其中所述匹配處理包括二進(jìn)制匹配處理和/或opcode匹配處理。根據(jù)本發(fā)明的實(shí)施例,所述PE文件結(jié)構(gòu)包括PE文件入口點(diǎn)的偏移、PE文件頭的偏移、PE文件數(shù)據(jù)目錄的偏移、PE文件附加數(shù)據(jù)的偏移、PE文件節(jié)表的偏移、和/或PE文件節(jié)的偏移。在定位處理成功執(zhí)行以后,會(huì)在運(yùn)行棧上返回定位地址結(jié)果,以供其它處理使用。另外,作為對(duì)于定位處理的擴(kuò)展,可以根據(jù)模擬中央處理單元解析的call、jmp、jcc、和/或loop指令,基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,進(jìn)行定位處理。根據(jù)本發(fā)明的實(shí)施例,所述多個(gè)病毒記錄中的每個(gè)病毒記錄具有各自的文件特征,在所述步驟S103a中,檢查所述待檢測(cè)的文件的文件特征,并且基于文件特征與所述待檢測(cè)的文件符合的病毒記錄,對(duì)所述待檢測(cè)的文件執(zhí)行定位處理。舉例來(lái)說(shuō),所述文件特征可以是文件的編譯器信息,在步驟S103a中,首先檢查待檢測(cè)的文件的編譯器信息,并且基于編譯器信息與該文件符合的病毒記錄,來(lái)對(duì)該文件執(zhí)行定位處理。這樣,在病毒庫(kù)文件包括大量病毒記錄的情況下,只需要利用與待檢測(cè)的文件的某項(xiàng)文件特征符合的那些病毒記錄對(duì)于待檢測(cè)的文件進(jìn)行檢測(cè),提高了檢測(cè)的效率。在進(jìn)行了上述定位處理之后,將該定位處理的結(jié)果作為變量進(jìn)行運(yùn)算和/或邏輯控制處理。涉及上述變量的處理可以包括常量變量處理、引用變量處理、裝載變量處理。常量變量處理類(lèi)似于C語(yǔ)言中的普通變量,為使用者提供直接設(shè)置變量的方法;引用變量處理類(lèi)似于C語(yǔ)言中的指針變量,為使用者提供引用其它處理計(jì)算結(jié)果的方法;裝載變量處理是特殊處理,可以讀取檢測(cè)文件指定位置的值作為變量。根據(jù)本發(fā)明的實(shí)施例,所述運(yùn)算處理包括加、減、乘、除、邏輯與、邏輯或、移位、t匕較處理,其與x86匯編的運(yùn)算方法相類(lèi)似,操作對(duì)象為根據(jù)本發(fā)明的實(shí)施例的腳本語(yǔ)言的棧變量與寄存器。根據(jù)本發(fā)明的實(shí)施例,所述控制處理可以類(lèi)似于x86匯編的控制處理,控制處理分為兩大類(lèi),一類(lèi)是跳轉(zhuǎn)處理,另一類(lèi)是返回處理。跳轉(zhuǎn)處理可以修改當(dāng)前執(zhí)行順序,跳轉(zhuǎn)到指定的處理開(kāi)始執(zhí)行,跳轉(zhuǎn)處理可以類(lèi)似于x86匯編中的跳轉(zhuǎn)指令,包括條件跳轉(zhuǎn)與非條件跳轉(zhuǎn);返回處理可以立即結(jié)束當(dāng)前的檢測(cè)(清除)過(guò)程,并可顯示指定返回結(jié)果為查殺目標(biāo)或非查殺目標(biāo),返回處理也可以與x86匯編中的跳轉(zhuǎn)指令類(lèi)似,包括條件返回與非條件返回。根據(jù)本發(fā)明的實(shí)施例,步驟S103c的匹配處理支持通配符號(hào)和浮動(dòng)搜索,并且可以包括以下的一種或多種處理-利用所述運(yùn)算處理和/或邏輯控制處理的結(jié)果處的指令的opcode、操作數(shù)、長(zhǎng)度,進(jìn)行匹配處理;利用通過(guò)分析可移植執(zhí)行文件的入口指令序列得到的文件編譯器信息,進(jìn)行匹配處理;利用所述待檢測(cè)的文件的屬性信息、資源信息、和/或版本信息,進(jìn)行匹配處理,所述屬性信息可以包括文件名、文件大小等,所述資源信息包括資源的類(lèi)型、大小、名稱(chēng)等;利用可移植執(zhí)行文件的導(dǎo)入函數(shù)信息和/或?qū)С龊瘮?shù)信息,進(jìn)行匹配處理,所述導(dǎo)入函數(shù)信息包括導(dǎo)入模塊和導(dǎo)入函數(shù)的數(shù)量和名稱(chēng),所述導(dǎo)出函數(shù)信息包括導(dǎo)出模塊和導(dǎo)出函數(shù)的數(shù)量和名稱(chēng);以及利用所述待檢測(cè)的文件的位置和長(zhǎng)度的散列值,進(jìn)行匹配處理。根據(jù)本發(fā)明的實(shí)施例,通過(guò)將上述定位處理與匹配處理分開(kāi)執(zhí)行,可以有效降低輸入輸出數(shù)據(jù)量,提高檢測(cè)的準(zhǔn)確性。根據(jù)本發(fā)明的實(shí)施例,上述每個(gè)病毒記錄包含針對(duì)一種計(jì)算機(jī)病毒的、記錄如何進(jìn)行定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的多條檢測(cè)信息、以及記錄如何進(jìn)行病毒清除處理的多條清除信息,其中所述檢測(cè)處理包括對(duì)于每個(gè)病毒記錄,利用所述多條檢測(cè)信息,對(duì)待檢測(cè)的文件進(jìn)行包括定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的檢測(cè)處理,在所述檢測(cè)處理中,如果所述多條檢測(cè)信息中的每一條檢測(cè)信息均被成功執(zhí)行,則將所述待檢測(cè)的文件判定為含病毒文件。具體來(lái)說(shuō),對(duì)待檢測(cè)的文件執(zhí)行每個(gè)病毒記錄中所包含的多條檢測(cè)信息中的定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理,如果某條檢測(cè)信息中的處理執(zhí)行失敗,則結(jié)束檢測(cè),而如果每條檢測(cè)信息中的處理均執(zhí)行成功,則將所述待檢測(cè)的文件判定為含病毒文件。在步驟S103a之后,執(zhí)行步驟S105:對(duì)與所述多個(gè)病毒記錄中的一個(gè)或多個(gè)匹配的待檢測(cè)的文件進(jìn)行病毒清除處理。根據(jù)本發(fā)明的實(shí)施例,可以根據(jù)對(duì)應(yīng)的病毒記錄中的多條清除信息,對(duì)所述含病毒文件進(jìn)行病毒清除處理。而該病毒清除處理可以包括以下的一個(gè)或多個(gè)處理刪除所述含病毒文件,即對(duì)于含病毒文件進(jìn)行直接刪除;修改所述含病毒文件的入口點(diǎn)地址,例如修改含病毒的可移植執(zhí)行文件的入口點(diǎn)地址;向所述含病毒文件的特定區(qū)域?qū)懭霐?shù)據(jù)塊,即對(duì)特定區(qū)域進(jìn)行數(shù)據(jù)塊填充;在所述含病毒文件內(nèi)復(fù)制數(shù)據(jù)塊;刪除所述含病毒文件的特定文件節(jié),并對(duì)所述含病毒文件的格式進(jìn)行調(diào)整,例如刪除含病毒的可移植執(zhí)行文件中制定的文件節(jié),并對(duì)該文件的格式進(jìn)行相應(yīng)的調(diào)整;刪除所述含病毒文件頭部和/或尾部的特定大小的數(shù)據(jù);設(shè)置所述含病毒文件的大小。本發(fā)明提供了一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法,所述方法可以在虛擬機(jī)中使用,可用于惡意軟件(病毒)行為分析、查/殺毒、脫殼等領(lǐng)域。根據(jù)本發(fā)明的實(shí)施例,使用XML來(lái)描述腳本語(yǔ)言和病毒記錄,便于管理和檢索海量的病毒記錄,同時(shí)可將腳本編譯為二進(jìn)制的病毒庫(kù)文件,確保對(duì)病毒進(jìn)行檢測(cè)和清除時(shí)的高效率。本發(fā)明利用類(lèi)似x86匯編指令的腳本描述病毒記錄,以提供類(lèi)似匯編的靈活控制能力以及高的行為抽象度。根據(jù)本發(fā)明的實(shí)施例的每個(gè)處理本身都相對(duì)簡(jiǎn)單,但由于架構(gòu)足夠靈活,可以編寫(xiě)出與匯編復(fù)雜度相當(dāng)?shù)牟《居涗?。本發(fā)明極大地提高了傳統(tǒng)特征碼查殺技術(shù)的靈活性和效率,提高了特征碼查殺技術(shù)對(duì)于多態(tài)變形病毒、病毒家族查殺的適用性。本發(fā)明采用⑶ID作為處理的唯一描述,因而具有很強(qiáng)的擴(kuò)展性,只要遵從一定的規(guī)范,即可增加新的處理,而并不會(huì)影響原來(lái)的檢測(cè)和清除處理以及病毒記錄。本發(fā)明中的大多數(shù)處理并不涉及到系統(tǒng)輸入輸出操作,部分處理只涉及到極少量的輸入輸出操作,所以檢測(cè)和清除病毒的速度非???。與上述的方法100相對(duì)應(yīng),本發(fā)明還提供了一種用于檢測(cè)和清除計(jì)算機(jī)病毒的裝置200,參見(jiàn)圖2,該裝置200包括腳本編寫(xiě)和編譯模塊201,用于利用腳本語(yǔ)言編寫(xiě)用于檢測(cè)和清除計(jì)算機(jī)病毒的腳本并且將所述腳本編譯為二進(jìn)制的病毒庫(kù)文件,該腳本編寫(xiě)和編譯模塊201可以用于執(zhí)行上述方法100中的步驟SlOl;檢測(cè)模塊203,用于檢測(cè)計(jì)算機(jī)病毒的檢測(cè)處理,其包括-定位子模塊203a,用于基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理,該定位子模塊203a可以用于執(zhí)行上述方法100中的步驟S103a;-運(yùn)算和邏輯控制子模塊203b,用于將定位處理的結(jié)果作為變量進(jìn)行運(yùn)算處理和/或邏輯控制處理,該運(yùn)算和邏輯控制子模塊203b可以用于執(zhí)行上述方法100中的步驟S103b;-匹配子模塊203c,用于基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)運(yùn)算處理和/或邏輯控制處理的結(jié)果進(jìn)行匹配處理,其中所述匹配處理包括二進(jìn)制匹配處理和/或opcode匹配處理,該匹配子模塊203c可以用于執(zhí)行上述方法100中的步驟S103c;以及清除模塊205,用于對(duì)與所述多個(gè)病毒記錄中的一個(gè)或多個(gè)匹配的待檢測(cè)的文件進(jìn)行病毒清除處理,該清除模塊205可以用于執(zhí)行上述方法100中的步驟S105。在本發(fā)明的實(shí)施例中,其中所述腳本語(yǔ)言使用可擴(kuò)展標(biāo)記語(yǔ)言XML進(jìn)行描述。在本發(fā)明的實(shí)施例中,所述可移植執(zhí)行文件結(jié)構(gòu)包括可移植執(zhí)行文件入口點(diǎn)的偏移、可移植執(zhí)行文件頭的偏移、可移植執(zhí)行文件數(shù)據(jù)目錄的偏移、可移植執(zhí)行文件附加數(shù)據(jù)的偏移、可移植執(zhí)行文件節(jié)表的偏移、和/或可移植執(zhí)行文件節(jié)的偏移。在本發(fā)明的實(shí)施例中,所述定位處理包括根據(jù)模擬中央處理單元解析的call、jmp、jcc、和/或loop指令,進(jìn)行定位處理。在本發(fā)明的實(shí)施例中,所述多個(gè)病毒記錄中的每個(gè)病毒記錄具有各自的文件特征,所述定位子模塊203a檢查所述待檢測(cè)的文件的文件特征,并且基于文件特征與所述待檢測(cè)的文件符合的病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理。在本發(fā)明的實(shí)施例中,所述匹配處理支持通配符號(hào)和浮動(dòng)搜索,包括以下的一種或多種處理利用所述運(yùn)算處理和/或邏輯控制處理的結(jié)果處的指令的opcode、操作數(shù)、長(zhǎng)度,進(jìn)行匹配處理;利用通過(guò)分析可移植執(zhí)行文件的入口指令序列得到的文件編譯器信息,進(jìn)行匹配處理;利用所述待檢測(cè)的文件的屬性信息、資源信息、和/或版本信息,進(jìn)行匹配處理;利用可移植執(zhí)行文件的導(dǎo)入函數(shù)信息和/或?qū)С龊瘮?shù)信息,進(jìn)行匹配處理,所述導(dǎo)入函數(shù)信息包括導(dǎo)入模塊和導(dǎo)入函數(shù)的數(shù)量和名稱(chēng),所述導(dǎo)出函數(shù)信息包括導(dǎo)出模塊和導(dǎo)出函數(shù)的數(shù)量和名稱(chēng);以及利用所述待檢測(cè)的文件的位置和長(zhǎng)度的散列值,進(jìn)行匹配處理。在本發(fā)明的實(shí)施例中,所述運(yùn)算處理包括加、減、乘、除、邏輯與、邏輯或、移位、t匕較處理。在本發(fā)明的實(shí)施例中,所述邏輯控制處理包括跳轉(zhuǎn)處理和返回處理,其中所述跳轉(zhuǎn)處理包括有條件跳轉(zhuǎn)處理和非條件跳轉(zhuǎn)處理,返回處理包括有條件返回處理和非條件返回處理。在本發(fā)明的實(shí)施例中,每個(gè)病毒記錄包含針對(duì)一種計(jì)算機(jī)病毒的、記錄如何進(jìn)行定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的多條檢測(cè)信息、以及記錄如何進(jìn)行病毒清除處理的多條清除信息,所述檢測(cè)模塊203對(duì)于每個(gè)病毒記錄,利用所述多條檢測(cè)信息,對(duì)待檢測(cè)的文件進(jìn)行包括定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的檢測(cè)處理,在所述檢測(cè)處理中,如果所述多條檢測(cè)信息中的每一條檢測(cè)信息均被成功執(zhí)行,則將所述待檢測(cè)的文件判定為含病毒文件。在本發(fā)明的實(shí)施例中,所述清除模塊205根據(jù)對(duì)應(yīng)的病毒記錄中的多條清除信息,對(duì)所述含病毒文件進(jìn)行病毒清除處理。在本發(fā)明的實(shí)施例中,所述清除模塊205執(zhí)行以下的一個(gè)或多個(gè)處理刪除所述含病毒文件;修改所述含病毒文件的入口點(diǎn)地址;向所述含病毒文件的特定區(qū)域?qū)懭霐?shù)據(jù)塊;在所述含病毒文件內(nèi)復(fù)制數(shù)據(jù)塊;刪除所述含病毒文件的特定文件節(jié),并對(duì)所述含病毒文件的格式進(jìn)行調(diào)整;刪除所述含病毒文件頭部和/或尾部的特定大小的數(shù)據(jù);設(shè)置所述含病毒文件的大小。由于上述各裝置實(shí)施例與前述各方法實(shí)施例相對(duì)應(yīng),因此不再對(duì)各裝置實(shí)施例進(jìn)行詳細(xì)描述。在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類(lèi)系統(tǒng)所要求的結(jié)構(gòu)是顯而易見(jiàn)的。此外,本發(fā)明也不針對(duì)任何特定編程語(yǔ)言。應(yīng)當(dāng)明白,可以利用各種編程語(yǔ)言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語(yǔ)言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。在此處所提供的說(shuō)明書(shū)中,說(shuō)明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說(shuō)明書(shū)的理解。類(lèi)似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開(kāi)并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開(kāi)的方法解釋成反映如下意圖即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說(shuō),如下面的權(quán)利要求書(shū)所反映的那樣,發(fā)明方面在于少于前面公開(kāi)的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書(shū)由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的裝置中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)裝置中。可以把實(shí)施例中的若干模塊組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過(guò)程或者模塊中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的所有特征以及如此公開(kāi)的任何方法或者設(shè)備的所有過(guò)程或單元進(jìn)行組合。除非另外明確陳述,本說(shuō)明書(shū)(包括伴隨的權(quán)利要求、摘要和附圖)中公開(kāi)的每個(gè)特征可以由提供相同、等同或相似目的替代特征來(lái)代替。此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在權(quán)利要求書(shū)中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來(lái)使用。本發(fā)明的各個(gè)裝置實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來(lái)實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的裝置中的一些或者全部模塊的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說(shuō)明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來(lái)實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過(guò)同一個(gè)硬件項(xiàng)來(lái)具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱(chēng)。權(quán)利要求1.一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法(100),包括利用腳本語(yǔ)言編寫(xiě)用于檢測(cè)和清除計(jì)算機(jī)病毒的腳本并且將所述腳本編譯為二進(jìn)制的病毒庫(kù)文件;用于檢測(cè)計(jì)算機(jī)病毒的檢測(cè)處理,其包括-基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理;-將定位處理的結(jié)果作為變量進(jìn)行運(yùn)算處理和/或邏輯控制處理;-基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)運(yùn)算處理和/或邏輯控制處理的結(jié)果進(jìn)行匹配處理,其中所述匹配處理包括二進(jìn)制匹配處理和/或opcode匹配處理;以及對(duì)與所述多個(gè)病毒記錄中的一個(gè)或多個(gè)匹配的待檢測(cè)的文件進(jìn)行病毒清除處理。2.如權(quán)利要求I所述的方法,其中所述腳本語(yǔ)言使用可擴(kuò)展標(biāo)記語(yǔ)言XML進(jìn)行描述。3.如權(quán)利要求I所述的方法,其中所述可移植執(zhí)行文件結(jié)構(gòu)包括可移植執(zhí)行文件入口點(diǎn)的偏移、可移植執(zhí)行文件頭的偏移、可移植執(zhí)行文件數(shù)據(jù)目錄的偏移、可移植執(zhí)行文件附加數(shù)據(jù)的偏移、可移植執(zhí)行文件節(jié)表的偏移、和/或可移植執(zhí)行文件節(jié)的偏移。4.如權(quán)利要求I所述的方法,其中所述定位處理包括根據(jù)模擬中央處理單元解析的call、jmp、jcc、和/或loop指令,進(jìn)行定位處理。5.如權(quán)利要求I所述的方法,其中所述多個(gè)病毒記錄中的每個(gè)病毒記錄具有各自的文件特征,在所述基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理的步驟中,檢查所述待檢測(cè)的文件的文件特征,并且基于文件特征與所述待檢測(cè)的文件符合的病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理。6.如權(quán)利要求I所述的方法,其中所述匹配處理支持通配符號(hào)和浮動(dòng)搜索,包括以下的一種或多種處理利用所述運(yùn)算處理和/或邏輯控制處理的結(jié)果處的指令的opcode、操作數(shù)、長(zhǎng)度,進(jìn)行匹配處理;利用通過(guò)分析可移植執(zhí)行文件的入口指令序列得到的文件編譯器信息,進(jìn)行匹配處理;利用所述待檢測(cè)的文件的屬性信息、資源信息、和/或版本信息,進(jìn)行匹配處理;利用可移植執(zhí)行文件的導(dǎo)入函數(shù)信息和/或?qū)С龊瘮?shù)信息,進(jìn)行匹配處理,所述導(dǎo)入函數(shù)信息包括導(dǎo)入模塊和導(dǎo)入函數(shù)的數(shù)量和名稱(chēng),所述導(dǎo)出函數(shù)信息包括導(dǎo)出模塊和導(dǎo)出函數(shù)的數(shù)量和名稱(chēng);以及利用所述待檢測(cè)的文件的位置和長(zhǎng)度的散列值,進(jìn)行匹配處理。7.如權(quán)利要求I所述的方法,其中所述運(yùn)算處理包括加、減、乘、除、邏輯與、邏輯或、移位、比較處理。8.如權(quán)利要求I所述的方法,其中所述邏輯控制處理包括跳轉(zhuǎn)處理和返回處理,其中所述跳轉(zhuǎn)處理包括有條件跳轉(zhuǎn)處理和非條件跳轉(zhuǎn)處理,返回處理包括有條件返回處理和非條件返回處理。9.如權(quán)利要求1-8中的任一項(xiàng)所述的方法,其中每個(gè)病毒記錄包含針對(duì)一種計(jì)算機(jī)病毒的、記錄如何進(jìn)行定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的多條檢測(cè)信息、以及記錄如何進(jìn)行病毒清除處理的多條清除信息,所述檢測(cè)處理包括對(duì)于每個(gè)病毒記錄,利用所述多條檢測(cè)信息,對(duì)待檢測(cè)的文件進(jìn)行包括定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的檢測(cè)處理,在所述檢測(cè)處理中,如果所述多條檢測(cè)信息中的每一條檢測(cè)信息均被成功執(zhí)行,則將所述待檢測(cè)的文件判定為含病毒文件。10.如權(quán)利要求9所述的方法,其中對(duì)待檢測(cè)的文件進(jìn)行病毒清除處理的步驟包括根據(jù)對(duì)應(yīng)的病毒記錄中的多條清除信息,對(duì)所述含病毒文件進(jìn)行病毒清除處理。11.如權(quán)利要求10所述的方法,其中所述對(duì)所述含病毒文件進(jìn)行病毒清除處理的步驟包括以下的一個(gè)或多個(gè)處理刪除所述含病毒文件;修改所述含病毒文件的入口點(diǎn)地址;向所述含病毒文件的特定區(qū)域?qū)懭霐?shù)據(jù)塊;在所述含病毒文件內(nèi)復(fù)制數(shù)據(jù)塊;刪除所述含病毒文件的特定文件節(jié),并對(duì)所述含病毒文件的格式進(jìn)行調(diào)整;刪除所述含病毒文件頭部和/或尾部的特定大小的數(shù)據(jù);設(shè)置所述含病毒文件的大小。12.一種用于檢測(cè)和清除計(jì)算機(jī)病毒的裝置(200),包括腳本編寫(xiě)和編譯模塊(201),用于利用腳本語(yǔ)言編寫(xiě)用于檢測(cè)和清除計(jì)算機(jī)病毒的腳本并且將所述腳本編譯為二進(jìn)制的病毒庫(kù)文件;檢測(cè)模塊(203),用于檢測(cè)計(jì)算機(jī)病毒的檢測(cè)處理,其包括-定位子模塊(203a),用于基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理;-運(yùn)算和邏輯控制子模塊(203b),用于將定位處理的結(jié)果作為變量進(jìn)行運(yùn)算處理和/或邏輯控制處理;-匹配子模塊(203c),用于基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)運(yùn)算處理和/或邏輯控制處理的結(jié)果進(jìn)行匹配處理,其中所述匹配處理包括二進(jìn)制匹配處理和/或opcode匹配處理;以及清除模塊(205),用于對(duì)與所述多個(gè)病毒記錄中的一個(gè)或多個(gè)匹配的待檢測(cè)的文件進(jìn)行病毒清除處理。13.如權(quán)利要求12所述的裝置,其中所述腳本語(yǔ)言使用可擴(kuò)展標(biāo)記語(yǔ)言XML進(jìn)行描述。14.如權(quán)利要求12所述的裝置,其中所述可移植執(zhí)行文件結(jié)構(gòu)包括可移植執(zhí)行文件入口點(diǎn)的偏移、可移植執(zhí)行文件頭的偏移、可移植執(zhí)行文件數(shù)據(jù)目錄的偏移、可移植執(zhí)行文件附加數(shù)據(jù)的偏移、可移植執(zhí)行文件節(jié)表的偏移、和/或可移植執(zhí)行文件節(jié)的偏移。15.如權(quán)利要求12所述的裝置,其中所述定位處理包括根據(jù)模擬中央處理單元解析的call、jmp、jcc、和/或loop指令,進(jìn)行定位處理。16.如權(quán)利要求12所述的方法,其中所述多個(gè)病毒記錄中的每個(gè)病毒記錄具有各自的文件特征,所述定位子模塊(203a)檢查所述待檢測(cè)的文件的文件特征,并且基于文件特征與所述待檢測(cè)的文件符合的病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理。17.如權(quán)利要求12所述的裝置,其中所述匹配處理支持通配符號(hào)和浮動(dòng)搜索,包括以下的一種或多種處理利用所述運(yùn)算處理和/或邏輯控制處理的結(jié)果處的指令的opcode、操作數(shù)、長(zhǎng)度,進(jìn)行匹配處理;利用通過(guò)分析可移植執(zhí)行文件的入口指令序列得到的文件編譯器信息,進(jìn)行匹配處理;利用所述待檢測(cè)的文件的屬性信息、資源信息、和/或版本信息,進(jìn)行匹配處理;利用可移植執(zhí)行文件的導(dǎo)入函數(shù)信息和/或?qū)С龊瘮?shù)信息,進(jìn)行匹配處理,所述導(dǎo)入函數(shù)信息包括導(dǎo)入模塊和導(dǎo)入函數(shù)的數(shù)量和名稱(chēng),所述導(dǎo)出函數(shù)信息包括導(dǎo)出模塊和導(dǎo)出函數(shù)的數(shù)量和名稱(chēng);以及利用所述待檢測(cè)的文件的位置和長(zhǎng)度的散列值,進(jìn)行匹配處理。18.如權(quán)利要求12所述的裝置,其中所述運(yùn)算處理包括加、減、乘、除、邏輯與、邏輯或、移位、比較處理。19.如權(quán)利要求12所述的裝置,其中所述邏輯控制處理包括跳轉(zhuǎn)處理和返回處理,其中所述跳轉(zhuǎn)處理包括有條件跳轉(zhuǎn)處理和非條件跳轉(zhuǎn)處理,返回處理包括有條件返回處理和非條件返回處理。20.如權(quán)利要求12-19中的任一項(xiàng)所述的裝置,其中每個(gè)病毒記錄包含針對(duì)一種計(jì)算機(jī)病毒的、記錄如何進(jìn)行定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的多條檢測(cè)信息、以及記錄如何進(jìn)行病毒清除處理的多條清除信息,所述檢測(cè)模塊(203)對(duì)于每個(gè)病毒記錄,利用所述多條檢測(cè)信息,對(duì)待檢測(cè)的文件進(jìn)行包括定位處理、運(yùn)算處理和/或邏輯控制處理、以及匹配處理的檢測(cè)處理,在所述檢測(cè)處理中,如果所述多條檢測(cè)信息中的每一條檢測(cè)信息均被成功執(zhí)行,則將所述待檢測(cè)的文件判定為含病毒文件。21.如權(quán)利要求20所述的裝置,其中所述清除模塊(205)根據(jù)對(duì)應(yīng)的病毒記錄中的多條清除信息,對(duì)所述含病毒文件進(jìn)行病毒清除處理。22.如權(quán)利要求21所述的裝置,其中所述清除模塊(205)執(zhí)行以下的一個(gè)或多個(gè)處理刪除所述含病毒文件;修改所述含病毒文件的入口點(diǎn)地址;向所述含病毒文件的特定區(qū)域?qū)懭霐?shù)據(jù)塊;在所述含病毒文件內(nèi)復(fù)制數(shù)據(jù)塊;刪除所述含病毒文件的特定文件節(jié),并對(duì)所述含病毒文件的格式進(jìn)行調(diào)整;刪除所述含病毒文件頭部和/或尾部的特定大小的數(shù)據(jù);設(shè)置所述含病毒文件的大小。全文摘要本發(fā)明公開(kāi)了一種用于檢測(cè)和清除計(jì)算機(jī)病毒的方法和裝置。所述方法包括利用腳本語(yǔ)言編寫(xiě)用于檢測(cè)和清除計(jì)算機(jī)病毒的腳本并且將所述腳本編譯為二進(jìn)制的病毒庫(kù)文件;用于檢測(cè)計(jì)算機(jī)病毒的檢測(cè)處理,其包括基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)待檢測(cè)的文件進(jìn)行基于文件偏移、內(nèi)存映像偏移、和/或可移植執(zhí)行文件結(jié)構(gòu)的定位處理;將定位處理的結(jié)果作為變量進(jìn)行運(yùn)算處理和/或邏輯控制處理;基于所述病毒庫(kù)文件中包含的多個(gè)病毒記錄,對(duì)運(yùn)算處理和/或邏輯控制處理的結(jié)果進(jìn)行匹配處理,其中所述匹配處理包括二進(jìn)制匹配處理和/或opcode匹配處理;以及對(duì)與所述多個(gè)病毒記錄中的一個(gè)或多個(gè)匹配的待檢測(cè)的文件進(jìn)行病毒清除處理。文檔編號(hào)G06F21/56GK102867144SQ20121032869公開(kāi)日2013年1月9日申請(qǐng)日期2012年9月6日優(yōu)先權(quán)日2012年9月6日發(fā)明者周輝,徐傳宇,李智鵬,唐杰申請(qǐng)人:北京奇虎科技有限公司,奇智軟件(北京)有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1