著录项信息
专利名称 | 应用程序安装包解压过程的检测方法与装置、客户端设备 |
申请号 | CN201210250361.2 | 申请日期 | 2012-07-19 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2012-11-28 | 公开/公告号 | CN102799826A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/56 | IPC分类号 | G;0;6;F;2;1;/;5;6查看分类表>
|
申请人 | 腾讯科技(深圳)有限公司 | 申请人地址 | 广东省深圳市福田区振兴路赛格科技园2栋东403室
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 腾讯科技(深圳)有限公司,腾讯云计算(北京)有限责任公司 | 当前权利人 | 腾讯科技(深圳)有限公司,腾讯云计算(北京)有限责任公司 |
发明人 | 李伟;韩景维 |
代理机构 | 北京三高永信知识产权代理有限责任公司 | 代理人 | 滕一斌 |
摘要
本发明公开了一种应用程序安装包解压过程的检测方法与装置、客户端设备。属于安全技术领域。所述方法包括:对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;根据病毒特征库中的病毒样本对所述解压缩数据进行检测;当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件。本发明的技术方案,可以有效地节省内存;缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。
1.一种应用程序安装包解压过程的检测方法,其特征在于,所述方法包括:
对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;
根据病毒特征库中的病毒样本对所述解压缩数据进行检测;
当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件;
当所述解压缩数据中不包括所述病毒样本时,重复执行对不大于一阈值的数据的解压缩和检测,直到确定应用程序安装包为病毒文件或者流氓软件,或者所述应用程序解压完毕;
其中,所述病毒样本包括偏移地址和病毒特征码;
所述根据病毒特征库中的病毒样本对所述解压缩数据进行检测,包括:
从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据;
比对所述检测数据与所述病毒特征码;
当所述检测数据与所述病毒特征码一致,确定所述解压缩数据中包括所述病毒样本;
所述从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据,包括:
若所述解压缩数据中以所述偏移地址作为起点之后的数据的长度小于所述病毒特征码长度,则从起始偏移地址到结束偏移地址之间的所有偏移地址对应的至少两个所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的所述检测数据;
其中所述起始偏移地址为所述偏移地址,所述结束偏移地址为所述偏移地址加所述病毒特征码长度的偏移地址。
2.根据权利要求1所述的方法,其特征在于,重复进行不大于一阈值的数据的解压缩和检测,若确定所述应用程序安装包为病毒文件或者流氓软件,则停止解压。
3.根据权利要求1所述的方法,其特征在于,重复进行不大于一阈值的数据的解压缩和检测,直到所述应用程序解压完毕。
4.一种应用程序安装包解压过程的检测装置,其特征在于,所述装置包括:
解压缩模块,用于对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;
检测模块,用于根据病毒特征库中的病毒样本对所述解压缩数据进行检测;
确定模块,用于当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件;当所述解压缩数据中不包括所述病毒样本时,重复执行对不大于一阈值的数据的解压缩和检测,直到确定应用程序安装包为病毒文件或者流氓软件,或者所述应用程序解压完毕;
其中,所述病毒样本包括偏移地址和病毒特征码;
所述装置还包括:
获取单元,用于从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据;
比对单元,用于比对所述检测数据与所述病毒特征码;
确定单元,用于当所述检测数据与所述病毒特征码一致,确定所述解压缩数据中包括所述病毒样本;
所述获取单元,还用于当所述解压缩数据中以所述偏移地址作为起点之后的数据的长度小于所述病毒特征码长度时,从起始偏移地址到结束偏移地址之间的所有偏移地址对应的至少两个所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的所述检测数据;其中所述起始偏移地址为所述偏移地址,所述结束偏移地址为所述偏移地址加所述病毒特征码长度的偏移地址。
5.根据权利要求4所述的装置,其特征在于,还包括判断模块;
所述判断模块,用于在所述获取单元从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据之前,判断所述解压缩数据中以所述偏移地址作为起点之后的数据的长度是否大于等于所述病毒特征码长度。
6.根据权利要求4所述的装置,其特征在于,所述解压缩模块和所述检测模块,还分别用于重复进行不大于一阈值的数据的解压缩和检测,若所述确定模块确定所述应用程序安装包为病毒文件或者流氓软件,则所述解压缩模块停止解压。
7.根据权利要求4所述的装置,其特征在于,所述解压缩模块和所述检测模块,还分别用于重复进行不大于一阈值的数据的解压缩和检测,直到所述应用程序解压完毕。
8.一种客户端设备,其特征在于,在所述客户端设备上设置有如上权利要求4-7任一所述的应用程序安装包解压过程的检测装置。
9.根据权利要求8所述的客户端设备,其特征在于,所述客户端设备为移动终端或者固定终端。
应用程序安装包解压过程的检测方法与装置、客户端设备\n技术领域\n[0001] 本发明涉及计算机安全领域,特别涉及一种应用程序安装包解压过程的检测方法与装置、客户端设备。\n背景技术\n[0002] 应用程序安装包通常为一个压缩文件,该压缩文件中通常可以包括资源文件、配置文件以及可执行文件等等。\n[0003] 现有技术中,为了检测应用程序的安装包是否为流氓软件或者病毒,需要对应用程序的安装包进行解压,获取到完整的可执行文件。然后在内存中对完整可执行文件进行反编译分析,提取出特征信息;并将提取出的特征信息与预设的病毒特征库中的病毒样本所包含的特征信息进行比对,从而检测出该应用程序安装包是否为流氓程序或者病毒文件。\n[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有技术中,当需要对应用程序的安装包进行检测时,需要先对应用程序的安装包进行解压缩得到完整的可执行文件,然后在内存中对得到的完整的可执行文件进行反编译分析提取特征信息,当可执行文件较大,完整的可执行文件放在内存中,会占用大量的内存,而且提取特征信息的过程较为耗时,因此现有技术的检测应用程序安装包是否为病毒或者流氓软件的方案检测效率较低。\n发明内容\n[0005] 为了解决现有技术的问题,本发明实施例提供了一种应用程序安装包解压过程的检测方法与装置、客户端设备。所述技术方案如下:\n[0006] 一方面,提供了一种应用程序安装包解压过程的检测方法,所述方法包括:\n[0007] 对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;\n[0008] 根据病毒特征库中的病毒样本对所述解压缩数据进行检测;\n[0009] 当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件。\n[0010] 可选地,如上所述的方法中,所述病毒样本包括偏移地址和病毒特征码。\n[0011] 可选地,如上所述的方法中,根据病毒特征库中的病毒样本对所述解压缩数据进行检测,包括:\n[0012] 从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据;\n[0013] 比对所述检测数据与所述病毒特征码;\n[0014] 当所述检测数据与所述病毒特征码一致,确定所述解压缩数据中包括所述病毒样本。\n[0015] 可选地,如上所述的方法中,从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据之前,所述方法还包括:\n[0016] 判断所述解压缩数据中以所述偏移地址作为起点之后的数据的长度是否大于等于所述病毒特征码长度;\n[0017] 若否,从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据,包括:\n[0018] 从起始偏移地址到结束偏移地址之间的所有偏移地址对应的至少两个所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的所述检测数据;\n其中所述起始偏移地址为所述偏移地址,所述结束偏移地址为所述偏移地址加所述病毒特征码长度的偏移地址。\n[0019] 可选地,如上所述的方法中,所述方法还包括:\n[0020] 重复进行不大于一阈值的数据的解压缩和检测,若确定所述应用程序安装包为病毒文件或者流氓软件,则停止解压。可选地,如上所述的方法中,所述方法还包括:\n[0021] 重复进行不大于一阈值的数据的解压缩和检测,直到所述应用程序解压完毕。另一方面,提供了一种应用程序安装包解压过程的检测装置,所述装置包括:\n[0022] 解压缩模块,用于对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;\n[0023] 检测模块,用于根据病毒特征库中的病毒样本对所述解压缩数据进行检测;\n[0024] 确定模块,用于当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件。\n[0025] 可选地,如上所述的装置中,所述病毒样本包括偏移地址和病毒特征码。\n[0026] 可选地,如上所述的装置中,所述检测模块,包括:\n[0027] 获取单元,用于从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据;\n[0028] 比对单元,用于比对所述检测数据与所述病毒特征码;\n[0029] 确定单元,用于当所述检测数据与所述病毒特征码一致,确定所述解压缩数据中包括所述病毒样本。\n[0030] 可选地,如上所述的装置中,还包括判断模块;\n[0031] 所述判断模块,用于在所述获取单元从所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的检测数据之前,判断所述解压缩数据中以所述偏移地址作为起点之后的数据的长度是否大于等于所述病毒特征码长度;\n[0032] 所述获取单元,还用于当所述判断模块判断出所述解压缩数据中以所述偏移地址作为起点之后的数据的长度小于所述病毒特征码长度时,从起始偏移地址到结束偏移地址之间的所有偏移地址对应的至少两个所述解压缩数据中获取以所述偏移地址作为起点、长度等于所述病毒特征码长度的所述检测数据;其中所述起始偏移地址为所述偏移地址,所述结束偏移地址为所述偏移地址加所述病毒特征码长度的偏移地址。\n[0033] 可选地,如上所述的装置中,所述解压缩模块和所述检测模块,还分别用于重复进行不大于一阈值的数据的解压缩和检测,若所述确定模块确定所述应用程序安装包为病毒文件或者流氓软件,则所述解压缩模块停止解压。可选地,如上所述的装置中,所述解压缩模块和所述检测模块,还分别用于重复进行不大于一阈值的数据的解压缩和检测,直到所述应用程序解压完毕。\n[0034] 再一方面,提供了一种客户端设备,在所述客户端设备上设置有如上任一所述的应用程序安装包解压过程的检测装置。\n[0035] 可选地,如上所述的客户端设备中,所述客户端设备为移动终端或者固定终端。\n[0036] 本发明实施例的应用程序安装包解压过程的检测方法与装置、客户端设备,通过对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;并根据病毒特征库中的病毒样本对所述解压缩数据进行检测;当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件。与现有技术相比,本发明实施例的技术方案中,通过对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据,与现有技术中通过获取应用程序的安装包解压缩后得到的完整的可执行文件,并对完整的可执行文件进行反编译提取应用程序的安装包的特征信息相比,可以有效地节省内存;而且本发明实施例的技术方案,仅需要并根据病毒特征库中的病毒样本对解压缩数据进行检测;并确定应用程序安装包为病毒文件或者流氓软件,从而可以有效地缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。\n附图说明\n[0037] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0038] 图1为本发明实施例一提供的应用程序安装包解压过程的检测方法的流程图。\n[0039] 图2为本发明实施例二提供的应用程序安装包解压过程的检测方法的流程图。\n[0040] 图3为本发明实施例三提供的应用程序安装包解压过程的检测装置的结构示意图。\n[0041] 图4为本发明实施例四提供的应用程序安装包解压过程的检测装置的结构示意图。\n[0042] 图5为本发明实施例五提供的客户端设备的结构示意图。\n具体实施方式\n[0043] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。\n[0044] 实施例一\n[0045] 图1为本发明实施例一提供的应用程序安装包解压过程的检测方法的流程图。如图1所示,本实施例的应用程序安装包解压过程的检测方法执行主体为应用程序安装包解压过程的检测装置,例如该应用程序安装包解压过程的检测装置可以设置在客户端设备上。如图1所示,本实施例的应用程序安装包解压过程的检测方法,具体可以包括如下步骤:\n[0046] 100、对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;\n[0047] 101、根据病毒特征库中的病毒样本对解压缩数据进行检测;\n[0048] 102、当解压缩数据中包括病毒样本时,确定应用程序安装包为病毒文件或者流氓软件。\n[0049] 本实施例的应用程序安装包可以为各种系统下的应用程序安装包,例如可以为windows系统的应用程序安装包,还可以为Android系统的应用程序安装包。例如具体可以为Android系统的应用程序安装包可以称为apk文件。当应用程序安装包为apk文件,对应的可执行文件为dex文件。本实施例的应用程序安装包还可以为ios系统的应用程序安装包。\n[0050] 本实施例中阈值根据实际需求设置,例如为了减少实施例时占用的内存空间,可以设置阈值为很小的几十K,另外,阈值也可以根据所解压的应用程序安装包的大小进行确定。本实施例的技术方案中,每次仅对应用程序安装包中大于等于阈值的数据进行解压缩,且直接根据病毒特征库中的病毒样本对解压缩数据进行检测。由于每次仅解压缩大于等于阈值的数据,可以通过反复解压缩操作,实现对整个应用程序安装包进行解压缩,并对每次解压缩之后,都根据病毒特征库中的病毒样本对解压缩数据进行检测,当所有应用程序安装包解压缩完毕之后,并检测得到解压缩数据中包括病毒样本时,确定应用程序安装包为病毒文件或者流氓软件。当检测得到解压缩数据中未包括病毒样本时,确定应用程序安装包为病毒文件或者流氓软件。此处的解压缩数据不限制为一次解压缩的数据,可以是多次解压缩的解压缩数据。\n[0051] 本实施例的应用程序安装包解压过程的检测方法,通过对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据;并根据病毒特征库中的病毒样本对所述解压缩数据进行检测;当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件。与现有技术相比,本实施例的技术方案中,通过对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据,与现有技术中通过获取应用程序的安装包解压缩后得到的完整的可执行文件,并对完整的可执行文件进行反编译提取应用程序的安装包的特征信息相比,可以有效地节省内存;而且本实施例的技术方案,仅需要并根据病毒特征库中的病毒样本对解压缩数据进行检测;并确定应用程序安装包为病毒文件或者流氓软件,从而可以有效地缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。\n[0052] 可选地,在上述图1所示实施例的技术方案的基础上,病毒特征库中的病毒样本包括偏移地址和病毒特征码。\n[0053] 例如,一个病毒样本中可以包括一个偏移地址和该偏移地址对应的病毒特征码,即偏移地址和病毒特征码之间为一一对应关系。一个病毒样本中也可以包括多个偏移地址和多个偏移地址中每个偏移地址对应的病毒特征码,即包括多对偏移地址和病毒特征码之间的对应关系。病毒特征库中的各个病毒样本之间可以具有相同的偏移地址,还可以具有多个不同的偏移地址。其中,偏移地址是指文件在内存或缓存中的各数据的地址。偏移地址从文件的第一个字节开始计数,起始值为0。病毒特征码是一段用于比对的数据,该数据具有指定长度。如果某个文件以该偏移地址为起点的指定长度的数据与该病毒特征码相同,则认为该文件是病毒文件。\n[0054] 例如,病毒样本的偏移地址可以为66,也即是定位被扫描文件中00000066h这个地址,本领域技术人员可以获知,该定位可通过文件指针实现,当一个文件打开并保存在缓存中时,文件指针指向文件的起始地址00000000h。需要说明的是,此处所举的病毒样本的偏移地址仅是为了说明获取方法的一个示意,并不限制病毒样本的实际组成。\n[0055] 其中当病毒样本中包括多对偏移地址和病毒特征码时,此时对应的解压缩数据包括病毒样本具体可以指得是,在解压缩数据中包括每个偏移地址对应的病毒特征码。而且此处的解压缩数据也不限制为解压一次大于等于阈值的数据得到的解压缩数据,还可以指的依次分别解压多个大小等于阈值的数据得到的多个解压缩数据。\n[0056] 进一步可选地,在上述图1所示实施例的技术方案的基础上,其中步骤101“根据病毒特征库中的病毒样本对所述解压缩数据进行检测”,具体可以包括如下步骤:\n[0057] (1)从解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据;\n[0058] (2)比对检测数据与病毒特征码;当检测数据与病毒特征码一致,执行(3);否则当检测数据与病毒特征码不一致,执行(4);\n[0059] (3)确定解压缩数据中包括病毒样本;\n[0060] (4)确定解压缩数据中未包括病毒样本。\n[0061] 进一步可选地,上述实施例中的步骤(1)“从解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据”之前,还可以包括:判断解压缩数据中以偏移地址作为起点之后的数据的长度是否大于等于病毒特征码长度;并确定解压缩数据中以偏移地址作为起点之后的数据的长度大于等于病毒特征码长度。\n[0062] 例如当阈值为30k,病毒样本中包括偏移地址32,长度为10k的病毒特征码A和以及偏移地址为45,长度为15k的病毒特征码B。由于阈值为30k,第一次按照阈值对应用程序安装包进行解压缩时得到30k的数据,假设对应的偏移地址为0-30,第一次解压缩之后,解压缩数据中未包含病毒样本中的偏移地址,不进行检测。第二次按照阈值对应用程序安装包进行解压缩时,也得到30k的数据,对应的偏移地址31-60,此时解压缩数据中包含病毒样本中的偏移地址32和45,此时从第二次解压缩得到的解压缩数据中获取以偏移地址\n32作为起点、长度等于病毒特征码长度10K的检测数据1,和以偏移地址45作为起点、长度等于病毒特征码长度15K的检测数据2;并分别将检测数据1和病毒特征码A,检测数据2和病毒特征码B进行比对,当检测数据1和病毒特征码A一致,且检测数据2和病毒特征码B一致,确定解压缩数据中包括病毒样本,确定应用程序安装包为病毒文件或者流氓软件。\n否则当检测数据1和病毒特征码A不一致或者检测数据2和病毒特征码B不一致,确定解压缩数据中未包括病毒样本,确定应用程序安装包不是病毒文件,也不是流氓软件。\n[0063] 进一步可选地,当解压缩数据中以偏移地址作为起点之后的数据的长度小于病毒特征码长度时,上述步骤(1)从解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据”,具体可以包括:从起始偏移地址到结束偏移地址之间的所有偏移地址对应的至少两个解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据;其中起始偏移地址为病毒特征库中的病毒样本中的偏移地址,结束偏移地址为病毒特征库中的病毒样本中的偏移地址加病毒特征码长度的偏移地址。\n[0064] 例如当阈值为30k,病毒样本中包括偏移地址32,长度为10k的病毒特征码A,以及偏移地址为58,长度为20k的病毒特征码B。由于阈值为30k,第一次按照阈值对应用程序安装包进行解压缩时得到30k的数据,假设对应的偏移地址为0-30,第一次解压缩之后,解压缩数据中未包含病毒样本中的偏移地址,不进行检测。第二次按照阈值对应用程序安装包进行解压缩时,得到也得到30k的数据,对应的偏移地址31-60,此时解压缩数据中包含病毒样本中的偏移地址32,此时从第二次解压缩得到的解压缩数据中获取以偏移地址\n32作为起点、长度等于病毒特征码长度10K的检测数据1,另外,本次解压缩得到的解压缩数据中也包括偏移地址58,但是需要选取以偏移地址58为起点,长度等于20k的检测数据\n2.,而本次解压缩数据,偏移地址58之后的数据长度仅包括2k小于要选取的检测数据2的长度20,此时可以先取偏移地址58-60的2k的数据暂存在内存中;然后再进行第三次解压缩,第3次解压缩也可以得到30k的数据,对应的偏移地址为61-90,此时可以继续获取偏移地址为61到(58+20=78)的18K的数据。此时即对应地需要从起始偏移地址58到结束偏移地址之间的所有偏移地址对应的两个解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据;其中起始偏移地址为病毒特征库中的病毒样本中的偏移地址\n58,结束偏移地址78为病毒特征库中的病毒样本中的偏移地址58加病毒特征码长度20的偏移地址。上述是以从起始偏移地址到结束偏移地址之间的所有偏移地址对应的两个解压缩数据中获取检测数据为例,实际应用中,当病毒特征码的长度足够长的时候,也可以从更多个解压缩数据中获取检测数据。\n[0065] 采用上述方式,可以从解压缩数据中获取以偏移地址32为起点长度为10k的检测数据1,并从两个连续的解压缩数据中获取以偏移地址58为起点长度为20k的检测数据2。\n并分别将检测数据1和病毒特征码A,检测数据2和病毒特征码B进行比对,同理当检测数据1和病毒特征码A一致,且检测数据2和病毒特征码B一致,确定解压缩数据中包括病毒样本,确定应用程序安装包为病毒文件或者流氓软件。否则当检测数据1和病毒特征码A不一致或者检测数据2和病毒特征码B不一致,确定解压缩数据中未包括病毒样本,确定应用程序安装包不是病毒文件,也不是流氓软件。\n[0066] 上述实施例中是以一个病毒样本为例来说明本实施例的技术方案,实际应用中需要对应用程序安装包的每个解压缩数据和病毒特征库中的每个病毒样本进行对比,只要解压缩数据中包括一个病毒样本,该应用程序安装包即为病毒文件或者流氓程序。\n[0067] 具体地,可以重复执行上述图1所示实施例中的步骤100-102,以重复进行不大于一阈值的数据的解压缩和检测,若确定应用程序安装包为病毒文件或者流氓软件,则停止解压。该方案应用于当未对应用程序安装包解压完毕即判断出该应用程序安装包为病毒文件或者流氓软件的情况,此时可以停止后续解压,减少不必要的解压处理。\n[0068] 或者,还可以执行上述图1所示实施例中的步骤100-102,以重复进行不大于一阈值的数据的解压缩和检测,直到应用程序解压完毕。该方案应用于在重复对应用程序安装包进行解压缩和检测的过程中,均未检测确定该应用程序安装包为病毒文件或者流氓软件的情况,此时需要对应用程序安装包解压完毕,检测每一个解压得到的解压数据,以保证检测质量。\n[0069] 可选地,在上述图1所示实施例的技术方案的基础上,其中步骤100“对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据”之前,上述实施例的应用程序安装包解压过程的检测方法还包括如下步骤:\n[0070] (a)判断应用程序安装包中未解压数据的大小是否大于等于阈值;若应用程序安装包中的未解压数据的大小大于等于阈值,执行步骤(b);进一步可选地,若应用程序安装包中的未解压数据的大小小于所述阈值,执行步骤(c);\n[0071] (b)从应用程序安装包中的未解压数据中读取大小等于阈值的数据;进一步可选地,执行步骤(d);\n[0072] (c)读取应用程序安装包中的未解压数据;进一步可选地,执行步骤(e);\n[0073] (d)对应用程序安装包中大小等于阈值的数据进行解压缩。\n[0074] 该步骤(d)可以看作是上述实施例中的步骤100“对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据”的一种具体实现方式。\n[0075] (e)对应用程序安装包中大小小于指定大小的未解压数据进行解压缩。\n[0076] 该步骤(e)也可以看作是上述实施例中的步骤100“对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据”的另一种具体实现方式。\n[0077] 上述实施例的应用程序安装包解压过程的检测方法,与现有技术相比,上述实施例的技术方案中,通过对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据,与现有技术中通过获取应用程序的安装包解压缩后得到的完整的可执行文件,并对完整的可执行文件进行反编译提取应用程序的安装包的特征信息相比,可以有效地节省内存;而且上述实施例的技术方案,仅需要并根据病毒特征库中的病毒样本对解压缩数据进行检测;并确定应用程序安装包为病毒文件或者流氓软件,从而可以有效地缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。\n[0078] 实施例二\n[0079] 图2为本发明实施例二提供的应用程序安装包解压过程的检测方法的流程图。如图2所示,本实施例的应用程序安装包解压过程的检测方法在上述实施例的基础上,结合其应用场景,进一步详细地介绍本发明的技术方案,同理,本实施例的应用程序安装包解压过程的检测方法的执行主体仍然为一应用程序安装包解压过程的检测装置。如图2所示,本实施例的应用程序安装包解压过程的检测方法,具体可以包括如下步骤:\n[0080] 200、判断应用程序安装包中未解压数据的大小是否大于等于一阈值;若大于等于,执行步骤201,否则若小于,执行步骤203;\n[0081] 其中阈值为预设大小,为了减少内存占用,阈值可以设置的较小,这样应用程序安装包通常情况下应该大于该阈值。此时可以不执行该步骤200,可以直接执行步骤201。但是为了防止也有较小的应用程序安装包漏掉检测,优选地从步骤200开始。\n[0082] 201、从应用程序安装包的未解压数据中读取大小等于阈值的数据至内存;执行步骤202;\n[0083] 202、在内存中对应用程序安装包中大小等于阈值的数据进行解压缩,得到解压缩数据;执行步骤205;\n[0084] 203、读取应用程序安装包中的未解压数据至内存;执行步骤204;\n[0085] 204、在内存中对应用程序安装包中大小小于阈值的未解压数据进行解压缩,得到解压缩数据;执行步骤205;\n[0086] 205、判断解压缩数据中是否包括病毒样本中以偏移地址为起点,长度等于病毒特征码长度的检测数据,若包括,执行步骤206,若未包括,执行步骤208;\n[0087] 206、从解压缩数据中获取以偏移地址为起点,长度等于病毒特征码长度的检测数据,执行步骤207;\n[0088] 207、比对检测数据与病毒特征库的病毒样本中的病毒特征码是否一致,并记录比对结果;执行步骤208;\n[0089] 208、判断应用程序安装包是否解压缩完毕,当解压缩完毕,执行步骤209;否则当未解压缩完毕,执行步骤200;\n[0090] 209、判断应用程序安装包的所有解压缩数据中是否包括一病毒样本,当包括时,执行步骤210;否则当未包括时,执行步骤211;\n[0091] 具体地判断应用程序安装包的所有解压缩数据中是否包括一病毒样本,具体可以根据207中每一次记录的比对结果,当所有压缩数据中包括某一病毒样本所包括的所有病毒特征码时,确定应用程序安装包的各解压缩数据中包括该病毒样本,否则当所有压缩数据中未包括某一病毒样本所包括的所有病毒特征码时,确定应用程序安装包的各解压缩数据中未包括该病毒样本。\n[0092] 210、确定该应用程序安装包为病毒文件或者流氓软件。\n[0093] 211、确定该应用程序安装包不是病毒文件,也不是流氓软件。\n[0094] 可选地,在步骤205判断解压缩数据中是否包括病毒样本中以偏移地址为起点,长度等于病毒特征码长度的检测数据之后,若未包括,还可以进一步判断当前的该解压缩数据中是否包括病毒样本中以偏移地址为起点,长度小于病毒特征码长度的检测数据。由于解压缩数据时按照阈值来解压缩的,所以可能造成要获取的检测数据分成了两段,前半部分在当前的解压缩数据中,后半部分在紧接着的另一段还未解压的解压缩数据中,此时可以先从解压缩数据中获取检测数据的前半部分检测数据,并根据前半部分检测数据长度、以及病毒样本中的偏移地址和对应的病毒特征码的长度,计算后半部分检测数据的起始偏移地址以及后半部分检测数据的长度。然后继续按照阈值对应用程序安装包进行解压缩,并根据计算得到的后半部分检测数据的起始偏移地址以及后半部分检测数据的长度,获取后半部分检测数据。然后将获取的前半部分检测数据和后半部分检测数据合并得到整体的检测数据;并按照207进行比对,在此不再赘述。需要说明的是,当病毒特征码的长度足够长的时候,还有可能需要从连续的多个解压缩数据中获取完整的检测数据,在此不再一一举例。\n[0095] 本实施例的应用程序安装包解压过程的检测方法,与现有技术相比,上述实施例的技术方案中,通过对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据,与现有技术中通过获取应用程序的安装包解压缩后得到的完整的可执行文件,并对完整的可执行文件进行反编译提取应用程序的安装包的特征信息相比,可以有效地节省内存;而且上述实施例的技术方案,仅需要并根据病毒特征库中的病毒样本对解压缩数据进行检测;并确定应用程序安装包为病毒文件或者流氓软件,从而可以有效地缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。\n[0096] 实施例三\n[0097] 图3为本发明实施例三提供的应用程序安装包解压过程的检测装置的结构示意图。如图3所示,本实施例的应用程序安装包解压过程的检测装置,具体可以包括:解压缩模块10、检测模块11和确定模块12。\n[0098] 其中解压缩模块10用于对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;检测模块11与解压缩模块10连接,检测模块11用于根据病毒特征库中的病毒样本对解压缩模块10得到的解压缩数据进行检测;确定模块12与检测模块11连接,确定模12块用于当检测模块11检测到解压缩数据中包括病毒样本时,确定应用程序安装包为病毒文件或者流氓软件。\n[0099] 本实施例的应用程序安装包解压过程的检测装置,通过采用上述模块实现应用程序安装包解压过程的检测与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。\n[0100] 本实施例的应用程序安装包解压过程的检测装置,通过采用上述模块对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据;并根据病毒特征库中的病毒样本对所述解压缩数据进行检测;当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件。与现有技术相比,本实施例的技术方案中,通过对应用程序安装包中不大于一阈值的数据进行解压缩,获取到解压缩数据,与现有技术中通过获取应用程序的安装包解压缩后得到的完整的可执行文件,并对完整的可执行文件进行反编译提取应用程序的安装包的特征信息相比,可以有效地节省内存;而且本实施例的技术方案,仅需要并根据病毒特征库中的病毒样本对解压缩数据进行检测;并确定应用程序安装包为病毒文件或者流氓软件,从而可以有效地缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。\n[0101] 实施例四\n[0102] 图4为本发明实施例四提供的应用程序安装包解压过程的检测装置的结构示意图。如图4所示,本实施例的应用程序安装包解压过程的检测装置,在上述图3所示实施例的基础上,还可以包括如下技术方案。\n[0103] 本实施例的应用程序安装包解压过程的检测装置中病毒样本包括偏移地址和病毒特征码。\n[0104] 可选地,本实施例的应用程序安装包解压过程的检测装置中检测模块11具体可以包括获取单元111、比对单元112和确定单元113。\n[0105] 其中获取单元111与解压缩模块10连接,用于从解压缩模块10解压缩得到的解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据;比对单元\n112与获取单元111连接,比对单元112用于比对获取单元111获取的检测数据与病毒特征码;确定单元113与比对单元112连接,确定单元113用于当比对单元112比对得到检测数据与病毒特征码一致,确定解压缩数据中包括所述病毒样本;否则当比对单元112比对得到检测数据与所述病毒特征码不一致,确定解压缩数据中未包括病毒样本。确定模块12具体与确定单元113连接,确定模12块用于当确定单元113确定解压缩数据中包括病毒样本时,确定应用程序安装包为病毒文件或者流氓软件。\n[0106] 进一步可选地,本实施例的应用程序安装包解压过程的检测装置中还包括判断模块13。\n[0107] 判断模块13与解压缩模块10连接,判断模块13用于在获取单元111从解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据之前,判断解压缩模块10得到的解压缩数据中以偏移地址作为起点之后的数据的长度是否大于等于病毒特征码长度;确定模块12还与判断模块13连接,确定模块12还用于根据判断模块13的判断结果,确定解压缩数据中以偏移地址作为起点之后的数据的长度大于等于病毒特征码长度。\n获取单元111还与确定模块12连接,获取单元111用于在确定模块12确定解压缩数据中以偏移地址作为起点之后的数据的长度大于等于病毒特征码长度之后,从解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据。\n[0108] 进一步可选地,本实施例的应用程序安装包解压过程的检测装置中获取单元111还与判断模块13连接,获取单元111还用于当判断模块13判断出解压缩数据中以偏移地址作为起点之后的数据的长度小于病毒特征码长度时,从起始偏移地址到结束偏移地址之间的所有偏移地址对应的至少两个解压缩数据中获取以偏移地址作为起点、长度等于病毒特征码长度的检测数据;其中起始偏移地址为偏移地址,结束偏移地址为偏移地址加病毒特征码长度的偏移地址。\n[0109] 进一步可选地,本实施例的应用程序安装包解压过程的检测装置中,解压缩模块\n10和检测模块11还分别用于重复进行不大于一阈值的数据的解压缩和检测,若确定模块\n12确定应用程序安装包为病毒文件或者流氓软件,则解压缩模块10停止解压。\n[0110] 进一步可选地,本实施例的应用程序安装包解压过程的检测装置中,解压缩模块\n10和检测模块11还分别用于重复进行不大于一阈值的数据的解压缩和检测,直到应用程序解压完毕。\n[0111] 例如,具体地,本实施例的应用程序安装包解压过程的检测装置中还可以包括读取模块14。\n[0112] 其中判断模块13还用于在解压缩模块10对应用程序安装包中不大于阈值的数据进行解压缩之前,判断应用程序安装包中未解压数据的大小是否大于等于阈值;读取模块14与判断模块13连接,读取模块14用于若判断模块13确定应用程序安装包中的未解压数据的大小大于等于阈值,从应用程序安装包中的未解压数据中读取大小等于阈值的数据;解压缩模块10与读取模块14连接,解压缩模块10具体用于对读取模块14读取的应用程序安装包中大小等于阈值的数据进行解压缩,获取到解压缩数据。\n[0113] 进一步可选地,在上述技术方案的基础上,本实施例的应用程序安装包解压过程的检测装置读取模块14还用于若判断模块13确定应用程序安装包中的未解压数据的大小小于阈值,读取应用程序安装包中的未解压数据;解压缩模块10具体用于对读取模块14读取的应用程序安装包中大小小于阈值的未解压数据进行解压缩,获取到解压缩数据。\n[0114] 图4所示实施例的应用程序安装包解压过程的检测装置,以包括上述所有可选技术方案为例描述本发明的技术方案,实际应用中,上述所有可选技术方案可以采用任何可结合的方式构成本发明实施例的可选技术方案,在此不再一一举例。\n[0115] 本实施例的应用程序安装包解压过程的检测装置,通过采用上述模块实现应用程序安装包解压过程的检测与上述相关方法实施例的实现相同,详细可以参考上述相关方法实施例的记载,在此不再赘述。\n[0116] 本实施例的应用程序安装包解压过程的检测装置,通过采用上述模块的技术方案,与现有技术中通过获取应用程序的安装包解压缩后得到的完整的可执行文件,并对完整的可执行文件进行反编译提取应用程序的安装包的特征信息相比,可以有效地节省内存;而且本实施例的技术方案,仅需要并根据病毒特征库中的病毒样本对解压缩数据进行检测;并确定应用程序安装包为病毒文件或者流氓软件,从而可以有效地缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。\n[0117] 实施例五\n[0118] 图5为本发明实施例五提供的客户端设备的结构示意图。如图5所示,本实施例的客户端设备20上还设置有应用程序安装包解压过程的检测装置30。\n[0119] 具体地,本实施例的客户端设备中的应用程序安装包解压过程的检测装置30具体可以采用上述图3或者图4所示的应用程序安装包解压过程的检测装置,具体可以采用上述图1或者图2所示实施例的方法来实现。\n[0120] 可选地,本实施例的客户端设备具体可以为移动终端或者固定终端。\n[0121] 本实施例的客户端设备,通过采用上述应用程序安装包解压过程的检测装置,能够对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据;并根据病毒特征库中的病毒样本对所述解压缩数据进行检测;当所述解压缩数据中包括所述病毒样本时,确定所述应用程序安装包为病毒文件或者流氓软件。与现有技术相比,本实施例的技术方案中,通过对应用程序安装包中不大于阈值的数据进行解压缩,获取到解压缩数据,与现有技术中通过获取应用程序的安装包解压缩后得到的完整的可执行文件,并对完整的可执行文件进行反编译提取应用程序的安装包的特征信息相比,可以有效地节省内存;而且本实施例的技术方案,仅需要并根据病毒特征库中的病毒样本对解压缩数据进行检测;并确定应用程序安装包为病毒文件或者流氓软件,从而可以有效地缩短检测时间,提高确定应用程序安装包是否为病毒文件或者流氓软件的检测效率。\n[0122] 需要说明的是:上述实施例提供的应用程序安装包解压过程的检测装置在应用程序安装包检测时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序安装包解压过程的检测装置与应用程序安装包解压过程的检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。\n[0123] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。\n[0124] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。\n[0125] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2020-09-18
专利权的转移
登记生效日: 2020.08.31
专利权人由腾讯科技(深圳)有限公司变更为腾讯科技(深圳)有限公司
地址由518000 广东省深圳市福田区赛格科技园2栋东403室变更为518000 广东省深圳市福田区振兴路赛格科技园2栋东403室
专利权人变更为腾讯云计算(北京)有限责任公司
- 2015-07-29
- 2013-01-23
实质审查的生效
IPC(主分类): G06F 21/00
专利申请号: 201210250361.2
申请日: 2012.07.19
- 2012-11-28
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2012-01-04
|
2011-09-07
| | |
2
| |
2011-04-20
|
2010-11-12
| | |
3
| |
2007-08-15
|
2006-04-14
| | |
4
| |
2012-07-18
|
2011-11-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 1 | | 2014-08-26 | 2014-08-26 | | |