專利名稱:一種apk病毒特征碼的提取方法及裝置的制作方法
技術(shù)領(lǐng)域:
本申請涉及計算機安全的技術(shù)領(lǐng)域,特別是涉及ー種APK病毒特征碼的提取方法,以及,ー種APK病毒特征碼的提取裝置。
背景技術(shù):
Android是ー種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于手機等移動終端,目前尚未有統(tǒng)一中文名稱。Android平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。APK是Android application package file 的縮寫,即 Android安裝包,也可以理解為Android終端上安裝的應(yīng)用軟件。APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android終端中執(zhí)行即可安裝。apk文件和sis 一祥,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。APK文件其實是zip格式,但后綴名被修改為apk,通過UnZip解壓后,可以看到Dex文件,Dex是DalvikVMexecutes的全稱,即Android Dalvik執(zhí)行程序,并非標準的Java字節(jié)碼而是Dalvik字節(jié)碼。Android在運行ー個程序時首先需要UnZip,然后類似Symbian那樣直接運行,和Windows Mobile中的PE文件有區(qū)別。具體而言,APK文件的結(jié)構(gòu)如下表所示
權(quán)利要求
1.ー種APK病毒特征碼的提取方法,其特征在于,包括 掃描Android安裝包APK中的指定文件; 提取所述指定文件中的操作指令,判斷所述操作指令是否包含病毒信息; 若是,則根據(jù)所述操作指令生成病毒特征碼。
2.如權(quán)利要求I所述的方法,其特征在于,所述指定文件包括可執(zhí)行文件,所述可執(zhí)行文件包括Dex文件,所述Dex文件包括classes, dex文件,擴展名為.jar的文件,以及,Dex格式的文件。
3.如權(quán)利要求2所述的方法,其特征在于,還包括 提取所述可執(zhí)行文件的常量池中的常量,判斷所述常量中是否包含病毒信息; 若是,則根據(jù)所述常量生成病毒特征碼。
4.如權(quán)利要求3所述的方法,其特征在于,還包括 提取所述可執(zhí)行文件的頭部信息,判斷所述頭部信息中是否包含病毒信息; 若是,則根據(jù)所述頭部信息生成病毒特征碼。
5.如權(quán)利要求1、2、3或4所述的方法,其特征在于,所述操作指令包括操作碼和操作數(shù),所述判斷操作指令是否包含病毒信息的步驟包括 判斷所述操作數(shù)中是否包含預(yù)定義的非法操作數(shù); 和/或, 判斷所述操作碼和操作數(shù)的組合是否符合預(yù)定義的非法組合規(guī)則。
6.如權(quán)利要求5所述的方法,其特征在干,所述根據(jù)操作指令生成病毒特征碼的步驟包括 將所述操作指令本身作為病毒特征碼; 和/或, 將所述操作指令的操作碼,以及,操作數(shù)的字符串或通配符作為病毒特征碼。
7.如權(quán)利要求3所述的方法,其特征在干,所述可執(zhí)行文件的常量池中的常量包括字符串strings、類型types、域fields和方法methods中的常量,所述判斷常量中是否包含病毒信息的步驟包括 判斷所述字符串strings中的常量是否包含預(yù)定義的惡意網(wǎng)址信息、惡意文件名或惡意號碼信息; 和/或, 判斷所述類型types、域fields和方法methods中的常量是否有調(diào)用自定義的類名、自定義的函數(shù)名或Android系統(tǒng)SDK類名、Android系統(tǒng)函數(shù)名; 所述根據(jù)常量生成病毒特征碼的步驟為,將所述常量中的病毒信息作為病毒特征碼。
8.如權(quán)利要求4所述的方法,其特征在干,所述可執(zhí)行文件的頭部信息中包括摘要信息checksum和簽名信息Signature,所述判斷頭部信息中是否包含病毒信息的步驟包括 判斷所述摘要信息checksum和/或簽名信息Signature中是否包含預(yù)定義的非法字符串; 所述根據(jù)頭部信息生成病毒特征碼的步驟為,將所述摘要信息checksum和/或簽名信息Signature作為病毒特征碼。
9.如權(quán)利要求I所述的方法,其特征在于,所述指定文件還包括文本文件,所述操作指令為Iinux命令, 所述判斷操作指令是否包含病毒信息的步驟為,判斷所述Iinux命令是否符合預(yù)置的惡意Iinux命令; 所述根據(jù)操作指令生成病毒特征碼的步驟為,將所述Iinux命令作為病毒特征碼。
10.如權(quán)利要求1、2、3、4、6、7、8、9或10所述的方法,其特征在于,還包括 將所述病毒特征碼保存至數(shù)據(jù)庫中。
11.如權(quán)利要求10所述的方法,其特征在于,所述病毒特征碼包括頭部信息特征碼、常量特征碼、操作數(shù)特征碼、指令特征碼、指令特征碼序列、類名函數(shù)名特征碼;所述將病毒特征碼保存至數(shù)據(jù)庫中的步驟包括 將所述頭部信息特征碼、常量特征碼、操作數(shù)特征碼、指令特征碼、指令特征碼序列、類名函數(shù)名特征碼分別保存在數(shù)據(jù)庫中不同的存儲區(qū)域; 或者, 將所述頭部信息特征碼、常量特征碼、操作數(shù)特征碼、指令特征碼、指令特征碼序列、類名函數(shù)名特征碼保存在數(shù)據(jù)庫中,井分別標記分類標簽。
12.—種APK病毒特征碼的提取裝置,其特征在于,包括 掃描模塊,用于掃描Android安裝包APK中的指定文件; 指令提取模塊,用于提取所述指定文件中的操作指令; 指令判斷模塊,用于判斷所述操作指令是否包含病毒信息; 第一特征碼生成模塊,用于在所述操作指令包含病毒信息時,根據(jù)所述操作指令生成病毒特征碼。
13.如權(quán)利要求12所述的裝置,其特征在于,所述指定文件包括可執(zhí)行文件,所述可執(zhí)行文件包括Dex文件,所述Dex文件包括classes, dex文件,擴展名為.jar的文件,以及,Dex格式的文件。
14.如權(quán)利要求13所述的裝置,其特征在于,還包括 常量提取模塊,用于提取所述可執(zhí)行文件常量池中的常量; 常量判斷模塊,用于判斷所述常量中是否包含病毒信息; 第二特征碼生成模塊,用于在所述常量中包含病毒信息時,根據(jù)所述常量生成病毒特征碼。
15.如權(quán)利要求14所述的裝置,其特征在于,還包括 頭部信息提取模塊,用于提取所述可執(zhí)行文件的頭部信息; 頭部信息判斷模塊,用于判斷所述頭部信息中是否包含病毒信息; 第三特征碼生成模塊,用于在所述頭部信息中包含病毒信息時,根據(jù)所述頭部信息生成病毒特征碼。
16.如權(quán)利要求12、13、14或15所述的裝置,其特征在于,所述操作指令包括操作碼和操作數(shù)兩部分,所述指令判斷模塊包括 第一判斷子模塊,用于判斷所述操作數(shù)中是否包含預(yù)定義的非法操作數(shù); 和/或, 第二判斷子模塊,用于判斷所述操作碼和操作數(shù)的組合是否符合預(yù)定義的非法組合規(guī)則。
17.如權(quán)利要求16所述的裝置,其特征在于,所述第一特征碼生成模塊包括 直接生成子模塊,用于將所述操作指令本身作為病毒特征碼; 和/或, 轉(zhuǎn)換生成子模塊,用于將所述操作指令的操作碼,以及,操作數(shù)的字符串或通配符作為病毒特征碼。
18.如權(quán)利要求14所述的裝置,其特征在于,所述可執(zhí)行文件中常量池中的常量包括字符串strings、類型types、域fields和方法methods中的常量,所述常量判斷模塊包括 第三判斷子模塊,用于判斷所述字符串strings中的常量是否包含預(yù)定義的惡意網(wǎng)址信息、惡意文件名或惡意號碼信息; 和/或, 第四判斷子模塊,用于判斷所述類型types、域fields和方法methods中的常量是否有調(diào)用自定義的類名、自定義的函數(shù)名或Android系統(tǒng)SDK類名、Android系統(tǒng)函數(shù)名。
19.如權(quán)利要求12所述的裝置,其特征在于,所述指定文件還包括文本文件,所述操作指令為Iinux命令,所述指令判斷模塊包括 第五判斷子模塊,用于判斷所述Iinux命令是否符合預(yù)置的惡意Iinux命令。
20.如權(quán)利要求12、13、14、16、17、18或19所述的裝置,其特征在于,還包括 存儲模塊,用于將所述病毒特征碼保存至數(shù)據(jù)庫中。
21.如權(quán)利要求20所述的裝置,其特征在于,所述病毒特征碼包括頭部信息特征碼、常量特征碼、操作數(shù)特征碼、指令特征碼、指令特征碼序列、類名函數(shù)名特征碼;所述存儲模塊包括 分區(qū)存儲子模塊,用于將所述頭部信息特征碼、常量特征碼、操作數(shù)特征碼、指令特征碼、指令特征碼序列、類名函數(shù)名特征碼分別保存在數(shù)據(jù)庫中不同的存儲區(qū)域; 或者, 標簽存儲子模塊,用于將所述頭部信息特征碼、常量特征碼、操作數(shù)特征碼、指令特征碼、指令特征碼序列、類名函數(shù)名特征碼保存在數(shù)據(jù)庫中,井分別標記分類標簽。
全文摘要
本申請?zhí)峁┝艘环NAPK病毒特征碼的提取方法及裝置,其中所述方法包括掃描Android安裝包APK中的指定文件;提取所述指定文件中的操作指令,判斷所述操作指令是否包含病毒信息;若是,則根據(jù)所述操作指令生成病毒特征碼。本申請可以準確、有效地提取出病毒APK特征碼,以幫助提高病毒APK及其變種識別的效率和準確性,從而提高APK應(yīng)用的安全性。
文檔編號G06F21/00GK102663285SQ20121007672
公開日2012年9月12日 申請日期2012年3月21日 優(yōu)先權(quán)日2012年3月21日
發(fā)明者張旭, 王栒 申請人:奇智軟件(北京)有限公司