一种Android应用软件相似性的检测方法及装置制造方法及图纸

技术编号:11729925 阅读:180 留言:0更新日期:2015-07-15 02:33
本发明专利技术提供一种针对移动平台Android系统下应用软件相似性的检测方法及装置,属于计算机安全领域,具体涉及从应用程序权限、组件、资源及代码图四个方面对通过对正常应用软件使用重打包技术注入恶意代码或广告代码的软件进行检测的方法及装置。所述的方法包括Android应用软件解包、反编译,提取权限信息、组件信息、资源信息与代码图信息,并根据上述信息进行相似性的判定;所述的装置包括标准软件库模块、爬虫模块、信息提取模块、相似性判断模块。本发明专利技术提供的检测方法及装置,可以快速准确地检测出重打包的Android应用软件,保护Android应用软件开发者与用户的利益。

【技术实现步骤摘要】

本专利技术属于计算机安全
,具体涉及一种针对移动平台Android系统下应用软件相似性的检测方法及装置。
技术介绍
随着移动互联网的发展,Android平台的新应用也层出不穷。智能移动设备的便利性使其成为了很多人生活、工作和学习不可获取的一部分,例如:购物、导航等。但是近几年针对Android应用软件使用重打包技术来对其注入恶意代码或广告代码的行为使我们不得不更多地考虑Android应用软件的安全问题。根据《腾讯移动安全实验室2014年上半年手机安全报告》,2014年上半年,全国Android病毒感染用户数达到8923.52万,是2012年全年Android手机染毒用户的3.68倍;2014年上半年Android手机染毒用户数是2013年上半年的2.28倍,同比增长128%。而这些Android恶意软件绝大多数是通过重打包技术注入到正常应用软件中的。Android的安装时权限模型决定了程序一旦发布其权限就必然固定,可以在任何时刻进行审查,固定的权限也决定了程序的功能已经固定。在Android操作系统中,并没有传统意义上的进程,而是系统预定义的各种组件,这些组件实际上都是Android系统的回调模块。为了让系统回调这些模块,Android应用软件需要首先注册这些组件,而绝大部分都要求是显示的静态注册。Android应用软件的资源包括了字符串、图片、布局等。Android应用软件的代码布局可以使用图来表示,节点为方法与域,节点包含的属性为方法与域所属的类,边为方法与方法、方法与域的引用关系。Android平台的应用软件使用Java语言编写,但Java语言的特性导致Android应用软件容易被逆向和破解,通过ApkTool等工具可以很容易获得Android应用软件的代码与资源文件。同时,Android平台允许应用程序的开发者使用自己的证书对安装包进行签名,也允许系统从第三方应用市场中安装应用。因此,当Android应用软件被逆向后,可以修改其代码与资源等文件,重新签名生成新的安装包,发布到第三方应用市场供用户安装使用。很多恶意软件与广告软件开发者利用该方法,将正常软件中植入恶意代码或广告代码,达到更加广泛的传播并欺骗用户安装使用的目的,以获取更多利益。由于恶意代码与广告代码都是一个相对独立的模块,为保证原应用软件的正常使用,重打包过程通常不会对原应用软件做大量修改,这使得对重打包植入恶意代码或广告代码的软件进行检测成为了可能。
技术实现思路
本专利技术要解决的技术问题在于克服现有技术针对传统的以API作为关键词或对代码进行模糊哈希的方法来进行相似性检测的不足,提供一种基于权限相似性、组件相似性、资源相似性以及代码图相似性结合的Android应用软件相似性检测方法及装置,有效地检测通过重打包技术植入恶意代码或广告代码的Android应用软件,保护Android应用软件开发者与用户的利益。本专利技术具体采用如下技术方案:一种Android应用软件相似性检测方法,用于判断待检测应用软件是否由目标软件重打包而得,其流程如图1所示,包括以下步骤:步骤1.将待检测的应用软件安装包进行解包反编译,获得代码、布局与资源文件;步骤2.从解包反编译后的布局文件中提取应用程序的权限信息,并将该待检测应用软件的权限与目标软件的权限进行相似性检测;步骤3.从解包反编译后的布局文件中提取应用程序的组件信息,并将该待检测应用软件的组件与目标软件的组件进行相似性检测;步骤4.从解包反编译后的资源文件中提取应用程序的资源信息,并将该待检测应用软件的资源与目标软件的资源进行相似性检测;步骤5.从解包反编译后的代码文件中提取代码图信息,并将该待检测应用软件的代码图与目标软件的代码图进行相似性检测;步骤6.若所述待检测应用软件的权限、组件、资源及代码图均与目标软件相应的权限、组件、资源及代码图相似,则判定该待检测应用软件由所述的目标软件重打包而得。步骤1中所述的对安装包进行解包反编译,具体包括解包过程与反编译过程;Android应用程序安装包即APK格式文件,是一种ZIP格式的压缩文件;所述解包过程指从应用程序安装包文件中得到编译后的代码文件classes.dex、编译后的资源文件resources.arsc、编译后的布局文件AndroidManifest.xml;所述反编译过程指从上述已编译的文件获得相应的未编译的文件,即获得smali代码文件、各xml资源文件以及AndroidManifest.xml布局文件。步骤2中所述的提取权限信息是指从AndroidManifest.xml文件中提取出<uses-permission>节点的字符串,该字符串描述了应用软件所申请的权限,将提取的字符串构建成该待检测应用软件的权限集合;所述的权限相似性检测如图4所示,记目标应用软件的权限集合集合为P1,检测应用软件的权限集合为P2,若满足关系则判定待检测应用软件的权限与目标应用软件的权限相似。步骤3所述的提取组件信息是指从AndroidManifest.xml文件中提取<activity>、<service>、<receiver>节点的字符串,上述三个字符串分别描述了应用软件中的Activity组件、Service组件与BroadcastReceiver组件,将提取的字符串构建该待检测应用软件的组件集合;所述的组件相似性检测如图5所示,记目标应用软件的权限集合为P1,待检测应用软件的权限集合为P2,若满足关系则判定待检测应用软件的权限与目标应用软件的权限相似。步骤4所述的提取资源信息是指从各xml文件中提取出字符串、布局、图片信息,字符串信息位于strings.xml文件,布局信息位于layout目录下的各xml文件,图片信息位于drawable目录,将提取的资源信息构建该待检测应用软件的资源集合;所述的资源相似性检测如图6所示,记目标应用软件的资源集合为R1,待检测应用软件的资源集合为R2,若满足关系则判定待检测应用软件的资源与目标应用软件的资源相似。步骤5所述的提取代码图信息是指从smali代码文件中提取类、方法、域以及方法与类的包含关系、域与类的包含关系、方法与方法的引用关系、域与方法的引用关系,以方法与域作为图的两种节点,方法与域所属的类作为该节点的属性,方法与方法、方法与域的引用关系作为节点之间的边,形成一个描述了代码布局与关系有向图作为代码图;所述的代码图相似性检测如图7所示,记目标应用软件的代码图为G1,待检测本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/CN104778409.html" title="一种Android应用软件相似性的检测方法及装置原文来自X技术">Android应用软件相似性的检测方法及装置</a>

