病毒查殺方法、客戶端、服務器以及病毒查殺系統(tǒng)的制作方法【專利摘要】本發(fā)明提供了一種病毒查殺方法、客戶端、服務器以及病毒查殺系統(tǒng)。其中病毒查殺方法包括:病毒查殺客戶端接收由病毒查殺服務器下發(fā)的病毒查殺腳本,病毒查殺腳本包括對待查文件進行病毒特征匹配的指令;使用病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;由病毒查殺客戶端調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺。利用該病毒查殺方法下發(fā)統(tǒng)一的病毒查殺腳本,由病毒查殺客戶端中預置的編譯器編譯成對應的可執(zhí)行代碼,進行相應的病毒查殺流程,提高了病毒查殺的效率,減輕了病毒查殺服務器的工作壓力?!緦@f明】病毒查殺方法、客戶端、服務器以及病毒查殺系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及計算機安全領(lǐng)域,特別是涉及一種病毒查殺方法、客戶端、服務器以及病毒查殺系統(tǒng)?!?br>背景技術(shù):
】[0002]隨著互聯(lián)網(wǎng)的發(fā)展,計算機病毒、蠕蟲、木馬程序等計算機惡意程序流行的周期也越來越短,大量的病毒和各類惡意文件嚴重危害用戶的安全。隨著病毒的不斷更新和變化,病毒查殺客戶端也需要及時更新其病毒查殺引擎和病毒特征庫。[0003]現(xiàn)有的病毒查殺方法中,在發(fā)現(xiàn)新的病毒時,需要病毒查殺服務方提供方針對新的病毒,提取出病毒特征,并將該病毒特征添加至病毒庫中,下發(fā)給病毒查殺客戶端。如果該病毒特征的匹配無法由當前病毒引擎執(zhí)行時,就需要增加病毒引擎的算法。此時不僅僅需要更新病毒庫,還需更新查殺引擎。這給用戶和查殺病毒軟件提供商都提供了很大的麻煩,并且浪費了大量的時間和精力。[0004]而且由于用戶所使用的硬件平臺不同,例如包括英特爾32位、64位平臺,ARM架構(gòu)平臺,精簡指令集架構(gòu)平臺,病毒查殺服務人員在完成病毒查殺邏輯的設計后,還需要將查殺算法對應查殺代碼編譯成不同平臺的對應的可執(zhí)行代碼,下發(fā)給目標客戶端,以便目標客戶端解釋執(zhí)行,增加了工作量。而且病毒查殺客戶端對查殺代碼解釋執(zhí)行,查殺速度慢,也影響了病毒查殺效率?!?br/>發(fā)明內(nèi)容】[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的病毒查殺客戶端和病毒查殺服務器以及相應的病毒查殺方法。[0006]本發(fā)明一個進一步的目的是提高病毒查殺的效率。[0007]本發(fā)明另一個進一步的目的是要減小病毒查殺服務器的壓力。[0008]依據(jù)本發(fā)明的一個方面,提供了一種病毒查殺方法。該病毒查殺方法包括:病毒查殺客戶端接收由病毒查殺服務器下發(fā)的病毒查殺腳本,病毒查殺腳本包括對待查文件進行病毒特征匹配的指令;使用病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;由病毒查殺客戶端調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺。[0009]可選地,使用病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼包括:由病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成目標文件,并將目標文件鏈接成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。[0010]可選地,由病毒查殺客戶端調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺包括:獲取待查文件;識別待查文件的文件格式;按照文件格式解析待查文件的數(shù)據(jù)結(jié)構(gòu);由病毒查殺客戶端調(diào)用可執(zhí)行代碼對數(shù)據(jù)結(jié)構(gòu)進行病毒查殺。[0011]可選地,由病毒查殺客戶端調(diào)用可執(zhí)行代碼對數(shù)據(jù)結(jié)構(gòu)對待查文件進行病毒查殺包括:由病毒查殺客戶端按照可執(zhí)行代碼的運算邏輯提取數(shù)據(jù)結(jié)構(gòu)中特定位置的數(shù)據(jù)特征;判斷數(shù)據(jù)特征是否符合可執(zhí)行代碼中的病毒判定條件;若是,確定待查文件包含病毒。[0012]可選地,在確定待查文件包含病毒之后還包括:輸出對病毒進行處理的操作選項,并按照對操作選項的操作對待查文件進行處理。[0013]可選地,獲取待查文件包括:接收由用戶對文件類型或文件存儲目錄的選擇操作;提取屬于文件類型或者文件存儲目錄下的文件。[0014]可選地,識別待查文件的文件格式包括:提取待查文件的后綴文件名;根據(jù)后綴文件名確定待查文件的文件格式。[0015]可選地,在使用病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼之后還包括:將可執(zhí)行代碼保存至本地病毒庫中。[0016]根據(jù)本發(fā)明的另一個方面,還提供了一種病毒查殺客戶端。該病毒查殺客戶端包括:接收器,配置為接收由病毒查殺服務器下發(fā)的病毒查殺腳本,病毒查殺腳本包括對待查文件進行病毒特征匹配的指令;編譯器,配置為將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;查殺器,配置為調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺。[0017]可選地,編譯器包括:編譯模塊,配置為將病毒查殺腳本編譯成目標文件;鏈接模塊,配置為將目標文件鏈接成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。[0018]可選地,查殺器包括:獲取模塊,配置為獲取待查文件;識別模塊,配置為識別待查文件的文件格式;解析模塊,配置為按照文件格式解析待查文件的數(shù)據(jù)結(jié)構(gòu);執(zhí)行模塊,配置為調(diào)用可執(zhí)行代碼對數(shù)據(jù)結(jié)構(gòu)進行病毒查殺。[0019]可選地,執(zhí)行模塊還配置為:按照可執(zhí)行代碼的運算邏輯提取數(shù)據(jù)結(jié)構(gòu)中特定位置的數(shù)據(jù)特征;判斷數(shù)據(jù)特征是否符合可執(zhí)行代碼中的病毒判定條件;若是,確定待查文件包含病毒。[0020]可選地,查殺器還包括:病毒處理模塊,配置為輸出對病毒進行處理的操作選項,并按照對操作選項的操作對待查文件進行處理。[0021]可選地,獲取模塊還配置為:接收由用戶對文件類型或文件存儲目錄的選擇操作;提取屬于文件類型或者文件存儲目錄下的文件。[0022]可選地,識別模塊還配置為;提取待查文件的后綴文件名;根據(jù)后綴文件名確定待查文件的文件格式。[0023]可選地,上述病毒查殺客戶端還包括:存儲器,配置為將可執(zhí)行代碼保存至本地病毒庫中。[0024]根據(jù)本發(fā)明的另一個方面,還提供了一種病毒查殺方法。該病毒查殺方法包括:根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將指令的集合編寫為病毒查殺腳本;向病毒查殺客戶端下發(fā)病毒查殺腳本,以供病毒查殺客戶端將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用可執(zhí)行代碼進行病毒查殺。[0025]可選地,在將指令的集合編寫為病毒查殺腳本之后還包括:對病毒查殺腳本進行調(diào)試驗證。[0026]可選地,在根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令之前還包括:獲取病毒文件樣本;從病毒文件樣本中提取出病毒特征。[0027]根據(jù)本發(fā)明的另一個方面,還提供了一種病毒查殺服務器。該病毒查殺服務器包括:腳本生成模塊,配置為根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將指令的集合編寫為病毒查殺腳本;腳本下發(fā)模塊,配置為向病毒查殺客戶端下發(fā)病毒查殺腳本,以供病毒查殺客戶端將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用可執(zhí)行代碼進行病毒查殺。[0028]可選地,本發(fā)明提供的病毒查殺服務器還包括:調(diào)試模塊,配置為對病毒查殺腳本進行調(diào)試驗證。[0029]可選地,本發(fā)明提供的病毒查殺服務器還包括:病毒特征提取模塊,配置為獲取病毒文件樣本,并從病毒文件樣本中提取出病毒特征。[0030]根據(jù)本發(fā)明的另一個方面,還提供了一種病毒查殺系統(tǒng)。該病毒查殺系統(tǒng)包括:以上介紹的任一種病毒查殺客戶端;以及以上介紹的任一種病毒查殺服務器。[0031]本發(fā)明的病毒查殺方法下發(fā)統(tǒng)一的病毒查殺腳本,由病毒查殺客戶端中預置的編譯器編譯成對應的可執(zhí)行代碼,相比于在病毒查殺服務器中針對不同平臺下發(fā)相應的病毒特征庫和病毒查殺引擎,下發(fā)的數(shù)據(jù)量小,大大減輕了病毒查殺服務器的工作壓力,處理效率更高。[0032]進一步地,本發(fā)明的病毒查殺客戶端使用編譯后的代碼進行病毒查殺,相比于現(xiàn)有的代碼解釋執(zhí)行方式,大大提高了病毒查殺效率。[0033]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。[0034]根據(jù)下文結(jié)合附圖對本發(fā)明具體實施例的詳細描述,本領(lǐng)域技術(shù)人員將會更加明了本發(fā)明的上述以及其他目的、優(yōu)點和特征?!緦@綀D】【附圖說明】[0035]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:[0036]圖1是根據(jù)本發(fā)明一個實施例的病毒查殺系統(tǒng)的示意圖;[0037]圖2是根據(jù)本發(fā)明一個實施例的病毒查殺客戶端的示意圖;[0038]圖3是根據(jù)本發(fā)明一個實施例的病毒查殺服務器的示意圖;[0039]圖4是根據(jù)本發(fā)明一個實施例的一種病毒查殺方法的示意圖;以及[0040]圖5是根據(jù)本發(fā)明一個實施例的另一種病毒查殺方法的示意圖?!揪唧w實施方式】[0041]在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。[0042]圖1是根據(jù)本發(fā)明一個實施例的病毒查殺系統(tǒng)的示意圖,該病毒查殺系統(tǒng)包括:至少一個病毒查殺客戶端100與之通過網(wǎng)絡數(shù)據(jù)連接的病毒查殺服務器200。病毒查殺服務器200將根據(jù)新發(fā)現(xiàn)的病毒特征編寫的病毒查殺腳本下發(fā)給病毒查殺客戶端100,由病毒查殺客戶端100中預置的編譯器編譯成可執(zhí)行代碼用于病毒查殺。[0043]與現(xiàn)有技術(shù)中的病毒查殺系統(tǒng)不同,病毒查殺服務器200下發(fā)給不同平臺的病毒查殺客戶端100的腳本是相同的,即通用的代碼(例如符合C或C++語言規(guī)則的代碼)編寫的病毒查殺腳本,由病毒查殺客戶端100編譯成匹配的可執(zhí)行代碼進行病毒查殺,無需病毒查殺服務器200將針對同一病毒的查殺邏輯相同的代碼編譯成不同的版本,減少了病毒查殺服務器200的壓力,同時提高了對病毒的響應速度,并且由于病毒查殺客戶端100對殺毒腳本進行了編譯,相比于解釋執(zhí)行,速度更快,查殺效率更高。[0044]圖2和圖3分別是根據(jù)本發(fā)明一個實施例的病毒查殺客戶端100和病毒查殺服務器200的示意圖;其中,本發(fā)明實施例的病毒查殺客戶端100—般性地可以包括:接收器110、編譯器120、查殺器130,本發(fā)明實施例的病毒查殺服務器200—般性地可以包括:腳本生成模塊210、腳本下發(fā)模塊220,在一些優(yōu)選的實施例中,本發(fā)明實施例的病毒查殺客戶端100還可以增加設置有存儲器140,編譯器110的一種可選結(jié)構(gòu)為包括:編譯模塊122和鏈接模塊124,查殺器130的一種可選結(jié)構(gòu)為包括:獲取模塊131、識別模塊132、解析模塊133、執(zhí)行模塊134、病毒處理模塊135。本發(fā)明實施例的病毒查殺服務器200還可以增加設置有調(diào)試模塊230和病毒特征提取模塊240。以上病毒查殺客戶端100和病毒查殺服務器200中的部件可以根據(jù)實施例需要具備的功能和具體使用環(huán)境靈活進行配置,在一些可選實施例中可以不必具備以上所有的部件。[0045]在本實施例的病毒查殺客戶端100中,接收器110可以接收由病毒查殺服務器下發(fā)的病毒查殺腳本,該病毒查殺腳本包括對待查文件進行病毒特征匹配的指令,這些指令可以使用多個硬件平臺通用的代碼根據(jù)病毒特征生成,例如該病毒查殺腳本可以根據(jù)需要查殺的病毒的特征按照通用的語言規(guī)則(例如C和C++等)進行編寫,這類病毒查殺腳本可以靈活地編譯成不同平臺可以執(zhí)行的可執(zhí)行代碼。[0046]編譯器120可以將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。編譯是從源代碼(通常為高級語言)到能直接被計算機或虛擬機執(zhí)行的目標代碼(通常為低級語言或機器語言)的翻譯過程。對于不同的硬件平臺或者操作系統(tǒng),所能執(zhí)行的目標代碼是不同的,常見的處理器架構(gòu)包括x86架構(gòu)(又可細分為16位、32位、64位),精簡指令集架構(gòu)(RISC),按照操作系統(tǒng)進行區(qū)分,又可以分為Windows、Linux、安卓,而且同一系列的操作系統(tǒng),不同版本的操作系統(tǒng)的可執(zhí)行代碼也是有區(qū)別的。現(xiàn)有技術(shù)中面對大量不同種類的系統(tǒng)和平臺,需要分別下發(fā)不同的特征庫或查殺程序,浪費了大量的資源。在本實施例的病毒查殺客戶端100中,編譯器120設置于客戶端側(cè),只需要將統(tǒng)一的腳本編譯成符合自身需要的目標代碼即可,大大減小了服務器側(cè)的壓力。[0047]編譯器120具體可以包括:編譯模塊122和鏈接模塊124,其中編譯模塊病毒查殺腳本編譯成目標文件;鏈接模塊124將目標文件鏈接成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。一般而言,源代碼需要經(jīng)過編譯(compiler)處理為目標代碼(objectcode),然后還需要經(jīng)過鏈接(linker)轉(zhuǎn)換為可執(zhí)行程序(executables),才能被硬件設備執(zhí)行。也就是高級語言編寫成的腳本經(jīng)過編譯模塊122的處理,編譯成通用中間語言(MSIL/CIL)的目標字節(jié)碼(ByteCode),鏈接模塊124將目標代碼外加庫鏈接為一個可執(zhí)行文件,用于病毒查殺。鏈接模塊124需要解析未定義的符號引用,將目標文件中的占位符替換為符號的地址。[0048]查殺器130調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺。其中獲取模塊131配置為獲取待查文件,例如接收由用戶對文件類型或文件存儲目錄的選擇操作;提取屬于文件類型或者文件存儲目錄下的文件;識別模塊132識別待查文件的文件格式,例如提取待查文件的后綴文件名;根據(jù)后綴文件名確定待查文件的文件格式;解析模塊133配置為按照文件格式解析待查文件的數(shù)據(jù)結(jié)構(gòu);執(zhí)行模塊134配置為調(diào)用可執(zhí)行代碼對數(shù)據(jù)結(jié)構(gòu)進行病毒查殺。[0049]執(zhí)行模塊134的一種查殺流程為:按照可執(zhí)行代碼的運算邏輯提取數(shù)據(jù)結(jié)構(gòu)中特定位置的數(shù)據(jù)特征;判斷數(shù)據(jù)特征是否符合可執(zhí)行代碼中的病毒判定條件;若是,確定待查文件包含病毒。例如在解析模塊131解析出的數(shù)據(jù)特征指定位置找出偏移量,然后經(jīng)過偏移計算得出新位置的數(shù)據(jù)特征,將該特征與病毒樣本特征進行比對。當出現(xiàn)一個或多個特征比對匹配就可以認為該文件存在查殺的病毒。[0050]查殺器130的查殺對象可以為可移植的執(zhí)行體(PortableExecute,簡稱PE文件),也可以為非PE文件。針對PE文件,通過解析模塊131得到文件指令序列、導入函數(shù)名、導出函數(shù)名和可見字符串等數(shù)據(jù)結(jié)構(gòu)特征,利用以上指令序列、導入函數(shù)名、導出函數(shù)名和可見字符串中的一個或多個進行匹配。對于非PE文件可以在執(zhí)行環(huán)境中設置不同文件格式的文件對象,其中可以設置的文件格式包括但不限于Doc、xml、ppt、pdf、swf、Apk>Bat、in1、vbs、js。針對不同的文件格式,可以利用對應的執(zhí)行環(huán)境進行解析和特征提取匹配,完成病毒的查殺。[0051]在執(zhí)行模塊134調(diào)用可執(zhí)行代碼對數(shù)據(jù)結(jié)構(gòu)進行病毒查殺,確認存在文件出現(xiàn)安全問題后,病毒處理模塊135輸出對病毒進行處理的操作選項,并按照對操作選項的操作對待查文件進行處理。操作選項可以包括:刪除、隔離、忽略等,由用戶進行選擇,或者在用戶未進行選擇時,進行默認的操作。[0052]存儲器140還可以將可執(zhí)行代碼保存至本地病毒庫中,用于后續(xù)的病毒查殺操作。[0053]在本實施例的病毒查殺服務器200中,腳本生成模塊210根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將指令的集合編寫為病毒查殺腳本,也就是使用多個硬件平臺通用的代碼指令根據(jù)病毒特征生成病毒查殺腳本。病毒查殺服務器200在攔截到或者接收到上傳新的病毒樣本后,經(jīng)過分析提取出病毒特征,由腳本生成模塊生成病毒查殺腳本。腳本下發(fā)模塊220為向病毒查殺客戶端100下發(fā)病毒查殺腳本,以供病毒查殺客戶端100將病毒查殺腳本編譯成與病毒查殺客戶端100所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺。病毒查殺服務器200在完成病毒查殺腳本就可以直接下發(fā)不同平臺的病毒查殺客戶端100,相比于現(xiàn)有技術(shù),針對新樣本的反應速度更快、處理效率更高。[0054]在腳本生成模塊210生成病毒查殺腳本后,還可以利用調(diào)試模塊230對病毒查殺腳本進行調(diào)試驗證,已確認病毒查殺腳本的有效性,設置不同的運行環(huán)境編譯病毒查殺腳本并執(zhí)行,確認其對測試樣本的查殺有效性。[0055]腳本生成模塊210使用的病毒特征可以由病毒特征提取模塊240進行提取,具體地,病毒特征提取模塊240可以獲取病毒文件樣本,并從病毒文件樣本中分析提取出病毒特征。病毒特征提取模塊240獲取病毒文件樣本的方法可以使用多種方式,例如攔截網(wǎng)絡傳輸?shù)奈募?、接收病毒查殺客戶?00上傳的可疑文件,本實施例對此不做限制。[0056]本發(fā)明實施例的病毒查殺系統(tǒng),相比于現(xiàn)有方式,病毒查殺服務器200將相同的病毒查殺腳本下發(fā)給不同平臺的病毒查殺客戶端100,由病毒查殺客戶端100編譯執(zhí)行,提高了病毒查殺服務器200對新發(fā)現(xiàn)病毒的反應速度,提高了查殺效率。[0057]本發(fā)明實施例還提供了病毒查殺方法,可以分別由以上介紹的任一種病毒查殺客戶端100和病毒查殺服務器200執(zhí)行。以提高病毒查殺效率,圖4和圖5分別是根據(jù)本發(fā)明一個實施例的兩種病毒查殺方法的示意圖,其中在病毒查殺服務器側(cè),病毒查殺方法包括:[0058]步驟S402,根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將指令的集合編寫為病毒查殺腳本;[0059]步驟S404,向病毒查殺客戶端下發(fā)病毒查殺腳本。下發(fā)的病毒查殺腳本可供病毒查殺客戶端將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺。[0060]在步驟S402之前還可以通過多種方式獲取病毒文件樣本;從病毒文件樣本中提取出病毒特征,作為生成病毒查殺腳本的基礎(chǔ)。獲取病毒文件樣本的方法可以使用多種方式,例如攔截網(wǎng)絡傳輸?shù)奈募?、接收病毒查殺客戶?00上傳的可疑文件等。[0061]另外在步驟S402完成病毒查殺腳本后,還可以對病毒查殺腳本進行調(diào)試驗證。調(diào)試驗證可以對病毒查殺腳本進行完善,保證其可靠性和有效性,例如置不同的運行環(huán)境編譯病毒查殺腳本并執(zhí)行,確認其對測試樣本的查殺有效性,并在測試效果出現(xiàn)問題時及時進行修改。[0062]以下是毒查殺服務器在發(fā)現(xiàn)新的病毒樣本后所進行的一種可選流程:接收上傳的可疑文件,病毒查殺工程師確認可疑文件中包含新的病毒特征,并需要對已有的病毒特征庫進行修改,此時,根據(jù)該新病毒的特征指定相應的查殺算法,按照查殺算法生成對待查文件進行病毒特征匹配的指令,然后將這些指令進行組合編寫成病毒查殺腳本,從而該病毒查殺腳本可以執(zhí)行對該病毒特征查殺算法。在生成病毒查殺腳本的過程可以進行多次的調(diào)試驗證,直至確認該殺毒腳本可準確地對該病毒進行查殺,查殺效果達到要求。然后將該殺毒腳本下發(fā)給各種病毒查殺客戶端。[0063]其中在客戶端側(cè),病毒查殺方法包括:[0064]步驟S502,病毒查殺客戶端接收由病毒查殺服務器下發(fā)的病毒查殺腳本;[0065]步驟S504,使用病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;[0066]步驟S506,由病毒查殺客戶端調(diào)用可執(zhí)行代碼對待查文件進行病毒查殺。[0067]以上病毒查殺腳本包括對待查文件進行病毒特征匹配的指令,例如可以由病毒查殺服務器使用多個硬件平臺通用的指令代碼根據(jù)病毒特征生成。例如該病毒查殺腳本可以根據(jù)需要查殺的病毒的特征按照通用的語言規(guī)則(例如C和C++等)進行編寫,這類病毒查殺腳本可以靈活地編譯成不同平臺可以執(zhí)行的可執(zhí)行代碼。例如腳本中可以利用算術(shù)運算、邏輯判斷、跳轉(zhuǎn)語句、循環(huán)語句、比較語句等基本的指令集完成對病毒特征的提取和比對。[0068]步驟S504的一種的編譯流程可以為:由病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成目標文件,并將目標文件鏈接成與病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。病毒查殺腳本的代碼需要經(jīng)過編譯(compiler)處理為目標代碼(objectcode),經(jīng)過鏈接(linker)轉(zhuǎn)換為可執(zhí)行程序(executables)后被執(zhí)行查殺用戶指定的文件。在編譯過程中還可以對腳本進行檢查,對于腳本中出現(xiàn)的語法問題及時上報提高可靠性。[0069]步驟S506的一種查殺流程包括:獲取待查文件;識別待查文件的文件格式;按照文件格式解析待查文件的數(shù)據(jù)結(jié)構(gòu);由病毒查殺客戶端調(diào)用可執(zhí)行代碼對數(shù)據(jù)結(jié)構(gòu)進行病毒查殺。其中,待查文件可以為用戶指定的文件類型或指定地址下的文件,例如接收由用戶對文件類型或文件存儲目錄的選擇操作;提取屬于文件類型或者文件存儲目錄下的文件。識別文件的文件格式可以通過文件的后綴名確定,例如提取待查文件的后綴文件名;根據(jù)后綴文件名確定待查文件的文件格式。[0070]由病毒查殺客戶端調(diào)用可執(zhí)行代碼對數(shù)據(jù)結(jié)構(gòu)進行病毒查殺具體可以為:由病毒查殺客戶端按照可執(zhí)行代碼的運算邏輯提取數(shù)據(jù)結(jié)構(gòu)中特定位置的數(shù)據(jù)特征;判斷數(shù)據(jù)特征是否符合可執(zhí)行代碼中的病毒判定條件;若是,確定待查文件包含病毒。在確定待查文件包含病毒之后還可以輸出對病毒進行處理的操作選項,并按照對操作選項的操作對待查文件進行處理。比如根據(jù)計算機病毒中的關(guān)鍵字、特征程序段內(nèi)容、病毒特征及傳染方式、文件長度的變化,在特征分類的基礎(chǔ)上進行檢測工作,或是對某個文件或數(shù)據(jù)段進行檢驗和計算并保存其結(jié)果而后根據(jù)保存的結(jié)果對該文件或數(shù)據(jù)段進行檢驗是否存在病毒特征等。[0071]查殺對象可以為可移植的執(zhí)行體(PortableExecute,簡稱PE文件),也可以為非PE文件。針對PE文件,可以在解析后得到文件指令序列、導入函數(shù)名、導出函數(shù)名和可見字符串等數(shù)據(jù)結(jié)構(gòu)特征,利用以上指令序列、導入函數(shù)名、導出函數(shù)名和可見字符串中的一個或多個進行匹配。對于非PE文件可以在執(zhí)行環(huán)境中設置針對不同文件格式的文件對象,其中可以設置的文件格式包括但不限于Doc、xml、ppt、pdf、swf、Apk>Bat、in1、vbs、js。針對不同的文件格式,可以利用對應的執(zhí)行環(huán)境進行解析和特征提取匹配,完成病毒的查殺。[0072]在確認存在文件出現(xiàn)安全問題后,輸出對病毒進行處理的操作選項可以包括:刪除、隔離、忽略等,以上選項由用戶進行選擇,或者在用戶未進行選擇時,進行默認的操作。[0073]在完成查殺后,還可以將病毒查殺腳本編譯后的可執(zhí)行代碼保存至本地病毒庫中,用于病毒查殺引擎在后續(xù)啟動初始化時直接載入調(diào)用。[0074]步驟S506查殺流程可以利用有病毒查殺腳本的可執(zhí)行程序調(diào)用應用程序接口(Applicat1nProgramInterface,簡稱API)來完成,比如調(diào)用文件操作API函數(shù)、緩沖區(qū)解碼API函數(shù),以及針對文件格式的專用API函數(shù)如:MZ文件處API函數(shù),PE文件處理API函數(shù)、OLE文件處理API函數(shù)、引導區(qū)處理API函數(shù)等等。通過調(diào)用該些文件操作API函數(shù),進行如下的文件操作,如創(chuàng)建、刪除、復制、查找、調(diào)用、刷新、讀取等。[0075]利用API進行文件操作、內(nèi)存操作等。例如進行如下的文件操作,如創(chuàng)建、刪除、復制、查找、調(diào)用、刷新、讀取等。[0076]本發(fā)明的病毒查殺方法下發(fā)病毒查殺腳本由病毒查殺客戶端編譯執(zhí)行,病毒查殺腳本與硬件及操作系統(tǒng)平臺無關(guān),減少了大量不同平臺的調(diào)試過程,減少了病毒處理的時間,提聞了效率。[0077]病毒查殺客戶端中預置的編譯器將病毒查殺腳本編譯成對應的可執(zhí)行代碼,相比于現(xiàn)有技術(shù),下發(fā)的數(shù)據(jù)量小,病毒查殺效率高。[0078]在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。[0079]類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循【具體實施方式】的權(quán)利要求書由此明確地并入該【具體實施方式】,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。[0080]本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中。可以把實施例中的模塊或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。[0081]此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。[0082]本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的病毒查殺客戶端和病毒查殺服務器中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。[0083]應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設計出替換實施例。在權(quán)利要求中,不應將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。[0084]至此,本領(lǐng)域技術(shù)人員應認識到,雖然本文已詳盡示出和描述了本發(fā)明的多個示例性實施例,但是,在不脫離本發(fā)明精神和范圍的情況下,仍可根據(jù)本發(fā)明公開的內(nèi)容直接確定或推導出符合本發(fā)明原理的許多其他變型或修改。因此,本發(fā)明的范圍應被理解和認定為覆蓋了所有這些其他變型或修改。[0085]本發(fā)明實施例提供了Al.—種病毒查殺方法,包括:[0086]病毒查殺客戶端接收由病毒查殺服務器下發(fā)的病毒查殺腳本,所述病毒查殺腳本包括對待查文件進行病毒特征匹配的指令;[0087]使用病毒查殺客戶端中預置的編譯器將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;[0088]由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。[0089]A2.根據(jù)Al所述的方法,其中,使用病毒查殺客戶端中預置的編譯器將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼包括:[0090]由所述病毒查殺客戶端中預置的編譯器將所述病毒查殺腳本編譯成目標文件,并將所述目標文件鏈接成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。[0091]A3.根據(jù)Al所述的方法,其中,由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺包括:[0092]獲取所述待查文件;[0093]識別所述待查文件的文件格式;[0094]按照所述文件格式解析所述待查文件的數(shù)據(jù)結(jié)構(gòu);[0095]由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述數(shù)據(jù)結(jié)構(gòu)進行病毒查殺。[0096]A4.根據(jù)A3所述的方法,其中,由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述數(shù)據(jù)結(jié)構(gòu)進行病毒查殺包括:[0097]由所述病毒查殺客戶端按照所述可執(zhí)行代碼的運算邏輯提取所述數(shù)據(jù)結(jié)構(gòu)中特定位置的數(shù)據(jù)特征;[0098]判斷所述數(shù)據(jù)特征是否符合所述可執(zhí)行代碼中的病毒判定條件;[0099]若是,確定所述待查文件包含病毒。[0100]A5.根據(jù)A4所述的方法,其中,在確定所述待查文件包含病毒之后還包括:[0101]輸出對病毒進行處理的操作選項,并按照對所述操作選項的操作對所述待查文件進行處理。[0102]A6.根據(jù)A3至A5中任一項所述的方法,其中,獲取所述待查文件包括:[0103]接收由用戶對文件類型或文件存儲目錄的選擇操作;[0104]提取屬于所述文件類型或者所述文件存儲目錄下的文件。[0105]A7.根據(jù)A3至A6中任一項所述的方法,其中,識別所述待查文件的文件格式包括:[0106]提取所述待查文件的后綴文件名;[0107]根據(jù)所述后綴文件名確定所述待查文件的文件格式。[0108]AS.根據(jù)Al至A7中任一項所述的方法,其中,在使用病毒查殺客戶端中預置的編譯器將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼之后還包括:[0109]將所述可執(zhí)行代碼保存至本地病毒庫中。[0110]本發(fā)明實施例還提供了B9.—種病毒查殺客戶端,包括:[0111]接收器,配置為接收由病毒查殺服務器下發(fā)的病毒查殺腳本,所述病毒查殺腳本包括對待查文件進行病毒特征匹配的指令;[0112]編譯器,配置為將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;[0113]查殺器,配置為調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。[0114]B10.根據(jù)B9所述的客戶端,其中,所述編譯器包括:[0115]編譯模塊,配置為將所述病毒查殺腳本編譯成目標文件;[0116]鏈接模塊,配置為將所述目標文件鏈接成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。[0117]Bll.根據(jù)B9所述的客戶端,其中,所述查殺器包括:[0118]獲取模塊,配置為獲取所述待查文件;[0119]識別模塊,配置為識別所述待查文件的文件格式;[0120]解析模塊,配置為按照所述文件格式解析所述待查文件的數(shù)據(jù)結(jié)構(gòu);[0121]執(zhí)行模塊,配置為調(diào)用所述可執(zhí)行代碼對所述數(shù)據(jù)結(jié)構(gòu)進行病毒查殺。[0122]B12.根據(jù)Bll所述的客戶端,其中,所述執(zhí)行模塊還配置為:[0123]按照所述可執(zhí)行代碼的運算邏輯提取所述數(shù)據(jù)結(jié)構(gòu)中特定位置的數(shù)據(jù)特征;[0124]判斷所述數(shù)據(jù)特征是否符合所述可執(zhí)行代碼中的病毒判定條件;[0125]若是,確定所述待查文件包含病毒。[0126]B13.根據(jù)B12所述的客戶端,其中,查殺器還包括:[0127]病毒處理模塊,配置為輸出對病毒進行處理的操作選項,并按照對所述操作選項的操作對所述待查文件進行處理。[0128]B14.根據(jù)Bll至B13中任一項所述的客戶端,所述獲取模塊還配置為:[0129]接收由用戶對文件類型或文件存儲目錄的選擇操作;[0130]提取屬于所述文件類型或者所述文件存儲目錄下的文件。[0131]B15.根據(jù)Bll至B14中任一項所述的客戶端,其中,所述識別模塊還配置為;[0132]提取所述待查文件的后綴文件名;[0133]根據(jù)所述后綴文件名確定所述待查文件的文件格式。[0134]B16.根據(jù)B9至B15中任一項所述的客戶端,還包括:[0135]存儲器,配置為將所述可執(zhí)行代碼保存至本地病毒庫中。[0136]本發(fā)明實施例還提供了C17.—種病毒查殺方法,包括:[0137]根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將所述指令的集合編寫為病毒查殺腳本;[0138]向病毒查殺客戶端下發(fā)所述病毒查殺腳本,以供所述病毒查殺客戶端將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。[0139]C18.根據(jù)C17所述的方法,其中,在將所述指令的集合編寫為病毒查殺腳本之后還包括:[0140]對所述病毒查殺腳本進行調(diào)試驗證。[0141]C19.根據(jù)C17或C18所述的方法,其中,在根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令之前還包括:[0142]獲取病毒文件樣本;[0143]從所述病毒文件樣本中提取出所述病毒特征。[0144]本發(fā)明實施例還提供了D20.—種病毒查殺服務器,包括:[0145]腳本生成模塊,配置為根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將所述指令的集合編寫為病毒查殺腳本;[0146]腳本下發(fā)模塊,配置為向病毒查殺客戶端下發(fā)所述病毒查殺腳本,以供所述病毒查殺客戶端將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。[0147]D21.根據(jù)D20所述的服務器,還包括:[0148]調(diào)試模塊,配置為對所述病毒查殺腳本進行調(diào)試驗證。[0149]D22.根據(jù)D20或D21所述的服務器,還包括:[0150]病毒特征提取模塊,配置為獲取病毒文件樣本,并從所述病毒文件樣本中提取出所述病毒特征。[0151]本發(fā)明實施例還提供了E23.—種病毒查殺系統(tǒng),包括:[0152]根據(jù)B9至B15中任一項所述的病毒查殺客戶端;[0153]根據(jù)D20至D22中任一項所述的病毒查殺服務器?!緳?quán)利要求】1.一種病毒查殺方法,包括:病毒查殺客戶端接收由病毒查殺服務器下發(fā)的病毒查殺腳本,所述病毒查殺腳本包括對待查文件進行病毒特征匹配的指令;使用病毒查殺客戶端中預置的編譯器將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。2.根據(jù)權(quán)利要求1所述的方法,其中,使用病毒查殺客戶端中預置的編譯器將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼包括:由所述病毒查殺客戶端中預置的編譯器將所述病毒查殺腳本編譯成目標文件,并將所述目標文件鏈接成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼。3.根據(jù)權(quán)利要求1所述的方法,其中,由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺包括:獲取所述待查文件;識別所述待查文件的文件格式;按照所述文件格式解析所述待查文件的數(shù)據(jù)結(jié)構(gòu);由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述數(shù)據(jù)結(jié)構(gòu)進行病毒查殺。4.根據(jù)權(quán)利要求3所述的方法,其中,由所述病毒查殺客戶端調(diào)用所述可執(zhí)行代碼對所述數(shù)據(jù)結(jié)構(gòu)進行病毒查殺包括:由所述病毒查殺客戶端按照所述可執(zhí)行代碼的運算邏輯提取所述數(shù)據(jù)結(jié)構(gòu)中特定位置的數(shù)據(jù)特征;判斷所述數(shù)據(jù)特征是否符合所述可執(zhí)行代碼中的病毒判定條件;若是,確定所述待查文件包含病毒。5.根據(jù)權(quán)利要求4所述的方法,其中,在確定所述待查文件包含病毒之后還包括:輸出對病毒進行處理的操作選項,并按照對所述操作選項的操作對所述待查文件進行處理。6.根據(jù)權(quán)利要求3至5中任一項所述的方法,其中,獲取所述待查文件包括:接收由用戶對文件類型或文件存儲目錄的選擇操作;提取屬于所述文件類型或者所述文件存儲目錄下的文件。7.一種病毒查殺客戶端,包括:接收器,配置為接收由病毒查殺服務器下發(fā)的病毒查殺腳本,所述病毒查殺腳本包括對待查文件進行病毒特征匹配的指令;編譯器,配置為將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼;查殺器,配置為調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。8.一種病毒查殺方法,包括:根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將所述指令的集合編寫為病毒查殺腳本;向病毒查殺客戶端下發(fā)所述病毒查殺腳本,以供所述病毒查殺客戶端將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。9.一種病毒查殺服務器,包括:腳本生成模塊,配置為根據(jù)病毒特征生成對待查文件進行病毒特征匹配的指令,并將所述指令的集合編寫為病毒查殺腳本;腳本下發(fā)模塊,配置為向病毒查殺客戶端下發(fā)所述病毒查殺腳本,以供所述病毒查殺客戶端將所述病毒查殺腳本編譯成與所述病毒查殺客戶端所在硬件平臺匹配的可執(zhí)行代碼,并調(diào)用所述可執(zhí)行代碼對所述待查文件進行病毒查殺。10.一種病毒查殺系統(tǒng),包括:根據(jù)權(quán)利要求7所述的病毒查殺客戶端;根據(jù)權(quán)利要求9所述的病毒查殺服務器?!疚臋n編號】G06F21/56GK104134039SQ201410356648【公開日】2014年11月5日申請日期:2014年7月24日優(yōu)先權(quán)日:2014年7月24日【發(fā)明者】陳卓,唐海,楊康,邢超申請人:北京奇虎科技有限公司,奇智軟件(北京)有限公司