软件识别方法及装置.pdf

上传人:1*** 文档编号:4055487 上传时间:2018-08-13 格式:PDF 页数:16 大小:929.95KB
返回 下载 相关 举报
摘要
申请专利号:

CN201310454828.X

申请日:

2013.09.29

公开号:

CN104517053A

公开日:

2015.04.15

当前法律状态:

实审

有效性:

审中

法律详情:

著录事项变更IPC(主分类):G06F 21/56变更事项:申请人变更前:北京金山网络科技有限公司变更后:北京猎豹网络科技有限公司变更事项:地址变更前:100041 北京市石景山区八大处高科技园区西井路3号3号楼1592A房间变更后:100041 北京市石景山区实兴大街30号院3号楼2层A-0070号变更事项:申请人变更前:贝壳网际(北京)安全技术有限公司变更后:北京猎豹移动科技有限公司|||实质审查的生效IPC(主分类):G06F 21/56申请日:20130929|||公开

IPC分类号:

G06F21/56(2013.01)I; G06F21/00(2013.01)I

主分类号:

G06F21/56

申请人:

北京金山网络科技有限公司; 贝壳网际(北京)安全技术有限公司

发明人:

王鑫; 姚辉; 刘桂峰

地址:

100041北京市石景山区八大处高科技园区西井路3号3号楼1592A房间

优先权:

专利代理机构:

北京柏杉松知识产权代理事务所(普通合伙)11413

代理人:

项京; 马敬

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种软件识别方法及装置。该软件识别方法包括:将待识别软件的可执行文件进行反汇编处理;去除反汇编处理后的可执行文件中的属于库函数的代码;从剩余代码中提取待识别字符串;从待识别字符串中,确定与第一字符串库所存储字符串匹配的待识别字符串的第一数量,以及与第二字符串库所存储字符串匹配的待识别字符串的第二数量;第一字符串库存储有从恶意软件所对应的、属于库函数的代码以外的剩余代码中提取的字符串,第二字符串库存储有从正常软件所对应的、属于库函数的代码以外的剩余代码中提取的字符串;根据第一数量与第二数量的比值,确定待识别软件的识别结果。可见,通过利用本方案,提高了利用字符串识别软件的准确性。

权利要求书

权利要求书
1.  一种软件识别方法,其特征在于,包括:
将待识别软件的可执行文件进行反汇编处理;
去除反汇编处理后的可执行文件中的属于库函数的代码;
从剩余代码中提取待识别字符串;
从所述待识别字符串中,确定与第一字符串库所存储字符串匹配的待 识别字符串的第一数量,以及与第二字符串库所存储字符串匹配的待识别 字符串的第二数量;其中,所述第一字符串库存储有从恶意软件所对应的、 属于库函数的代码以外的剩余代码中提取的字符串,所述第二字符串库存 储有从正常软件所对应的、属于库函数的代码以外的剩余代码中提取的字 符串;
根据所述第一数量与所述第二数量的比值,确定所述待识别软件的识 别结果。

2.  根据权利要求1所述的方法,其特征在于,从剩余代码中提取待识 别字符串,包括:
确定所述剩余代码中的全局地址;
从所确定出的全局地址中提取待识别字符串。

3.  根据权利要求1所述的方法,其特征在于,去除反汇编处理后的可 执行文件中的属于库函数的代码,包括:
构建经过反汇编处理后的可执行文件的函数块,并存储到第三函数块 集合中;
确定所述第三函数块集合中属于库函数的函数块,并去除所确定出的 属于库函数的函数块;
相应的,从剩余代码中提取待识别字符串,包括:
从去除属于库函数的函数块的所述第三函数块集合中的剩余的函数块 中提取待识别字符串。

4.  根据权利要求4所述的方法,其特征在于,通过代码分段匹配的方 式,确定所述第三函数块集合中属于库函数的函数块。

