本发明专利技术实施例提供一种应用程序的安全性检测方法和装置。该方法包括:从待检测的应用程序中获取程序特征,程序特征至少包括:代码结构特征和/或文件结构特征;将程序特征与标准程序特征进行匹配,根据匹配结果确定应用程序的安全性。本方案通过从待检测应用程序中获取程序特征,能够得到包括代码结构特征和/或文件结构特征在内的重要特征,并通过将程序特征与标准程序特征进行匹配,能够根据匹配成功、匹配失败、或特征重合度等匹配结果确定待检测的应用程序的安全性,通过匹配程序特征,能够检测代码是否被更改,或是否增加恶意代码,以及文件是否被替换等,因此通过代码结构特征和/或文件结构特征能够从根本上检测待检测应用程序是否为盗版。
【技术实现步骤摘要】
本专利技术实施例涉及软件安全技术,尤其涉及一种应用程序的安全性检测方法和装置。
技术介绍
以安卓(Andorid)应用程序为例,Andorid平台是目前世界上较流行的一种以Linux为基础的开放源码操作系统,主要应用于手机、平板电脑等移动终端。Android平台由操作系统、中间件、用户界面和应用软件组成,Android应用程序即指Android平台下的应用软件。Android应用程序的开放性使应用程序本身获得了快速的发展,但由于Android操作系统本身缺乏严格的审核机制和有效的应用认证机制,带来了各种隐患,其中一大隐患就是盗版应用程序的泛滥。盗版应用程序会带来各种各样的问题:大量的“去广告”版使得开发者蒙受经济损失,让正版应用程序开发者无法从开发应用中获利;更为严重的是,大量的恶意程序伪装成正版应用诱骗用户下载,并在其中植入了恶意代码,可以盗取用户的隐私信息或感染其手机,使用户遭受巨大经济损失。因此,对应用程序进行安全检测的技术应运而生。现有的应用程序的安全性检测技术,一般是根据应用程序的包名或者应用名称的完全匹配来进行检测。上述应用程序的安全性检测技术存在以下缺陷:由于盗版应用程序通过修改原始应用程序的包名,或者取一些近似的应用名称,导致盗版应用程序的检测率低。
技术实现思路
本专利技术实施例提供一种应用程序的安全性检测方法和装置,以检测应用程序的安全性,提高了盗版应用程序的检测率。第一方面,本专利技术实施例提供了一种应用程序的安全性检测方法,包括:从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特征和/或文件结构特征;将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的应用程序的安全性。第二方面,本专利技术实施例还提供了一种应用程序的安全性检测装置,包括:程序特征获取模块,用于从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特征和/或文件结构特征;程序安全性确定模块,用于将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的应用程序的安全性。本专利技术实施例提供的应用程序的安全性检测方法和装置,通过从待检测的应用程序中获取程序特征,能够得到包括代码结构特征和/或文件结构特征在内的重要特征,并通过将程序特征与标准程序特征进行匹配,能够根据匹配成功、匹配失败、或特征重合度等匹配结果确定待检测的应用程序的安全性。本方案通过匹配程序特征,能够检测代码是否被更改,或是否增加恶意代码,以及文件是否被替换等,因此通过代码结构特征和/或文件结构特征能够从根本上检测待检测应用程序是否为盗版。附图说明为了更清楚地说明本专利技术,下面将对本专利技术中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1a为本专利技术实施例一提供的一种应用程序的安全性检测方法的流程图;图1b为本专利技术实施例一的方法适用的客户端和服务器协同工作的示意图;图2a为本专利技术实施例二提供的一种应用程序的安全性检测方法的流程图;图2b为本专利技术实施例二提供的另一种应用程序的安全性检测方法的流程图;图3为本专利技术实施例三提供的一种应用程序的安全性检测方法的流程图;图4为本专利技术实施例四提供的一种应用程序的安全性检测装置的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施例中的技术方案作进一步详细描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。可以理解的是,此处所描述的具体实施例仅用于解释本专利技术,而非对本专利技术的限定,基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。实施例一请参阅图1a,为本专利技术实施例一提供的一种应用程序的安全性检测方法的流程图。本专利技术实施例的方法可以由硬件和/或软件实现的应用程序的安全检测装置来执行,该实现装置典型的是配置于能够提供应用程序的安全检测服务的服务器中。如图1a所示,该方法包括:110、从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特征和/或文件结构特征;本操作具体是获取待检测的应用程序的程序特征。具体地,可以只获取待检测的应用程序的代码结构特征,也可以只获取待检测的应用程序的文件结构特征,还可以获取待检测的应用程序的代码结构特征以及文件结构特征。以Andorid应用程序为例进行说明。在Android系统中,一个可以安装、运行的应用,需要打包成Android系统的APK(Android application package file)文件格式,即Android安装包。Android系统中检测一个应用的安全性是通过APK文件的特征进行检测的。120、将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的应用程序的安全性。本操作具体是将待检测的应用程序的程序特征与正版应用的标准程序特征进行匹配,并基于匹配结果确定待检测的应用程序的安全性。下面对代码结构特征和文件结构特征进行解释。代码结构特征和文件结构特征,即不仅体现代码和文件本身的特征,还体现代码和文件集合的结构属性,则在进行应用程序安全性检测时,能够综合考虑程序的整体属性特点。优选地,所述代码结构特征包括程序的单元属性集合。进一步地,所述单元为代码类;所述单元属性集合为所述应用程序中全部单元的属性集合或全部单元属性集合的设定子集合;所述单元属性为唯一标识所述单元的属性。具体地,所述单元为代码类时,所述代码类属性包括类名称、类代码和类代码哈希值的至少一项。其中,哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,该较小的二进制值称为哈希值。Android应用通常是用Java语言开发的,用Android开发工具编译之后形成二进制的字节码,这些字节码被打包成classes.dex文件,换言之,Android应用的代码主体为classes.dex文件所包含的Java类。通过解析classes.dex文件,反编译其字节码,就可以得到应用程序所要执行的代码。具体地,可以从待检测的应用程序中获取包含有代码主体的classes.de本文档来自技高网...
【技术保护点】
一种应用程序的安全性检测方法,其特征在于,包括:从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构特征和/或文件结构特征;将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测的应用程序的安全性。
【技术特征摘要】
1.一种应用程序的安全性检测方法,其特征在于,包括:
从待检测的应用程序中获取程序特征,所述程序特征至少包括:代码结构
特征和/或文件结构特征;
将所述程序特征与标准程序特征进行匹配,根据匹配结果确定所述待检测
的应用程序的安全性。
2.根据权利要求1所述的方法,其特征在于:所述代码结构特征或文件结
构特征包括程序的单元属性集合,则将所述程序特征与标准程序特征进行匹配,
包括:
将所述单元属性集合与标准程序中对应的单元属性集合进行匹配,将集合
中单元的重合度作为匹配结果。
3.根据权利要求2所述的方法,其特征在于:
所述单元为代码类或文件;
所述单元属性集合为所述应用程序中全部单元的属性集合或全部单元属性
集合的设定子集合;
所述单元属性为唯一标识所述单元的属性。
4.根据权利要求3所述的方法,其特征在于:
所述单元为代码类时,所述代码类属性包括类名称、类代码和类代码哈希
值的至少一项;
所述单元为文件时,所述文件属性包括文件名称和/或文件名称哈希值。
5.根据权利要求1所述的方法,其特征在于,从待检测的应用程序中获取
程序特征,包括:
从客户端接收从待检测的应用程序中获取程序特征,其中,所述程序特征
为所述客户端基于设定摘要算法计算的摘要数据;
则将所述程序特征与标准程序特征进行匹配包括:
基于所述设定摘要算法将所述程序特征进行还原,并与标准程序特征进行
匹配;或
将所述程序特征与标准程序特征进行匹配,其中,所述标准程序特征为基
于设定摘要算法计算的摘要数据。
6.根据权利要求1-5任一所述的方法,其特征在于,在从待检测的应用程
序中获取程序特征之前,还包括:
将所述待检测的应用程序的安全证书在预设正版安装证书列表中进行匹
配;
如果没有匹配到所述安全证书,则触发执行从待检测的应用程序中获取程
序特征的操作。
7.一种应用...
【专利技术属性】
技术研发人员:包沉浮,夏良钊,
申请(专利权)人:百度在线网络技术北京有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。