[发明专利]基于类依赖图的Android应用相似性检测方法有效
| 申请号: | 201410215823.6 | 申请日: | 2014-05-21 |
| 公开(公告)号: | CN103984883B | 公开(公告)日: | 2017-01-25 |
| 发明(设计)人: | 程戈;张云;李强;颜克文 | 申请(专利权)人: | 湘潭大学 |
| 主分类号: | G06F21/12 | 分类号: | G06F21/12;G06F9/44 |
| 代理公司: | 北京卓恒知识产权代理事务所(特殊普通合伙)11394 | 代理人: | 唐曙晖,刘明芳 |
| 地址: | 411105 湖*** | 国省代码: | 湖南;43 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 依赖 android 应用 相似性 检测 方法 | ||
技术领域
本发明属于移动互联网技术领域,具体涉及一种基于类依赖图的Android应用相似性检测方法。
背景技术
随着移动互联网的发展,智能手机已经成为人们生活中不可或缺的部分。依据谷歌的报告,截止到2013年12月份,搭载Android操作系统的智能手机和平板电脑激活量已经高达10亿台。为了让智能手机用户能够方便地浏览和安装智能手机应用,平台供应商提供了集中式的应用市场,包括苹果公司的App Store和谷歌公司的Google Play。应用开发者向应用市场提交自己的应用,使其开发的应用提供给成千上万的智能手机用户。平台所有者也能够更有效地控制应用的质量、阻挡恶意应用,从而保护用户的正当权益。与此同时,人们也创造了各种不同用途(比如为了满足区域或本地化需求)的第三方应用市场。例如Cydia和Amazon AppStore分别容纳了成千上万的iPhone和Android应用。在中国,还有着众多的第三方应用市场。例如安智市场、机锋市场、木蚂蚁应用市场、安极市场等等。
然而,在这些应用市场上的移动应用程序中,存在数量众多的对合法应用程序肆意进行修改,并用新的签名密钥进行重新打包并发布的应用。作为一种技术性方法,应用重新打包技术可以是出于良好的意图。然而,更常见的情况是,应用重新打包技术被用于恶意目的,由此给应用开发者、手机用户、市场运营商乃至整个Android生态系统都造成不容忽视的风险。例如,恶意软件作者可能会将具有破坏性的载体程序附加到合法的应用程序里面,然后在多个应用市场中通过广告推送的形式来感染不知情的用户,或是,将广告代码植入热门应用程序中,通过应用原作者获取广告收入。
针对上述问题,本发明提供一种基于类依赖图的Android应用相似性检测方法,可以快速有效的从海量应用中检测出重新打包的应用,保护应用开发者,防止他们的知识产权受到侵犯。此外,市场运营商能够利用该技术确保他们的应用市场不会充斥着经过重新打包的和包含木马的应用程序。
发明内容
本发明提出一种基于类依赖图的Android应用相似性检测方法,该方法从Dalvik字节码级别对Android应用程序的反编译代码进行静态分析,找出其中类之间互相依赖关系,构造Android类依赖图,通过类依赖图中顶点之间的相互依赖信息反映出程序的功能性的本质特征,同时,这些信息与Android字节码中类与变量的符号表示,类内部的变量与方法的排列顺序无关。本发明的方法将Andriod应用间的相似性比较转化为其类依赖图之间的相似性比较,并给出依赖图的快速比较方法。
本发明提供一种基于类依赖图的Android应用相似性检测方法,所述方法包括以下步骤:
S1.反编译Android应用,获取其Dalvik字节码;
S2.依据Android应用反编译后的文件目录和Dalvik字节码文件名,获取Android应用中的包名和类名;
S3.依据包名,类名以及Dalvik字节码文件构建类之间的依赖关系图;
S4.重复步骤S1-S3,直至获取所有需要比较的Android应用的类依赖图;和
S5.依据Android应用的类依赖图,采用图的相似性比较方法来比较Android应用的相似性;
其中,所述的类依赖图其特征在于:
Android的每个类对应该图中的一个顶点;
类依赖图是有向图;
一个类调用其他类的成员变量与成员函数对应该图中该顶点的出度;
一个类的成员变量与成员函数被其他类调用对应该图中该顶点的入度;
类依赖图中边的权重由相邻顶点的出度和入度决定,反映的是类之间的转移概率。
本发明提出的方法可以有效提取Android应用中的结构化信息,能够对抗Android应用混淆和变形技术对相似应用检出率的影响。
优选的,所述步骤S2中,依据反编译后Dalvik字节码各级子目录名称和Dalvik字节码文件名获取Dalvik字节码格式下Android应用的所有的包含包名的类名。
优选的,所述步骤S3中,每一个Dalvik字节码文件对应Android应用的一个类,其Dalvik字节码文件名,不包括后缀,对应Android应用的类名,而该Dalvik字节码文件的各级子目录名称对应该类的包名。
优选的,所述步骤S3中,将Android应用的类映射为图的顶点,遍历其Dalvik字节码文件目录下所有的Dalvik字节码文件,和/或,获取图中各个顶点的出度与入度。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于湘潭大学,未经湘潭大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410215823.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:多功能伞
- 下一篇:信号检测控制设备和交通信号故障自动巡检系统