5.  根据权利要求1-4任意一项所述的方法,其特征在于,所述第一字 符串库和第二字符串库的构建过程包括:
分别对第三数量的恶意软件所对应的第一可执行文件进行反汇编处 理,并分别对第四数量的正常软件所对应的第一可执行文件进行反汇编处 理;
构建经过反汇编处理后的第一可执行文件的函数块,并存储到第一函 数块集合,构建经过反汇编处理后的第二可执行文件的函数块,并存储到 第二函数块集合中;
确定所述第一函数块集合和所述第二函数块集合中的属于库函数的函 数块,并去除所确定出的属于库函数的函数块;
从所述第一函数块集合所剩余的函数块中提取字符串并构建第一字符 串库;
从所述第二函数块集合所剩余的函数块中提取字符串并构建第二字符 串库。

6.  根据权利要求5所述的方法,其特征在于,在构建第一字符串库和 第二字符串库后,所述方法还包括:
确定所述第一字符串库和第二字符串库中共同存在的字符串;
将所确定出的共同存在的字符串从第一字符串库和第二字符串库中去 除。

7.  根据权利要求1-4任意一项所述的方法,其特征在于,还包括:
显示所述待识别软件的识别结果。

8.  根据权利要求1-4任意一项所述的方法,其特征在于,所述识别结 果,包括:
正常软件、恶意软件、偏正常软件或偏恶意软件。

9.  一种软件识别装置,其特征在于,包括:
反汇编模块,用于将待识别软件的可执行文件进行反汇编处理;
库函数代码去除模块,用于去除反汇编处理后的可执行文件中的属于 库函数的代码;
字符串提取模块,用于从剩余代码中提取待识别字符串;
数量确定模块,用于从所述待识别字符串中,确定与第一字符串库所 存储字符串匹配的待识别字符串的第一数量,以及与第二字符串库所存储 字符串匹配的待识别字符串的第二数量;
结果确定模块,用于根据所述第一数量与所述第二数量的比值,确定 所述待识别软件的识别结果;
字符串库构建模块,用于构建所述第一字符串库和所述第二字符串库, 其中,其中,所述第一字符串库存储有从恶意软件所对应的、属于库函数 的代码以外的剩余代码中提取的字符串,所述第二字符串库存储有从正常 软件所对应的、属于库函数的代码以外的剩余代码中提取的字符串。

10.  根据权利要求9所述的装置,其特征在于,所述字符串提取模块, 包括:
全局地址确定单元,用于确定所述剩余代码中的全局地址;
第一字符串提取单元,用于从所确定出的全局地址中提取待识别字符 串。

11.  根据权利要求9所述的装置,其特征在于,所述库函数代码去除模 块,包括:
函数块构建单元,用于构建经过反汇编处理后的可执行文件的函数块, 并存储到第三函数块集合中;
库函数块确定单元,用于确定所述第三函数块集合中属于库函数的函 数块;
第一库函数块去除单元,用于去除所确定出的属于库函数的函数块;
所述字符串提取模块,包括:
第二字符串提取单元,用于从去除属于库函数的函数块的所述第三函 数块集合中的剩余的函数块中提取待识别字符串。

12.  根据权利要求11所述的装置,其特征在于,所述库函数块确定单 元,用于通过代码分段匹配的方式,确定所述第三函数块集合中属于库函 数的函数块。

13.  根据权利要求9-11任意一项所述的装置,其特征在于,所述字符 串库构建模块,包括:
反汇编单元,用于分别对第三数量的恶意软件所对应的第一可执行文 件进行反汇编处理,并分别对第四数量的正常软件所对应的第一可执行文 件进行反汇编处理;
第二函数块构建单元,用于构建经过反汇编处理后的第一可执行文件 的函数块,并存储到第一函数块集合,构建经过反汇编处理后的第二可执 行文件的函数块,并存储到第二函数块集合中;
第二库函数块去除单元,用于确定所述第一函数块集合和所述第二函 数块集合中的属于库函数的函数块,并去除所确定出的属于库函数的函数 块;
第一字符串库构建单元,用于从所述第一函数块集合所剩余的函数块 中提取字符串并构建第一字符串库;
第二字符串库构建单元,用于从所述第二函数块集合所剩余的函数块 中提取字符串并构建第二字符串库。

