软件标识库的建立方法技术

技术编号:11057701 阅读:68 留言:0更新日期:2015-02-18 20:47
本申请公开了一种软件标识库的建立方法,包括:对于当前待提取标识的应用软件,根据本软件对各应用程序编程接口API的调用次数,确定该应用软件的API特征向量;根据所述应用软件的所述API特征向量以及当前软件标识库中的各类应用软件的API特征向量和类别信息,按照朴素贝叶斯分类算法,确定所述应用软件所属类别;将所述应用软件的所述API特征向量和所述类别,作为所述应用软件的标识信息添加到所述软件标识库中。采用本发明专利技术,可以对软件进行客观性标识且效率高、能满足大量应用软件的分类检测需求。

【技术实现步骤摘要】

本专利技术涉及计算机软件分类技术,特别是涉及一种。
技术介绍
随着移动互联网和智能终端的飞速发展,移动应用数量呈指数性增长。在智能终 端应用软件领域中,作为连接应用软件与用户的渠道-国内第三方应用市场已大量涌现, 并呈现井喷式增长的局面。国内第三方应用商店应用软件呈现繁多、混杂、虚假信息、同质 化甚至是剽窃的局面,移动应用的标识,分类,安全检测和反剽窃已成为迫切的需求。庞大 的移动应用软件量面临着标识分类管理的问题。 目前,对应用软件进行标识的方法可分为:基于描述信息的标识方法,基于消息摘 要第五版算法(Message-DigestAlgorithm5,MD5)的标识方法,基于AST的标识方法等。 其中,基于描述信息的标识方法,是根据应用开发者提供的应用名称、版本信息以 及应用描述信息,结合相应的人工审核机制,如运行应用、查看应用信息等手段,得到确认 及修正后的描述信息,作为应用的标识信息。此方法是目前使用最为广泛的软件标识方法, 几乎各大应用商城应用软件都是以此方法对应用进行类别及其他方面的标识。 基于MD5摘要的标识方法,是对文件进行摘要运算,取摘要值作为文件的标识信 息,这是从文件唯一性角度标识文件的常用方法,目前最常用的摘要算法就是MD5算法。对 应用软件做MD5值运算,取其MD5值作为应用软件标识信息的方法,在很多应用商店中使 用。其作为应用软件的唯一标识,在一定程度上解决了应用商店应用去重复、查找、存储等 方面的问题。 基于AST的标识方法,在软件分析领域,特别是静态分析方法中,最常用的方式就 是反编译二进制代码或字节码,得到类似于源码的中间代码;根据中间代码,进行词法语法 分析,得到抽象语法树,作为软件的标识信息。在软件恶意代码分析、软件同源分析中,以抽 象语法树作为软件标识信息进行进一步分析的方法非常常见。抽象语法树可以生成更多 的语法语义信息,供后续的分析,所以基于AST的标识方法,在软件深度分析中应用非常广 泛。 上述传统的应用软件标识方法虽然都有广泛应用,但是还是分别存在下述不足: 基于描述信息的标识方法取决于开发者提供的应用信息与应用商店审核人员的 工作结果,其过程存在过多的人为主观因素,对于开发者提供虚假恶意应用信息情况与审 核人员工作结果不正确的情况无法控制。另外,基于描述信息的标识方法,在应用提交应用 商店后,需要对其进行多方面的审核,对其标识信息进行核对;目前大多数应用商店对描述 信息核对方法为人工确认,人工参与度高,工作量大,造成效率低的后果。 基于MD5摘要的标识方法,虽然从客观上,唯一的标识了应用软件,但是此种方法 携带的信息量仅仅为应用软件文件本身,没有类别、软件语义、软件功能等方面信息,无法 满足标识需求;进而,由于改动应用软件会造成MD5值不同,所以,此方法无法面对应用软 件反剽窃等需求。 基于AST的标识方法,携带了应用软件的所有语义信息,信息量齐全;但是,AST的 生成耗费计算成本非常大,其大小往往是应用软件本身的数倍甚至数十倍大小,存储成本 巨大;进而,遍历AST所需要的计算成本更大,所以,此方法的代价较大。 由此可见,上述传统的软件标识方法存在客观正确性不足、效率低、信息量低或者 运算复杂度高、运算开销大等问题。因此,无法满足现有大量应用软件的分类检测需求。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种,该方法可以 对软件进行客观性标识且效率高、能满足大量应用软件的分类检测需求。 为了达到上述目的,本专利技术提出的技术方案为: 一种,包括: 对于当前待提取标识的应用软件,根据本软件对各应用程序编程接口API的调用 次数,确定该应用软件的API特征向量; 根据所述应用软件的所述API特征向量以及当前软件标识库中的各类应用软件 的API特征向量和类别信息,按照朴素贝叶斯分类算法,确定所述应用软件所属类别; 将所述应用软件的所述API特征向量和所述类别,作为所述应用软件的标识信息 添加到所述软件标识库中。 综上所述,本专利技术提出的,基于能客户反应软件语义信息 的API调用信息,按照朴素贝叶斯分类算法,对软件进行标识、分类、管理。如此,可以实现 对软件的客观性标识,并且效率高,从而能满足大量应用软件的分类检测需求。 【附图说明】 图1为本专利技术实施例一的流程示意图。 【具体实施方式】 为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对 本专利技术作进一步地详细描述。 本专利技术的核心思想是:基于软件对API的调用信息,生成相应的API特征向量,根 据该API特征向量,按照朴素贝叶斯分类算法,确定软件所属类别,如此,基于API信息对应 用软件进行标识和分类,一方面可以确保标识的客观性,另一方面,API特征向量的构建和 分析易于实现,效率高,因此,能满足大量应用软件的分类检测需求。 图1为本专利技术实施例一的流程示意图,如图1所示,该实施例主要包括: 步骤101、对于当前待提取标识的应用软件,根据本软件对各应用程序编程接口 API的调用次数,确定该应用软件的API特征向量。 较佳地,本步骤可以采用下述方法确定该应用软件的API特征向量: 步骤xl、对所述应用软件进行反编译,生成反编译代码。 具体地,可以采用现有的反编译方法实现本步骤,在此不再赘述。 步骤x2、根据所述反编译代码,确定该应用软件所调用的API集合APIi = {APIn,...,APIni,...,APInJ,以及API集合中每个API的调用频率,其中,N为所述应用软 件所调用的API数量;APIni为所述应用软件所调用的第n个API,n= {1,2, ...,N}。 本步骤的具体实现为本领域技术人员所掌握,在此不再赘述。 步骤x3、根据所述调用频率,生成所述应用软件的API特征向量Ai = {An,. . .,Ani,. . .,AnJ,其中,Ani表示APIni被所述应用软件调用的频率。 步骤102、根据所述应用软件的所述API特征向量以及当前软件标识库中的各类 应用软件的API特征向量和类别信息,按照朴素贝叶斯分类算法,确定所述应用软件所属 类别。 本步骤用于基于API特征向量,对软件进行分类。这里,由于API特征向量是能准 确的体现出软件的语义特征,不需要人工参与,因此,可以实现自动化的机器分类,从而可 以快速高效地得到分类结果,能够有效的解决应用开发者提供虚假应用描述信息问题,并 且能够起到监督修正人工审核结果的功能。 具体地,本步骤可以采用下述方法实现: 按照朴素贝叶斯分类算法,计算本文档来自技高网
...

【技术保护点】
一种软件标识库的建立方法,其特征在于,包括:对于当前待提取标识的应用软件,根据本软件对各应用程序编程接口API的调用次数,确定该应用软件的API特征向量;根据所述应用软件的所述API特征向量以及当前软件标识库中的各类应用软件的API特征向量和类别信息,按照朴素贝叶斯分类算法,确定所述应用软件所属类别;将所述应用软件的所述API特征向量和所述类别,作为所述应用软件的标识信息添加到所述软件标识库中。

【技术特征摘要】
1. 一种软件标识库的建立方法,其特征在于,包括: 对于当前待提取标识的应用软件,根据本软件对各应用程序编程接口 API的调用次 数,确定该应用软件的API特征向量; 根据所述应用软件的所述API特征向量以及当前软件标识库中的各类应用软件的API 特征向量和类别信息,按照朴素贝叶斯分类算法,确定所述应用软件所属类别; 将所述应用软件的所述API特征向量和所述类别,作为所述应用软件的标识信息添加 到所述软件标识库中。2. 根据权利要求1所述的方法,其特征在于,所述确定该应用软件的API特征向量包 括: 对所述应用软件进行反编译,生成反编译代码; 根据所述反编译代码,确定该应用软件所调用的API集合APIi = {APIn,...,APIni, ...,APInJ,以及API集合中每个API的调用频率,其中,N为所述应用软 件所调用的API数量;APIni为所述应用软件所调用的第n个API,n = {1,2, .....

【专利技术属性】
技术研发人员:董枫郭燕慧李承泽张程鹏胡阳雨
申请(专利权)人:北京邮电大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1