一种app应用重打包检测方法

文档序号:9453333阅读:1488来源:国知局
一种app应用重打包检测方法
【技术领域】
[0001] 本发明涉及一种APP应用重打包检测方法。
【背景技术】
[0002] 随着移动互联网的发展,越来越多的人在手机上进行传统的互联网活动,例如看 视频、支付、购物、登陆社交网站等。智能手机在日常生活中占有越来越重要的地位,极大地 丰富和便利了大家的生活。与此同时,各种恶意手机攻击软件层出不穷。重打包APP是手机 恶意软件的重要来源,破坏了Android生态系统的健康发展,导致开发者的利益受到损失, 促进了恶意软件的传播,危害普通用户的安全隐私。重打包的APP和原来的APP相比,大体 上保持了不变但是会增加或者了删除一些功能,如替换APP中的一些图片,改掉URL中的地 址,加载钓鱼网站的网页,或者加入一些额外模块来窃取用户的信息。
[0003] HybridAPP是指介于WebAPP和NativeAPP这两者之间的APP,同时米用html 语言和java语言进行开发,兼具了WebAPP和NativeAPP两者的优势,具有很好的跨平 台的优势。同时HybridAPP与NativeAPP和WebAPP又有较大的区别,HybridAPP分为 Native层和Web层,Native层主要用java语言实现,Web层主要使用HTML5实现,而Native APP主要由java代码实现。关于NativeAPP重打包的检测方法主要是将可疑APK与原始 APK进行比较,根据比较内容的相似性来判断是否重打包,相似度越高,且APK的签名不同, 那么该APK就是重打包的。HybridAPP与NativeAPP相比,反编译更加容易,因为Native APP主要是用java代码实现,如果想要对NativeAPP重打包必须进行反编译为java代码 再进行修改。而HybridAPP主要是由Html5实现,只要对APK文件进行解压就可以看到主 要的Web实现代码,攻击者很容易读懂Html和JavaScript代码,从而轻而易举的实现修改 以及重打包。因此HybridAPP比NativeAPP更容易被重打包。
[0004] 专利CN201210204247所述方案公开了一种安卓市场中重包装应用的检测方法, 该方法根据各个安卓应用的dex文件计算出所使用字符串的长度,将此作为区分不同应用 的特征码,通过计算不同应用的特征码之间的编辑距离得到不同安卓应用之间的相似度, 并将该相似度与给定阈值进行比较,从而确定是否为重包装应用。本发明可以作为检测 安卓恶意软件的一种有效辅助手段,但这种方法主要是针对NativeAPP,不能很好地解决 HybridAPP的重打包问题,并且当找不到原始APP时,这种方法将无法检测一个APP是不是 重打包的APP。
[0005] 专利CN201410261034所述方案公开了一种对Android重打包恶意软件的恶意代 码的检测、切除和恢复的方法,通过对已知恶意程序的恶意入口点类建立由模糊哈希值构 成的特征库,用于与反汇编后的待检测程序的入口点类进行匹配;然后依次切除被重打包 加入的完整的恶意代码片段以及恶意代码的资源文件,最后找出重打包过程中对原程序实 施修改的代码片段,恢复其原有功能。本发明针对当前Android平台日益严重的恶意程序 使用的重打包植入恶意代码这一最主要传播特征,检测和切除那些正常程序中植入的恶意 代码部分。这种方法主要是针对恶意代的检测,并不是重打包的检测问题,这种针对恶意 代码来对重打包进行检测具有较大的局限性。如果重打包只是替换了原版APP中的一些图 片或一些资源,则这种重打包检测方法将会检测不到,并且这种方法也是主要针对Native APP,由于HybridAPP与NativeAPP程序结构存在差异,这种方法对于HybridAPP不适用。
[0006] 专利CN201310438647所述方案公开了一种基于应用程序编程接口的安卓重打包 应用检测方法。首先对应用程序文件进行处理,得到smali代码文件;对于每一个文件夹, 从smali代码中提取出安卓应用程序编程接口的使用情况,统计频率信息;然后通过文件 夹之间的相互比较来进行聚类,将相似度高、重复数量多的文件夹视为第三方库;去除第三 方库干扰之后,再以应用程序文件为单位,对相似度高的程序文件进行聚类;最后结合作者 签名信息,判断应用程序之间是否具有重打包关系。利用本发明提供的技术方案,可以在 大规模应用市场级别的应用中对重打包应用进行自动的检测,有很高的效率以及准确性。 但该方法主要是针对NativeAPP,没有考虑HybridAPP与NativeAPP的差异,所以对于 HybridAPP不适用,并且当找不到原始APP时,这种方法将无法检测一个APP是不是重打包 的APP。
[0007] 专利US2014082729A所述方案公开了一种通过风险分析来计算出一个重打包的 APP的风险度,该风险分析方法通过计算该APP中是否有恶意代码来判断该APP是否是经过 重打包,采用了黑名单的方法进行匹配。该方法对重打包检测具有较大的局限性,如果重打 包时只是替换了原版APP中的一些资源文件,这种检测方法将会很难检测到,并且这种方 法也是主要针对NativeAPP,对于HybridAPP不适用。