14.  根据权利要求13所述的装置,其特征在于,所述字符串库构建模 块,还包括:
共同字符串确定单元,用于确定所述第一字符串库和第二字符串库中 共同存在的字符串;
共同字符串删除单元,用于将所确定出的共同存在的字符串从第一字 符串库和第二字符串库中去除。

15.  根据权利要求9-11任意一项所述的装置,其特征在于,还包括: 识别结果显示模块,用于显示所述待识别软件的识别结果。

说明书

说明书软件识别方法及装置
技术领域
本发明涉及软件识别领域,特别涉及一种软件识别方法及装置。
背景技术
由于恶意软件影响电子设备的运行,因此,用于识别正常软件和恶意 软件的软件识别方法一直是备受关注的。而由于字符串是软件代码中的有 效素材,因此,可以基于字符串进行软件识别。其中,字符串可以为数字、 字母、下划线、汉字等元素构成的一串字符。
现有技术中,依据字符串识别软件的方式通常为:将待识别软件的可 执行文件反汇编处理,从反汇编处理后的可执行文件的全文代码中提取字 符串,并作为待识别字符串;将待识别字符串分别与预先构建的存储有从 恶意软件对应全文代码中所提取的字符串的恶意字符串库和存储有从正常 软件所对应全文代码中所提取的字符串的正常字符串库进行匹配,并根据 属于恶意字符串库中的待识别字符串的数量与属于正常字符串库中的待识 别字符串的数量的比值,确定该待识别软件的识别结果,以此完成了对待 识别软件的识别。
但是,由于恶意软件编造者编写代码时,通常利用库函数代码和用户 自行编写的函数代码,而形成恶意软件的关键在于用户自行编写的函数代 码,因此,现有基于字符串的软件识别过程中,全文代码的字符串涵盖了 非恶意的字符串,而非恶意的字符串无疑将影响到匹配比值,最终导致软 件识别的准确性较低。
可见,如何提高利用字符串识别软件的准确性是一个亟待解决的问题。
发明内容
基于上述问题,本发明实施例公开了一种软件识别方法及装置,以提 高利用字符串识别软件的准确性。技术方案如下:
第一方面,本发明实施例提供了一种软件识别方法,包括:
将待识别软件的可执行文件进行反汇编处理;
去除反汇编处理后的可执行文件中的属于库函数的代码;
从剩余代码中提取待识别字符串;
从所述待识别字符串中,确定与第一字符串库所存储字符串匹配的待 识别字符串的第一数量,以及与第二字符串库所存储字符串匹配的待识别 字符串的第二数量;其中,所述第一字符串库存储有从恶意软件所对应的、 属于库函数的代码以外的剩余代码中提取的字符串,所述第二字符串库存 储有从正常软件所对应的、属于库函数的代码以外的剩余代码中提取的字 符串;
根据所述第一数量与所述第二数量的比值,确定所述待识别软件的识 别结果。
优选的,从剩余代码中提取待识别字符串,包括:
确定所述剩余代码中的全局地址;
从所确定出的全局地址中提取待识别字符串。
优选的,去除反汇编处理后的可执行文件中的属于库函数的代码,包 括:
构建经过反汇编处理后的可执行文件的函数块,并存储到第三函数块 集合中;
确定所述第三函数块集合中属于库函数的函数块,并去除所确定出的 属于库函数的函数块;
相应的,从剩余代码中提取待识别字符串,包括:
从去除属于库函数的函数块的所述第三函数块集合中的剩余的函数块 中提取待识别字符串。
优选的,通过代码分段匹配的方式,确定所述第三函数块集合中属于 库函数的函数块。
优选的,所述第一字符串库和第二字符串库的构建过程包括:
分别对第三数量的恶意软件所对应的第一可执行文件进行反汇编处 理,并分别对第四数量的正常软件所对应的第一可执行文件进行反汇编处 理;
构建经过反汇编处理后的第一可执行文件的函数块,并存储到第一函 数块集合,构建经过反汇编处理后的第二可执行文件的函数块,并存储到 第二函数块集合中;
确定所述第一函数块集合和所述第二函数块集合中的属于库函数的函 数块,并去除所确定出的属于库函数的函数块;
从所述第一函数块集合所剩余的函数块中提取字符串并构建第一字符 串库;
从所述第二函数块集合所剩余的函数块中提取字符串并构建第二字符 串库。
优选的,在构建第一字符串库和第二字符串库后,所述方法还包括:
确定所述第一字符串库和第二字符串库中共同存在的字符串;
将所确定出的共同存在的字符串从第一字符串库和第二字符串库中去 除。
优选的,所述软件识别方法还包括:
显示所述待识别软件的识别结果。
优选的,所述识别结果,包括:
正常软件、恶意软件、偏正常软件或偏恶意软件。
第二方面,本发明实施例提供了一种软件识别装置,包括:
反汇编模块,用于将待识别软件的可执行文件进行反汇编处理;
库函数代码去除模块,用于去除反汇编处理后的可执行文件中的属于 库函数的代码;
字符串提取模块,用于从剩余代码中提取待识别字符串;
数量确定模块,用于从所述待识别字符串中,确定与第一字符串库所 存储字符串匹配的待识别字符串的第一数量,以及与第二字符串库所存储 字符串匹配的待识别字符串的第二数量;
结果确定模块,用于根据所述第一数量与所述第二数量的比值,确定 所述待识别软件的识别结果;
字符串库构建模块,用于构建所述第一字符串库和所述第二字符串库, 其中,其中,所述第一字符串库存储有从恶意软件所对应的、属于库函数 的代码以外的剩余代码中提取的字符串,所述第二字符串库存储有从正常 软件所对应的、属于库函数的代码以外的剩余代码中提取的字符串。
优选的,所述字符串提取模块,包括:
全局地址确定单元,用于确定所述剩余代码中的全局地址;
第一字符串提取单元,用于从所确定出的全局地址中提取待识别字符 串。
优选的,所述库函数代码去除模块,包括:
函数块构建单元,用于构建经过反汇编处理后的可执行文件的函数块, 并存储到第三函数块集合中;
库函数块确定单元,用于确定所述第三函数块集合中属于库函数的函 数块;
第一库函数块去除单元,用于去除所确定出的属于库函数的函数块;
所述字符串提取模块,包括:
第二字符串提取单元,用于从去除属于库函数的函数块的所述第三函 数块集合中的剩余的函数块中提取待识别字符串。
优选的,所述库函数块确定单元,用于通过代码分段匹配的方式,确 定所述第三函数块集合中属于库函数的函数块。
优选的,所述字符串库构建模块,包括:
反汇编单元,用于分别对第三数量的恶意软件所对应的第一可执行文 件进行反汇编处理,并分别对第四数量的正常软件所对应的第一可执行文 件进行反汇编处理;
第二函数块构建单元,用于构建经过反汇编处理后的第一可执行文件 的函数块,并存储到第一函数块集合,构建经过反汇编处理后的第二可执 行文件的函数块,并存储到第二函数块集合中;
第二库函数块去除单元,用于确定所述第一函数块集合和所述第二函 数块集合中的属于库函数的函数块,并去除所确定出的属于库函数的函数 块;
第一字符串库构建单元,用于从所述第一函数块集合所剩余的函数块 中提取字符串并构建第一字符串库;
第二字符串库构建单元,用于从所述第二函数块集合所剩余的函数块 中提取字符串并构建第二字符串库。
优选的,所述字符串库构建模块,还包括:
共同字符串确定单元,用于确定所述第一字符串库和第二字符串库中 共同存在的字符串;
共同字符串删除单元,用于将所确定出的共同存在的字符串从第一字 符串库和第二字符串库中去除。
优选的,所述软件识别装置还包括:
识别结果显示模块,用于显示所述待识别软件的识别结果
与现有技术相比,本方案中,预先构建有第一字符串库和第二字符串 库,其中,该第一字符串库存储有从恶意软件所对应的、属于库函数的代 码以外的剩余代码中提取的字符串,该第二字符串库存储有从正常软件所 对应的、属于库函数的代码以外的剩余代码中提取的字符串;在软件识别 过程中,从去除属于库函数的代码的经过反汇编处理后的可执行文件的剩 余代码中提取字符串作为待识别字符串,并将待识别字符串分别与第一字 符串库所存储的字符串和第二字符串库所存储的字符串进行匹配,并根据 匹配比值确定识别结果。可见,本方案中,在字符串库构建和识别过程中, 去除了库函数的代码,从而降低了非恶意的字符串对匹配比值的影响,提 高了利用字符串识别软件的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对 实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地, 下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员 来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。
图1为本发明实施例所提供的一种软件识别方法的第一种方法流程 图;
图2为本发明实施例所提供的一种软件识别方法的第二种方法流程 图;
图3为本发明实施例所提供的一种软件识别装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没 有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的 范围。
为了提高利用字符串识别软件的准确性,本发明实施例提供了一种软 件识别方法及装置。
下面首先对本发明实施例所提供一种软件识别方法进行介绍。
需要说明的是,本发明实施例所提供的一种软件识别方法适用于电子 设备。其中,在实际应用中,该电子设备可以为:手机、平板电脑、笔记 本电脑等。
如图1所示,一种软件识别方法,可以包括:
S101,将待识别软件的可执行文件进行反汇编处理;
当需要识别软件时,在获得待识别软件的可执行文件后,可以将该待 识别的可执行文件进行反汇编处理,从而进行后续的处理。
本领域技术人员可以理解的是,编写程序时利用高级语言如C,pascal 等高级语言,然后再经过编译程序生成可以被操作系统直接执行的文件, 即可执行文件;而反汇编即是指将这些可执行文件反编译还原成汇编语言 或其他高级语言。
并且,需要说明的是,可执行文件为二进制文件,在实际应用中,可 执行文件可以为:exe格式文件、sys格式文件或com格式文件等。
S102,去除反汇编处理后的可执行文件中的属于库函数的代码;
在对该待识别软件的可执行软件进行反汇编处理后,可以去除反汇编 处理后的可执行文件中的属于库函数的代码,从而使得剩余代码中不包括 属于库函数的代码。
其中,由于库函数存储有若干个函数块,因此,可以通过构建函数块 的方式去除反汇编处理后的可执行文件中的属于库函数的代码,具体的, 去除反汇编处理后的可执行文件中的属于库函数的代码,可以包括:
构建经过反汇编处理后的可执行文件的函数块,并存储到第三函数块 集合中;
确定该第三函数块集合中属于库函数的函数块,并去除所确定出的属 于库函数的函数块。
其中,确定该第三函数块集合中属于库函数的函数块,可以包括:将 该第三函数块集合中的当前的待识别的函数块分别与库函数中的函数块进 行匹配,当与库函数的某一函数块完全匹配时,表明当前的待识别的函数 块属于库函数,完成对当前的待识别的函数块的判断,从而将下一待识别 的函数块作为当前的待识别的函数块进行处理。
更进一步的,为了提高处理速率,可以通过代码分段匹配的方式,确 定该第三函数块集合中属于库函数的函数块,具体方式为:将当前的待识 别的函数块的预设的第一段代码分别与库函数中的函数块的相应第一段代 码进行匹配,当未存在匹配的库函数时,表明当前的待识别的函数块不属 于库函数,完成对该待识别函数的判断;在当前的待识别的函数块的第一 段代码与库函数的某一函数块的第一段代码匹配时,则继续通过第二段代 码判断两者是否匹配,并在判断结果为否时,确定出当前的待识别的函数 块不属于库函数,结束匹配过程,否则,继续后续代码段的匹配;而当存 在不匹配的情况时,结束匹配,并确定出当前的待识别的函数块不属于库 函数,而如果所有代码均匹配时,表明当前的待识别的函数块属于库函数。
需要说明的是,上述的代码匹配是指代码相同;并且,上述去除反汇 编处理后的可执行文件中的属于库函数的代码的方式仅仅作为示例,并不 应该构成对本发明实施例的限定。
S103,从剩余代码中提取待识别字符串;
其中,从剩余代码中提取待识别字符串,可以包括:确定剩余代码中 的全局地址;从所确定出的全局地址中提取待识别字符串。
需要说明的是,由于除反汇编处理后的可执行文件中的属于库函数的 代码的过程可以为:构建经过反汇编处理后的可执行文件的函数块,并存 储到第三函数块集合中;确定该第三函数块集合中属于库函数的函数块, 并去除所确定出的属于库函数的函数块;因此,相应的,从剩余代码中提 取待识别字符串可以包括:从去除属于库函数的函数块的该第三函数块集 合中的剩余的函数块中提取待识别字符串。其中,可以理解的时,从剩余 的函数块中提取待识别字符串的方式为:确定剩余的函数块中的全局地址; 从所确定出的全局地址中提取待识别字符串。
S104,从该待识别字符串中,确定与第一字符串库所存储字符串匹配 的待识别字符串的第一数量,以及与第二字符串库所存储字符串匹配的待 识别字符串的第二数量;
其中,该第一字符串库存储有从恶意软件所对应的、属于库函数的代 码以外的剩余代码中提取的字符串,该第二字符串库存储有从正常软件所 对应的、属于库函数的代码以外的剩余代码中提取的字符串。
当确定出该待识别软件对应的待识别字符串后,可以确定每一待识别 字符串是与第一字符串库所存储的字符串匹配,还是与第二字符串库所存 储的字符串匹配,或者,两者均不匹配,进一步确定出属于第一字符串库 的待识别字符串的第一数量以及属于第二字符串库的待识别字符串的第二 数量,进而进行后续的处理。
具体的,如图2所示,该第一字符串库和第二字符串库的构建过程可以 包括:
S201,分别对第三数量的恶意软件所对应的第一可执行文件进行反汇 编处理;
S202,分别对第四数量的正常软件所对应的第一可执行文件进行反汇 编处理;
其中,在实际应用中,第三数量和第四数量可以相同或不同,并且, 数量越大,所构建的第一字符串库和第二字符串库的可信度越高。
S203,构建经过反汇编处理后的第一可执行文件的函数块,并存储到 第一函数块集合;
S204,构建经过反汇编处理后的第二可执行文件的函数块,并存储到 第二函数块集合中;
S205,确定该第一函数块集合和该第二函数块集合中的属于库函数的 函数块,并去除所确定出的属于库函数的函数块;
其中,确定该第一函数块集合和该第二函数块集合中的属于库函数的 函数块的方式可以与上述确定第三函数块集合中的属于库函数的函数块的 方式相同,在此不再赘述。
S206,从该第一函数块集合所剩余的函数块中提取字符串并构建第一 字符串库;
S207,从该第二函数块集合所剩余的函数块中提取字符串并构建第二 字符串库。
其中,从第一函数块集合所剩余的函数块中和第二函数块集合所剩余 的函数块中提取字符串的方式可以与上述从剩余的函数块中提取待识别字 符串的方式相同,在此不作赘述。
更进一步的,由于某些字符串共同存在于第一字符串库和第二字符串 库,导致其对识别的贡献不大,但可能影响匹配比值,最终影响识别结果 的准确性,因此,为了降低共同存在的字符串对匹配比值影响,在构建第 一字符串库和第二字符串库后,所述方法还包括:
确定该第一字符串库和第二字符串库中共同存在的字符串;
将所确定出的共同存在的字符串从第一字符串库和第二字符串库中去 除。
需要说明的是,上述构建第一字符串库和第二字符串库的过程仅仅作 为示例,并不应该构成对本发明实施例的限定。
S105,根据该第一数量与该第二数量的比值,确定该待识别软件的识 别结果。
在确定出该第一数量和第二数量后,可以根据该第一数量与该第二数 量的比值,确定该待识别软件的识别结果。
其中,该识别结果可以包括:正常软件、恶意软件、偏正常软件或偏 恶意软件;并且,可以理解的是,在不同的应用场景下,识别结果可以仅 仅包括:正常软件、恶意软件,也可以仅仅包括:偏正常软件或偏恶意软 件,这都是合理的。
其中,每一识别结果可以对应一比值区间,例如:在所确定出的比值 属于正常软件对应的比值区间时,该待识别软件的识别结果为正常软件; 在所确定出的比值属于恶意软件对应的比值区间,该待识别软件的识别结 果为恶意软件;在所确定出的比值属于偏正常软件对应的比值区间,该待 识别软件的识别结果为偏正常软件;在所确定出的比值属于偏恶意软件对 应的比值区间,该待识别软件的识别结果为偏恶意软件。可以理解的是, 在不同的应用场景下,各个识别结果所对应的比值区间可以不同。
更进一步的,在确定出该待识别软件对应的识别结果后,该软件识别 方法还可以包括:显示该待识别软件的识别结果。
更进一步的,在确定出该待识别软件的识别结果后,可以进一步进行 后续的处理,例如:当确定出该识别结果为恶意软件或偏恶意软件时,可 以为用户提供删除该待识别软件的链接,或者,向用户提供警告信息,以 警告该待识别软件被安装后可能带来的问题,当然并不局限于此;而当确 定出该待识别结果为正常软件或偏正常软件时,可以向用户展示相应的信 息,以告知用户可以放心使用该待识别软件,当然并不局限于此。
与现有技术相比,本方案中,预先构建有第一字符串库和第二字符串 库,其中,该第一字符串库存储有从恶意软件所对应的属于库函数的代码 以外的剩余代码中提取的字符串,该第二字符串库存储有从正常软件所对 应的属于库函数的代码以外剩余代码中提取的字符串;在软件识别过程中, 从去除属于库函数的代码的经过反汇编处理后的可执行文件的剩余代码中 提取字符串作为待识别字符串,并将待识别字符串分别与第一字符串库所 存储的字符串和第二字符串库所存储的字符串进行匹配,并根据匹配比值 确定识别结果。可见,本方案中,在字符串库构建和识别过程中,去除了 库函数的代码,从而降低了非恶意的字符串对匹配比值的影响,提高了利 用字符串识别软件的准确性。
需要说明的是,上述“第一函数块集合”中的“第一”,“第二函数块 集合”中的“第二”,“第三函数块集合”中的“第三”仅仅为了区分不同 的函数块集合,并不具有任何限定意义;同样的,“第一数量”中的“第一”、 “第二数量”中的“第二”、“第三数量”中的“第三”、“第四数量”中的 “第四”仅仅为了区分不同的数量,并不具有任何限定意义。
相应于上述方法实施例,本发明实施例还提供了一种软件识别装置, 如图3所示,可以包括:
反汇编模块310,用于将待识别软件的可执行文件进行反汇编处理;
库函数代码去除模块320,用于去除反汇编处理后的可执行文件中的属 于库函数的代码;
字符串提取模块330,用于从剩余代码中提取待识别字符串;
数量确定模块340,用于从所述待识别字符串中,确定与第一字符串库 所存储字符串匹配的待识别字符串的第一数量,以及与第二字符串库所存 储字符串匹配的待识别字符串的第二数量;
结果确定模块350,用于根据所述第一数量与所述第二数量的比值,确 定所述待识别软件的识别结果;
字符串库构建模块360,用于构建所述第一字符串库和所述第二字符串 库,其中,其中,所述第一字符串库存储有从恶意软件所对应的、属于库 函数的代码以外的剩余代码中提取的字符串,所述第二字符串库存储有从 正常软件所对应的、属于库函数的代码以外的剩余代码中提取的字符串。
与现有技术相比,本方案中,预先构建有第一字符串库和第二字符串 库,其中,该第一字符串库存储有从恶意软件所对应的、属于库函数的代 码以外的剩余代码中提取的字符串,该第二字符串库存储有从正常软件所 对应的、属于库函数的代码以外的剩余代码中提取的字符串;在软件识别 过程中,从去除属于库函数的代码的经过反汇编处理后的可执行文件的剩 余代码中提取字符串作为待识别字符串,并将待识别字符串分别与第一字 符串库所存储的字符串和第二字符串库所存储的字符串进行匹配,并根据 匹配比值确定识别结果。可见,本方案中,在字符串库构建和识别过程中, 去除了库函数的代码,从而降低了非恶意的字符串对匹配比值的影响,提 高了利用字符串识别软件的准确性。
其中,所述字符串提取模块330,可以包括:
全局地址确定单元,用于确定所述剩余代码中的全局地址;
第一字符串提取单元,用于从所确定出的全局地址中提取待识别字符 串。
其中,所述库函数代码去除模块320,可以包括:
函数块构建单元,用于构建经过反汇编处理后的可执行文件的函数块, 并存储到第三函数块集合中;
库函数块确定单元,用于确定所述第三函数块集合中属于库函数的函 数块;
第一库函数块去除单元,用于去除所确定出的属于库函数的函数块;
所述字符串提取模块,可以包括:
第二字符串提取单元,用于从去除属于库函数的函数块的所述第三函 数块集合中的剩余的函数块中提取待识别字符串。
其中,所述库函数块确定单元,用于通过代码分段匹配的方式,确定 所述第三函数块集合中属于库函数的函数块。
其中,所述字符串库构建模块350,可以包括:
反汇编单元,用于分别对第三数量的恶意软件所对应的第一可执行文 件进行反汇编处理,并分别对第四数量的正常软件所对应的第一可执行文 件进行反汇编处理;
第二函数块构建单元,用于构建经过反汇编处理后的第一可执行文件 的函数块,并存储到第一函数块集合,构建经过反汇编处理后的第二可执 行文件的函数块,并存储到第二函数块集合中;
第二库函数块去除单元,用于确定所述第一函数块集合和所述第二函 数块集合中的属于库函数的函数块,并去除所确定出的属于库函数的函数 块;
第一字符串库构建单元,用于从所述第一函数块集合所剩余的函数块 中提取字符串并构建第一字符串库;
第二字符串库构建单元,用于从所述第二函数块集合所剩余的函数块 中提取字符串并构建第二字符串库。
其中,所述字符串库构建模块350,还可以包括:
共同字符串确定单元,用于确定所述第一字符串库和第二字符串库中 共同存在的字符串;
共同字符串删除单元,用于将所确定出的共同存在的字符串从第一字 符串库和第二字符串库中去除。
更进一步的,所述软件识别装置还可以包括:
识别结果显示模块,用于显示所述待识别软件的识别结果。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比 较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用 来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者 暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语 “包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得 包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还 包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或 者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……” 限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还 存在另外的相同要素。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分 步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计 算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、 光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等, 均包含在本发明的保护范围内。

软件识别方法及装置.pdf_第1页
第1页 / 共16页
软件识别方法及装置.pdf_第2页
第2页 / 共16页
软件识别方法及装置.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《软件识别方法及装置.pdf》由会员分享,可在线阅读,更多相关《软件识别方法及装置.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种软件识别方法及装置。该软件识别方法包括:将待识别软件的可执行文件进行反汇编处理;去除反汇编处理后的可执行文件中的属于库函数的代码;从剩余代码中提取待识别字符串;从待识别字符串中,确定与第一字符串库所存储字符串匹配的待识别字符串的第一数量,以及与第二字符串库所存储字符串匹配的待识别字符串的第二数量;第一字符串库存储有从恶意软件所对应的、属于库函数的代码以外的剩余代码中提取的字符。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1