【技术保护点】
一种Android应用软件相似性的检测方法,包括以下步骤:步骤1.将待检测的应用软件安装包进行解包反编译,获得代码、布局与资源文件;步骤2.从解包反编译后的布局文件中提取应用程序的权限信息,并将该待检测应用软件的权限与目标软件的权限进行相似性检测;步骤3.从解包反编译后的布局文件中提取应用程序的组件信息,并将该待检测应用软件的组件与目标软件的组件进行相似性检测;步骤4.从解包反编译后的资源文件中提取应用程序的资源信息,并将该待检测应用软件的资源与目标软件的资源进行相似性检测;步骤5.从解包反编译后的代码文件中提取代码图信息,并将该待检测应用软件的代码图与目标软件的代码图进行相似性检测;步骤6.若所述待检测应用软件的权限、组件、资源及代码图均与目标软件相应的权限、组件、资源及代码图相似,则判定该待检测应用软件由所述的目标软件重打包而得。

【技术特征摘要】
1.一种Android应用软件相似性的检测方法,包括以下步骤:
步骤1.将待检测的应用软件安装包进行解包反编译,获得代码、布局与资源文件;
步骤2.从解包反编译后的布局文件中提取应用程序的权限信息,并将该待检测应用软件
的权限与目标软件的权限进行相似性检测;
步骤3.从解包反编译后的布局文件中提取应用程序的组件信息,并将该待检测应用软件
的组件与目标软件的组件进行相似性检测;
步骤4.从解包反编译后的资源文件中提取应用程序的资源信息,并将该待检测应用软件
的资源与目标软件的资源进行相似性检测;
步骤5.从解包反编译后的代码文件中提取代码图信息,并将该待检测应用软件的代码图
与目标软件的代码图进行相似性检测;
步骤6.若所述待检测应用软件的权限、组件、资源及代码图均与目标软件相应的权限、
组件、资源及代码图相似,则判定该待检测应用软件由所述的目标软件重打包而得。
2.根据权利要求1中所述的Android应用软件相似性的检测方法,其特征在于,所述解包
反编译过程具体包括解包过程和反编译过程;所述解包过程指从应用软件安装文件中得到编
译后的代码文件classes.dex、编译后的资源文件resources.arsc、编译后的布局文件
AndroidManifest.xml;所述反编译过程指从上述已编译的文件获得相应的未编译的文件,即
获得smali代码文件、各xml资源文件以及AndroidManifest.xml布局文件。
3.根据权利要求2中所述的Android应用软件相似性的检测方法,其特征在于,所述的提
取权限信息是指从AndroidManifest.xml文件中提取出<uses-permission>节点的字符串,该字
符串描述了应用软件所申请的权限,将提取的字符串构建成该待检测应用软件的权限集合;
所述的权限相似性检测过程具体如下:
记目标应用软件的权限集合为P1,待检测应用软件的权限集合为P2,若满足关系则判定待检测应用软件的权限与目标应用软件的权限相似。
4.根据权利要求2中所述的Android应用软件相似性的检测方法,其特征在于,所述的提
取组件信息是指从AndroidManifest.xml文件中提取出<activity>、<service>、<receiver>节点的
字符串,上述三个字符串分别描述了应用软件中的Activity组件、Service组件与
Broadcas...

【专利技术属性】
技术研发人员:陈瑞东张小松牛伟纳戴中印鲍凯漆艳梅于洲王东刘小垒
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

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

1