【发明内容】

[0008] 本发明目的在于提出一种APP应用重打包检测方法,以解决现有应用重打包方法 对Hybrid APP应用适用性不强的技术问题。
[0009] 为此,本发明提出一种APP应用重打包检测方法,用于检测APP打包生成的安装包 是否经过重打包处理,包括以下步骤:判断所述安装包所含的每个文件内部是否具有一致 性和/或所含的不同文件之间是否具有一致性,若具有一致性,则判断所述安装包未经过 重打包处理,若不具有一致性,则判断所述安装包经过重打包处理。
[0010] 优选地,判断所述安装包所含的每个文件内部是否具有一致性和/或所含的不同 文件之间是否具有一致性可采用下述方式中的一种或几种进行:
[0011] 方式一、判断所述安装包访问的本地文件与所述安装包所含的文件是否具有一致 性;
[0012] 方式二、判断所述安装包访问的网络文件链接地址与所述APP对应的主域名是否 具有一致性;
[0013] 方式三、判断所述安装包中网页文件的内容是否具有一致性;
[0014] 方式四、判断所述安装包中不同类型文件之间的应用类别是否具有一致性。
[0015] 优选地,采用所述方式一时,所述APP重打包检测方法包括以下步骤:
[0016] S31、获取所述安装包所含的所有解压文件以及解压文件名;
[0017]S32、获取所述安装包访问的所有本地文件名;
[0018]S33、对每一个本地文件名进行如下处理:判断所述本地文件名与每一个解压文 件名的文件名相似度,若所述本地文件名与所有解压文件名的文件名相似度都小于第一阈 值,则所述安装包经过重打包处理;若所述本地文件名与某一所述解压文件名的文件名相 似度不小于第一阈值,则所述安装包未经过重打包处理。
[0019] 优选地,采用所述方式二时,所述APP重打包检测方法包括以下步骤:
[0020] S41、获取所述安装包所含的所有解压文件;
[0021 ] S42、获取所述安装包访问的所有网络文件链接地址;
[0022] S43、对每一个链接地址进行如下处理:判断所述链接地址与白名单中每一个子域 名的域名相似度,若所述链接地址与所有子域名的域名相似度都小于第二阈值,则所述安 装包经过重打包处理;若所述链接地址与某一子域名的域名相似度不小于第二阈值,则所 述安装包未经过重打包处理;其中,所述白名单包括与所述APP对应的子域名。
[0023] 优选地,采用所述方式三时,所述APP重打包检测方法包括以下步骤:
[0024]S51、获取所述安装包中每一个网页文件的内容特征值,记第i个网页文件的内容 特征值为H(i);
[0025] S52、获取所述安装包中所有网页文件之间的内容
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1