一種檢測病毒的方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種檢測病毒的方法和裝置,屬于計算機【技術領域】。所述方法包括:在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù);獲取預先存儲的所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征;如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征,則報告所述目標文件為病毒文件。采用本發(fā)明,可以提高對病毒的識別率。
【專利說明】一種檢測病毒的方法和裝置
【技術領域】
[0001] 本發(fā)明涉及計算機【技術領域】,特別涉及一種檢測病毒的方法和裝置。
【背景技術】
[0002] 隨著互聯(lián)網(wǎng)技術和計算機技術的發(fā)展,計算機和互聯(lián)網(wǎng)的使用變得越來越普遍。 然而,計算機軟件會存在漏洞,某些人則會利用這些漏洞來制造計算機病毒,以對計算機進 行攻擊。為了防止病毒對計算機的攻擊,技術人員研究出了殺毒軟件用于在計算機中查殺 病毒。
[0003] -般地,殺毒軟件查找病毒的過程可以如下,從文件中的指定位置選取數(shù)據(jù)與病 毒特征碼進行匹配判定,如果選取的數(shù)據(jù)與病毒特征碼相匹配,則報告該文件為病毒文件, 如果選取的數(shù)據(jù)與病毒特征碼不匹配,則可以判定文件正常。
[0004] 在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術至少存在以下問題:
[0005] 對于上述查找病毒的方法,如果病毒開發(fā)者對病毒特征碼稍微做些修改,就能夠 防止病毒被殺毒軟件識別,從而,導致對病毒的識別率較低。
【發(fā)明內(nèi)容】
[0006] 為了解決現(xiàn)有技術的問題,本發(fā)明實施例提供了一種檢測病毒的方法和裝置。所 述技術方案如下:
[0007] 第一方面,提供了一種檢測病毒的方法,所述方法包括:
[0008] 在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù);
[0009] 獲取預先存儲的所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征;
[0010] 如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征, 則報告所述目標文件為病毒文件。
[0011] 第二方面,提供了一種檢測病毒的裝置,所述裝置包括:
[0012] 第一獲取模塊,用于在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù);
[0013] 第二獲取模塊,用于獲取預先存儲的所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特 征;
[0014] 檢測模塊,用于如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒 數(shù)據(jù)結(jié)構(gòu)特征,則報告所述目標文件為病毒文件。
[0015] 本發(fā)明實施例提供的技術方案帶來的有益效果是:
[0016] 本發(fā)明實施例中,在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù),獲取預先存儲的預設 內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征,如果預設內(nèi)容單元的數(shù)據(jù)符合預設內(nèi)容單元對應的病 毒數(shù)據(jù)結(jié)構(gòu)特征,則報告目標文件為病毒文件。這樣,可以通過對目標文件的結(jié)構(gòu)特征進行 檢測的方式來檢測病毒,由于病毒如果想要發(fā)作則病毒文件必須要符合一定的結(jié)構(gòu)特征, 所以,病毒開發(fā)者為了保證病毒的發(fā)作,即使改變病毒特征碼,病毒文件的結(jié)構(gòu)特征也不會 發(fā)生改變,從而,上述檢測病毒的方法可以提高對病毒的識別率。
【專利附圖】
【附圖說明】
[0017] 為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于 本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0018] 圖1是本發(fā)明實施例提供的一種檢測病毒的方法流程圖;
[0019] 圖2是本發(fā)明實施例提供的一種文件的結(jié)構(gòu)示意圖;
[0020] 圖3是本發(fā)明實施例提供的一種RECORD的結(jié)構(gòu)示意圖;
[0021] 圖4是本發(fā)明實施例提供的一種檢測病毒的裝置結(jié)構(gòu)示意圖;
[0022] 圖5是本發(fā)明實施例提供的一種終端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0023] 為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方 式作進一步地詳細描述。
[0024] 實施例一
[0025] 本發(fā)明實施例提供了一種檢測病毒的方法,如圖1所示,該方法的處理流程可以 包括如下的步驟:
[0026] 步驟101,在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù)。
[0027] 步驟102,獲取預先存儲的此預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征。
[0028] 步驟103,如果此預設內(nèi)容單元的數(shù)據(jù)符合此預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu) 特征,則報告此目標文件為病毒文件。
[0029] 本發(fā)明實施例中,在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù),獲取預先存儲的預設 內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征,如果預設內(nèi)容單元的數(shù)據(jù)符合預設內(nèi)容單元對應的病 毒數(shù)據(jù)結(jié)構(gòu)特征,則報告目標文件為病毒文件。這樣,可以通過對目標文件的結(jié)構(gòu)特征進行 檢測的方式來檢測病毒,由于病毒如果想要發(fā)作則病毒文件必須要符合一定的結(jié)構(gòu)特征, 所以,病毒開發(fā)者為了保證病毒的發(fā)作,即使改變病毒特征碼,病毒文件的結(jié)構(gòu)特征也不會 發(fā)生改變,從而,上述檢測病毒的方法可以提高對病毒的識別率。
[0030] 實施例二
[0031] 本發(fā)明實施例提供了一種檢測病毒的方法,該方法的執(zhí)行主體可以為終端。其中, 終端可以是計算機、手機、平板電腦等。
[0032] 下面將結(jié)合【具體實施方式】,對圖1所示的處理流程進行詳細的說明,內(nèi)容可以如 下:
[0033] 步驟101,在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù)。
[0034] 其中,內(nèi)容單元可以是文件中用于存儲數(shù)據(jù)的存儲單元。預設內(nèi)容單元可以是與 shellcode(殼代碼)相關的內(nèi)容單元,shellcode就是病毒文件中實際攻擊電腦的代碼。 例如,內(nèi)容單元可以是XLS(EXtensible Stylesheet Language,可擴展樣式表語言)格式文 件中的任一 STREAM或任一 RECORD。
[0035] 在實施中,技術人員可以對病毒開發(fā)者設計病毒文件的思路進行分析,以對于某 種格式的文件,確定文件中的哪個或哪些內(nèi)容單元為預設內(nèi)容單元。文件中的某些內(nèi)容單 元,容易被病毒開發(fā)者選作設置shellcode的目標,這類內(nèi)容單元可以選作預設內(nèi)容單元。 另外,文件中的某些內(nèi)容單元,在其它內(nèi)容單元設置shellcode后,可能會導致其內(nèi)容或數(shù) 據(jù)結(jié)構(gòu)發(fā)生變化,這類內(nèi)容單元也可以選作預設內(nèi)容單元。當用戶想要對目標文件進行病 毒檢測時,可以安裝用于查殺病毒的應用程序,啟動該應用程序?qū)δ繕宋募M行病毒檢測, 在進行病毒檢測的過程中,可以按照一定的順序在目標文件的所有內(nèi)容單元中,查找預設 內(nèi)容單元,查找到某預設內(nèi)容單元后,可以進一步獲取該預設內(nèi)容單元中的數(shù)據(jù)。
[0036] 可選地,上述目標文件可以是任意格式的文件,以XLS格式為例,目標文件的格式 可以為XLS格式,預設內(nèi)容單元為WORKBOOK STREAM (工作簿流)中的預設RECORD (記錄)。
[0037] 在實施中,如圖2所示,XLS格式的文件的結(jié)構(gòu)是由眾多STREAM組成的,如C0MP0BJ STREAM、WORKBOOK STREAM等,其中WORKBOOK STREAM中存儲著文件的實際數(shù)據(jù),其中 WORKBOOK STREAM是由多個RECORD組成的。在XLS格式的文件中,某些RECORD可以被病毒 開發(fā)者利用來設置shellcode,技術人員可以將相應的RECORD設置為待檢測的RECORD (即 上述預設RECORD)。或者,對于某些RECORD,在其它RECORD設置shellcode后,可能會導致 其內(nèi)容或數(shù)據(jù)結(jié)構(gòu)發(fā)生變化,這類RECORD也可以被選作待檢測的RECORD。當用戶想要對 XLS格式的文件進行病毒檢測時,可以啟動上述應用程序?qū)LS格式的文件進行病毒檢測, 在進行病毒檢測的過程中,可以按照一定的順序在XLS格式的文件的所有RECORD中,查找 預設RECORD,查找到某預設RECORD后,可以進一步獲取該預設RECORD中的數(shù)據(jù)。
[0038] 步驟102,獲取預先存儲的預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征。
[0039] 其中,病毒數(shù)據(jù)結(jié)構(gòu)特征是病毒文件的內(nèi)容單元中的數(shù)據(jù)所具有的結(jié)構(gòu)特征。
[0040] 在實施中,技術人員針對某一種病毒,可以對其工作原理進行分析,確定相應的病 毒文件中受shellcode影響的內(nèi)容單元,作為預設內(nèi)容單元,并確定為了促使shellcode發(fā) 作所需的該預設內(nèi)容單元中數(shù)據(jù)的結(jié)構(gòu)特征,作為該預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特 征。進而可以設置預設內(nèi)容單元與病毒數(shù)據(jù)結(jié)構(gòu)特征的對應關系,并進行存儲。其中每個 病毒數(shù)據(jù)結(jié)構(gòu)特征對應的預設內(nèi)容單元可以為一個或多個內(nèi)容單元,每個預設內(nèi)容單元可 以對應有一個或多個病毒數(shù)據(jù)結(jié)構(gòu)特征。預設內(nèi)容單元與病毒數(shù)據(jù)結(jié)構(gòu)特征的對應關系可 以如表1所示。在進行病毒檢測的過程中,可以按照一定的順序在目標文件的所有內(nèi)容單 元中,查找預設內(nèi)容單元,查找到某預設內(nèi)容單元后,可以獲取其中的數(shù)據(jù),并可以在上述 存儲的預設內(nèi)容單元與病毒數(shù)據(jù)結(jié)構(gòu)特征的對應關系中,查找該預設內(nèi)容單元所對應的病 毒數(shù)據(jù)結(jié)構(gòu)特征。
[0041] 表 1
[0042]
【權利要求】
1. 一種檢測病毒的方法,其特征在于,所述方法包括: 在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù); 獲取預先存儲的所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征; 如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征,則報 告所述目標文件為病毒文件。
2. 根據(jù)權利要求1所述的方法,其特征在于,所述預設內(nèi)容單元,包括:前后相鄰的第 一內(nèi)容單元和第二內(nèi)容單元;所述病毒數(shù)據(jù)結(jié)構(gòu)特征,包括:對所述第一內(nèi)容單元的數(shù)據(jù) 中預設位置的數(shù)據(jù),進行預設算法的計算,得到的第一數(shù)值,與所述第二內(nèi)容單元的數(shù)據(jù)的 數(shù)據(jù)量之和大于預設數(shù)值; 所述如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征, 則報告所述目標文件為病毒文件,包括: 如果對所述第一內(nèi)容單元的數(shù)據(jù)中預設位置的數(shù)據(jù),進行預設算法的計算,得到的第 一數(shù)值,與所述第二內(nèi)容單元的數(shù)據(jù)的數(shù)據(jù)量之和大于預設數(shù)值,則報告所述目標文件為 病毒文件。
3. 根據(jù)權利要求1所述的方法,其特征在于,所述病毒數(shù)據(jù)結(jié)構(gòu)特征,包括:數(shù)據(jù)量超 出所述預設內(nèi)容單元的預設數(shù)據(jù)量上限; 所述如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征, 則報告所述目標文件為病毒文件,包括: 如果所述預設內(nèi)容單元的數(shù)據(jù)的數(shù)據(jù)量超出所述預設內(nèi)容單元的預設數(shù)據(jù)量上限,則 報告所述目標文件為病毒文件。
4. 根據(jù)權利要求1所述的方法,其特征在于,所述獲取預先存儲的所述預設內(nèi)容單元 對應的病毒數(shù)據(jù)結(jié)構(gòu)特征,包括: 獲取預先存儲的所述預設內(nèi)容單元對應的多個病毒數(shù)據(jù)結(jié)構(gòu)特征; 所述如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征, 則報告所述目標文件為病毒文件,包括: 如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述多個病毒數(shù)據(jù)結(jié)構(gòu)特征中的任一個病毒數(shù)據(jù) 結(jié)構(gòu)特征,則報告所述目標文件為病毒文件。
5. 根據(jù)權利要求1所述的方法,其特征在于,所述目標文件的格式為可擴展樣式表語 言XLS格式,所述預設內(nèi)容單元為WORKBOOKSTREAM中的預設RECORD。
6. -種檢測病毒的裝置,其特征在于,所述裝置包括: 第一獲取模塊,用于在目標文件中,獲取預設內(nèi)容單元的數(shù)據(jù); 第二獲取模塊,用于獲取預先存儲的所述預設內(nèi)容單元對應的病毒數(shù)據(jù)結(jié)構(gòu)特征; 檢測模塊,用于如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述預設內(nèi)容單元對應的病毒數(shù)據(jù) 結(jié)構(gòu)特征,則報告所述目標文件為病毒文件。
7. 根據(jù)權利要求6所述的裝置,其特征在于,所述預設內(nèi)容單元,包括:前后相鄰的第 一內(nèi)容單元和第二內(nèi)容單元;所述病毒數(shù)據(jù)結(jié)構(gòu)特征,包括:對所述第一內(nèi)容單元的數(shù)據(jù) 中預設位置的數(shù)據(jù),進行預設算法的計算,得到的第一數(shù)值,與所述第二內(nèi)容單元的數(shù)據(jù)的 數(shù)據(jù)量之和大于預設數(shù)值; 所述檢測模塊,用于: 如果對所述第一內(nèi)容單元的數(shù)據(jù)中預設位置的數(shù)據(jù),進行預設算法的計算,得到的第 一數(shù)值,與所述第二內(nèi)容單元的數(shù)據(jù)的數(shù)據(jù)量之和大于預設數(shù)值,則報告所述目標文件為 病毒文件。
8. 根據(jù)權利要求6所述的裝置,其特征在于,所述病毒數(shù)據(jù)結(jié)構(gòu)特征,包括:數(shù)據(jù)量超 出所述預設內(nèi)容單元的預設數(shù)據(jù)量上限; 所述檢測模塊,用于: 如果所述預設內(nèi)容單元的數(shù)據(jù)的數(shù)據(jù)量超出所述預設內(nèi)容單元的預設數(shù)據(jù)量上限,則 報告所述目標文件為病毒文件。
9. 根據(jù)權利要求6所述的裝置,其特征在于,所述第二獲取模塊,用于: 獲取預先存儲的所述預設內(nèi)容單元對應的多個病毒數(shù)據(jù)結(jié)構(gòu)特征; 所述檢測模塊,用于: 如果所述預設內(nèi)容單元的數(shù)據(jù)符合所述多個病毒數(shù)據(jù)結(jié)構(gòu)特征中的任一個病毒數(shù)據(jù) 結(jié)構(gòu)特征,則報告所述目標文件為病毒文件。
10. 根據(jù)權利要求6所述的裝置,其特征在于,所述目標文件的格式為可擴展樣式表語 言XLS格式,所述預設內(nèi)容單元為WORKBOOKSTREAM中的預設RECORD。
【文檔編號】G06F21/56GK104376259SQ201410466149
【公開日】2015年2月25日 申請日期:2014年9月12日 優(yōu)先權日:2014年9月12日
【發(fā)明者】崔精兵 申請人:騰訊科技(深圳)有限公司