一种病毒apk的识别方法及装置的制作方法

文档序号:6367253阅读:386来源:国知局
专利名称:一种病毒apk的识别方法及装置的制作方法
技术领域
本申请涉及网络信息安全的技术领域,特别是涉及ー种病毒APK的识别方法,以及,ー种病毒APK的识别装置。
背景技术
Android是ー种以Linux为基础的开放源码操作系统,主要使用于手机等移动终端,目前尚未有统一中文名称。Android平台由操作系统、中间件、用户界面和应用软件组成。APK是Android application package file 的缩写,即 Android安装包,也可以理解为Android终端上安装的应用软件。APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android终端中执行即可安装。apk文件和sis一祥,把android sdk编译的工程打包成一个安装程序文件,格式为apk。APK文件其实是zip格式,但后缀名被修改为apk,通过UnZip解压后,可以看到Dex文件,Dex是DalvikVMexecutes的全称,即Android Dalvik执行程序,并非标准的Java字节码而是Dalvik字节码。Android在运行ー个程序时首先需要UnZip,然后类似Symbian那样直接运行,和Windows Mobile中的PE文件有区别。具体而言,APK文件的结构如下表所示
权利要求
1.一种病毒APK的识别方法,其特征在于,包括 预置病毒数据库,所述病毒数据库中包括病毒特征码及对应的权重值; 检测目标Android安装包APK的指定文件中是否包含病毒特征码,若是,则统计所述病毒特征码对应的权重值之和; 若所述权重值之和大于等于某病毒判定阈值,则判定所述目标Android安装包APK中存在相应类型的病毒。
2.如权利要求I所述的方法,其特征在于,还包括 生成所述目标Android安装包APK中存在该类型病毒的提示信息。
3.如权利要求I所述的方法,其特征在于,还包括 若所述权重值之和小于某病毒判定阈值,则判定所述目标Android安装包APK为病毒APK。
4.如权利要求3所述的方法,其特征在于,还包括 生成所述目标Android安装包APK为病毒APK的提示信息。
5.如权利要求2或4所述的方法,其特征在于,还包括 调用安全软件接口,针对所述目标Android安装包APK进行病毒查杀。
6.如权利要求I所述的方法,其特征在于,所述指定文件包括可执行文件,所述预置病毒数据库的步骤包括 扫描源Android安装包APK中的可执行文件; 提取所述可执行文件中的特定数据,判断所述特定数据是否包含病毒信息,其中,所述特定数据包括可执行文件的头部信息、可执行文件常量池中的常量,和/或,可执行文件中的操作指令; 若是,则根据所述特定数据生成病毒特征码; 为所述病毒特征码分配权重值; 将所述病毒特征码及对应的权重值保存至病毒数据库中。
7.如权利要求6所述的方法,其特征在于,所述可执行文件包括Dex文件,所述Dex文件包括classes, dex文件,扩展名为.jar的文件,以及,Dex格式的文件。
8.如权利要求7所述的方法,其特征在于,所述病毒特征码包括头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码;所述可执行文件中的操作指令包括操作码和操作数两部分; 所述头部信息特征码、常量特征码、操作数特征码、类名函数名特征码根据包含病毒信息的头部信息、常量、操作数和类名函数名直接生成; 所述指令特征码、指令特征码序列根据包含病毒信息的操作指令直接生成,或者,根据包含病毒信息的操作码和操作数的字符串或通配符生成; 所述将病毒特征码及对应的权重值保存至病毒数据库中的步骤包括 将所述头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码,以及,对应的权重值分别保存在数据库中不同的存储区域; 或者, 将所述头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码,以及,对应的权重值保存在数据库中,并分别标记分类标签。
9.如权利要求8所述的方法,其特征在于,所述检测目标Android安装包APK中的指定文件中是否包含所述病毒特征码的步骤包括 定位目标Android安装包APK中可执行文件的头部信息,将所述头部信息与病毒数据库中的头部信息特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 定位目标Android安装包APK中可执行文件常量池中的常量,将所述常量与病毒数据库中的常量特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 定位目标Android安装包APK中可执行文件操作指令中的操作数,将所述操作数与病毒数据库中的操作数特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 定位目标Android安装包APK中可执行文件操作指令中的操作码,将所述操作码与病毒数据库中的指令特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 定位目标Android安装包APK中可执行文件操作指令中的操作码,将所述操作码与病毒数据库中的指令特征码序列进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 定位目标Android安装包APK中可执行文件常量池中的常量以及操作指令中的操作数所调用的类名和/或函数名,将所述类名和/或函数名与病毒数据库中的类名函数名特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码。
10.如权利要求6所述的方法,其特征在于,所述指定文件还包括文本文件,所述预置病毒数据库的步骤还包括 提取所述文本文件中的Iinux命令,判断所述Iinux命令是否包含病毒信息; 若是,则根据所述Iinux命令生成病毒特征码。
11.如权利要求10所述的方法,其特征在于,所述病毒特征码还包括Iinux命令特征码,所述检测目标Android安装包APK中的指定文件中是否包含病毒特征码的步骤还包括 定位目标Android安装包APK中的文本文件,将所述文本文件中的Iinux命令与病毒数据库中的Iinux命令特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码。
12.如权利要求9所述的方法,其特征在于,所述可执行文件中常量池中的常量包括字符串strings、类型types、域fields和方法methods中的常量;所述可执行文件的头部信息中包括摘要信息checksum和/或签名信息Signature。
13.一种病毒APK的识别装置,其特征在于,包括病毒数据库生成模块,用于预置病毒数据库,所述病毒数据库中包括病毒特征码及对应的权重值; 病毒检测模块,用于检测目标Android安装包APK中的指定文件中是否包含所述病毒特征码;若是,则调用病毒权重值统计模块; 病毒权重值统计模块,用于统计所述病毒特征码对应的权重值之和; 阈值判断模块,用于判断所述权重值之和是否大于等于某病毒判定阈值;若是,则调用病毒判定模块; 病毒判定模块,用于判定所述目标Android安装包APK中存在相应类型的病毒。
14.如权利要求13所述的装置,其特征在于,还包括 第一提示信息生成模块,与所述病毒判定模块连接,用于生成所述目标Android安装包APK中存在该类型病毒的提示信息。
15.如权利要求13所述的装置,其特征在于,还包括 病毒识别模块,用于在所述权重值之和小于某病毒判定阈值时,判定所述目标Android安装包APK为病毒APK。
16.如权利要求15所述的装置,其特征在于,还包括 第二提示信息生成模块,与所述病毒识别模块连接,用于生成所述目标Android安装包APK为病毒APK的提示信息。
17.如权利要求14或16所述的装置,其特征在于,还包括 病毒查杀模块,用于调用安全软件接口,针对所述目标Android安装包APK进行病毒查杀。
18.如权利要求17所述的装置,其特征在于,所述指定文件包括可执行文件,所述病毒数据库生成模块包括 源文件扫描子模块,用于扫描源Android安装包APK中的可执行文件; 特定数据提取子模块,用于提取所述可执行文件中的特定数据,判断所述特定数据是否包含病毒信息,其中,所述特定数据包括可执行文件的头部信息、可执行文件常量池中的常量,和/或,可执行文件中的操作指令; 第一特征码生成子模块,用于在所述特定数据包含病毒信息时,根据所述特定数据生成病毒特征码; 权重值分配模块,用于为所述病毒特征码分配权重值; 特征码保存子模块,用于将所述病毒特征码及对应的权重值保存至病毒数据库中。
19.如权利要求18所述的装置,其特征在于,所述可执行文件包括Dex文件,所述Dex文件包括classes, dex文件,扩展名为.jar的文件,以及,Dex格式的文件。
20.如权利要求19所述的装置,其特征在于,所述病毒特征码包括头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码;所述可执行文件中的操作指令包括操作码和操作数两部分; 所述头部信息特征码、常量特征码、操作数特征码、类名函数名特征码根据包含病毒信息的头部信息、常量、操作数和类名函数名直接生成; 所述指令特征码、指令特征码序列根据包含病毒信息的操作指令直接生成,或者,根据包含病毒信息的操作码和操作数的字符串或通配符生成;所述特征码保存子模块进一步包括 分区保存单元,用于将所述头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码,以及,对应的权重值分别保存在数据库中不同的存储区域; 或者, 标签保存单元,用于将所述头部信息特征码、常量特征码、操作数特征码、指令特征码、指令特征码序列、类名函数名特征码,以及,对应的权重值保存在数据库中,并分别标记分类标签。
21.如权利要求20所述的装置,其特征在于,所述病毒检测模块包括 第一检测子模块,用于定位目标Android安装包APK中可执行文件的头部信息,将所述头部信息与病毒数据库中的头部信息特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 第二检测子模块,用于定位目标Android安装包APK中可执行文件常量池中的常量,将所述常量与病毒数据库中的常量特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 第三检测子模块,用于定位目标Android安装包APK中可执行文件操作指令中的操作数,将所述操作数与病毒数据库中的操作数特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 第四检测子模块,用于定位目标Android安装包APK中可执行文件操作指令中的操作码,将所述操作码与病毒数据库中的指令特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 第五检测子模块,用于定位目标Android安装包APK中可执行文件操作指令中的操作码,将所述操作码与病毒数据库中的指令特征码序列进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码; 和/或, 第六检测子模块,用于定位目标Android安装包APK中可执行文件常量池中的常量以及操作指令中的操作数所调用的类名和/或函数名,将所述类名和/或函数名与病毒数据库中的类名函数名特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码。
22.如权利要求17所述的装置,其特征在于,所述指定文件还包括文本文件,所述病毒数据库生成模块还包括 Iinux命令提取子模块,用于提取所述文本文件中的Iinux命令,判断所述Iinux命令是否包含病毒信息; 第二特征码生成子模块,用于在所述Iinux命令包含病毒信息时,根据所述Iinux命令生成病毒特征码。
23.如权利要求22所述的装置,其特征在于,所述病毒特征码还包括Iinux命令特征码,所述病毒检测模块还包括 第七检测子模块,用于定位目标Android安装包APK中的文本文件,将所述文本文件中的Iinux命令与病毒数据库中的Iinux命令特征码进行匹配,若匹配,则判定目标Android安装包APK中的指定文件中包含病毒特征码。
全文摘要
本申请提供了一种病毒APK的识别方法和装置,其中,所述方法包括预置病毒数据库,所述病毒数据库中包括病毒特征码及对应的权重值;检测目标Android安装包APK的指定文件中是否包含病毒特征码,若是,则统计所述病毒特征码对应的权重值之和;若所述权重值之和大于等于某病毒判定阈值,则判定所述目标Android安装包APK中存在相应类型的病毒。本申请可以快速、准确、有效地识别出病毒APK及其变种,提高APK应用的安全性。
文档编号G06F21/00GK102708320SQ20121013745
公开日2012年10月3日 申请日期2012年5月4日 优先权日2012年5月4日
发明者张旭, 王栒 申请人:奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1