一种安卓重打包应用的检测方法及装置.pdf

上传人:n****g 文档编号:6264977 上传时间:2019-05-27 格式:PDF 页数:17 大小:1.10MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510762244.8

申请日:

2015.11.10

公开号:

CN105389508A

公开日:

2016.03.09

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 21/56申请日:20151110|||公开

IPC分类号:

G06F21/56(2013.01)I

主分类号:

G06F21/56

申请人:

工业和信息化部电信研究院

发明人:

焦四辈; 杨正军; 落红卫; 孙龙; 李媛; 詹维骁

地址:

100191北京市海淀区花园北路52号

优先权:

专利代理机构:

北京三友知识产权代理有限公司11127

代理人:

王涛

PDF下载: PDF下载
内容摘要

本发明提供了一种安卓重打包应用的检测方法及装置,涉及安卓系统技术领域,方法包括:获取待检测的安卓应用和正版应用的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成精准的文件特征;确定待检测的安卓应用和正版应用的静态特征;将待检测的安卓应用和正版应用各自的文件特征和静态特征融合为融合特征;根据杰卡德相似性算法,确定待检测的安卓应用的融合特征与正版应用的融合特征的相似度;在相似度大于等于相似度阈值,且待检测的安卓应用的签名信息和正版应用的签名信息不同,确定待检测的安卓应用为正版应用的重打包应用。本发明能够解决当前对安卓重打包应用的检测速度慢、检测不准确的问题。

权利要求书

1.一种安卓重打包应用的检测方法,其特征在于,包括:
分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并获取各自的
反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测的安卓应用
的文件特征和正版应用的文件特征;
对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待
检测的安卓应用的静态特征和所述正版应用的静态特征;
对所述待检测的安卓应用的文件特征和所述待检测的安卓应用的静态特征进行
融合,形成待检测的安卓应用的融合特征;
对所述正版应用的文件特征和所述正版应用的静态特征进行融合,形成正版应用
的融合特征;
根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融
合特征的相似度;
确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同;
若所述相似度大于等于一预先设置的相似度阈值,且所述待检测的安卓应用的签
名信息和所述正版应用的签名信息不同,确定所述待检测的安卓应用为所述正版应用
的重打包应用。
2.根据权利要求1所述的安卓重打包应用的检测方法,其特征在于,对所述待
检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待检测的安卓应
用的静态特征和所述正版应用的静态特征,包括:
获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的情况数据,所申
请的安卓系统权限和调用API情况的统计数据;
将所述待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系统权
限和调用API情况的统计数据,作为所述待检测的安卓应用的静态特征;
将所述正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用
API情况的统计数据,作为所述正版应用的静态特征。
3.根据权利要求1所述的安卓重打包应用的检测方法,其特征在于,所述待检
测的安卓应用的融合特征与正版应用的融合特征中分别包括多个特征元素;其中,所
述待检测的安卓应用的融合特征中的多个特征元素构成集合A;所述正版应用的融合
特征中的多个特征元素构成集合B。
4.根据权利要求3所述的安卓重打包应用的检测方法,其特征在于,所述根据
杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融合特征的
相似度,包括:
根据公式: J ( A , B ) = | A B | | A B | ]]>
确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度
J(A,B)。
5.根据权利要求1所述的安卓重打包应用的检测方法,其特征在于,确定所述
待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同,包括:
从所述待检测的安卓应用和所述正版应用中分别提取作者签名信息;
计算所述待检测的安卓应用的作者签名信息的第一MD5值;
计算所述正版应用的作者签名信息的第二MD5值;
确定所述第一MD5值和第二MD5值是否不同。
6.一种安卓重打包应用的检测装置,其特征在于,包括:
文件特征获取单元,用于分别获取待检测的安卓应用和正版应用的反编译代码和
布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文
件,形成待检测的安卓应用的文件特征和正版应用的文件特征;
静态特征获取单元,用于对所述待检测的安卓应用和正版应用进行基于静态分析
的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征;
第一融合单元,用于对所述待检测的安卓应用的文件特征和所述待检测的安卓应
用的静态特征进行融合,形成待检测的安卓应用的融合特征;
第二融合单元,用于对所述正版应用的文件特征和所述正版应用的静态特征进行
融合,形成正版应用的融合特征;
相似度计算单元,用于根据杰卡德相似性算法,确定所述待检测的安卓应用的融
合特征与正版应用的融合特征的相似度;
签名信息确定单元,用于确定所述待检测的安卓应用的签名信息和所述正版应用
的签名信息是否不同;
重打包应用判断单元,用于在所述相似度大于等于一预先设置的相似度阈值,且
所述待检测的安卓应用的签名信息和所述正版应用的签名信息不同时,确定所述待检
测的安卓应用为所述正版应用的重打包应用。
7.根据权利要求6所述的安卓重打包应用的检测装置,其特征在于,所述静态
特征获取单元,包括:
获取模块,用于获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的
情况数据,所申请的安卓系统权限和调用API情况的统计数据;
静态特征确定模块,用于将所述待检测的安卓应用调用安卓系统组件的情况数据
和所申请的安卓系统权限和调用API情况的统计数据,作为所述待检测的安卓应用的
静态特征;
所述静态特征确定模块,还用于将所述正版应用调用安卓系统组件的情况数据和
所申请的安卓系统权限和调用API情况的统计数据,作为所述正版应用的静态特征。
8.根据权利要求6所述的安卓重打包应用的检测装置,其特征在于,所述第一
融合单元中的待检测的安卓应用的融合特征与第二融合单元中的正版应用的融合特
征中分别包括多个特征元素;其中,所述待检测的安卓应用的融合特征中的多个特征
元素构成集合A;所述正版应用的融合特征中的多个特征元素构成集合B。
9.根据权利要求8所述的安卓重打包应用的检测装置,其特征在于,所述相似
度计算单元,具体用于:
根据公式: J ( A , B ) = | A B | | A B | ]]>
确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度
J(A,B)。
10.根据权利要求6所述的安卓重打包应用的检测装置,其特征在于,所述签名
信息确定单元,包括:
作者签名信息提取模块,用于从所述待检测的安卓应用和所述正版应用中分别提
取作者签名信息;
MD5值计算模块,用于计算所述待检测的安卓应用的作者签名信息的第一MD5
值,并计算所述正版应用的作者签名信息的第二MD5值;
MD5值比较模块,用于确定所述第一MD5值和第二MD5值是否不同。

说明书

一种安卓重打包应用的检测方法及装置

技术领域

本发明涉及安卓系统技术领域,尤其涉及一种安卓重打包应用的检测方法及装
置。

背景技术

当前,随着安卓(Android)移动智能终端的迅速普及,安卓应用(APP)的种
类、数量也越来越多。然而,安卓移动智能终端的安全问题也随之愈发严重。因为当
前在移动互联网中存在大量被重打包的恶意应用。安卓重打包应用的主要传播途径是
第三方应用市场,主要传播技术是重打包嵌入恶意代码。恶意代码开发者对正版安卓
应用进行反编译后,嵌入恶意代码或者修改部分代码后,重新打包发布到第三方市场
进行传播扩散。嵌入恶意代码的重打包应用会进行恶意扣费、窃取信息等恶意行为;
修改代码的重打包应用会截取开发商的广告收益,为自己谋利。重打包应用已经形成
了完整的黑色产业链条,给智能终端用户和开发者带来了严重的经济损失。

由于重打包的应用与正版安卓应用具有较高的相似度,一般可以应用相似性计算
方法来区分。而当前基于相似性计算的方法主要分为基于可执行代码的相似性检测方
法和基于文件的相似性方法两种。

基于可执行代码的相似性检测方法,是从安卓应用的可执行字节码中进行反编
译,提取特征,包括应用程序编程接口(ApplicationProgrammingInterface,API)、
组件、意图、广播、接收器等,以此生成应用特征,如API频率、API序列、组件频
率、意图频率、广播频率、接收器频率等,或者在可执行代码基础上分析得到应用的
数据流图、调用流图等特征,根据特征计算应用的相似性。然而,随着代码混淆技术
的普及,导致反编译得到的信息越来越不准确,进而严重影响相似性检测的准确性。

基于文件的相似性检测方法,是从安卓应用的文件中提取特征,包括文件目录结
构、图形文件、声音文件、布局文件、其他文件等,以此生成应用特征,如目录结构
树、图形哈希、其他文件散列值等,根据特征计算应用的相似性。然而,当前基于文
件目录的检测方法,由于采用树相似性比较方法计算应用相似性,而树相似性计算是
NP(未解难题)问题,计算消耗大,该方法的检测速度慢,不适合用来进行大规模
检测;基于其他文件的相似性检测,是计算可执行代码以外所以文件的散列值,以此
计算应用相似性,由于散列值的特性,文件即使修改了1比特,计算得到的散列值就
不一样,所以该方法很容易被绕过。而基于图片文件、声音文件等文件的检测,是对
应用内所有的图片和声音文件提取特征计算相似性,而由于安卓应用开发设计的原
因,导致不是所有应用包内的图片、声音等文件都是真的被调用的文件,而攻击者也
可以通过插入大量无用图片、无用声音等手段来绕过检测。可见,当前基于文件的相
似性检测方法较为繁琐复杂,且很容易被恶意应用绕过,造成检测结果不准确。

发明内容

本发明的实施例提供一种安卓重打包应用的检测方法及装置,以解决当前对安卓
重打包应用的检测速度较慢,且检测不准确的问题。

为达到上述目的,本发明采用如下技术方案:

一种安卓重打包应用的检测方法,包括:

分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并获取各自的
反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测的安卓应用
的文件特征和正版应用的文件特征;

对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待
检测的安卓应用的静态特征和所述正版应用的静态特征;

对所述待检测的安卓应用的文件特征和所述待检测的安卓应用的静态特征进行
融合,形成待检测的安卓应用的融合特征;

对所述正版应用的文件特征和所述正版应用的静态特征进行融合,形成正版应用
的融合特征;

根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融
合特征的相似度;

确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同;

若所述相似度大于等于一预先设置的相似度阈值,且所述待检测的安卓应用的签
名信息和所述正版应用的签名信息不同,确定所述待检测的安卓应用为所述正版应用
的重打包应用。

具体的,对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形
成所述待检测的安卓应用的静态特征和所述正版应用的静态特征,包括:

获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的情况数据,所申
请的安卓系统权限和调用API情况的统计数据;

将所述待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系统权
限和调用API情况的统计数据,作为所述待检测的安卓应用的静态特征;

将所述正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用
API情况的统计数据,作为所述正版应用的静态特征。

具体的,所述待检测的安卓应用的融合特征与正版应用的融合特征中分别包括多
个特征元素;其中,所述待检测的安卓应用的融合特征中的多个特征元素构成集合A;
所述正版应用的融合特征中的多个特征元素构成集合B。

具体的,所述根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与
正版应用的融合特征的相似度,包括:

根据公式: J ( A , B ) = | A B | | A B | ]]>

确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度
J(A,B)。

具体的,确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否
不同,包括:

从所述待检测的安卓应用和所述正版应用中分别提取作者签名信息;

计算所述待检测的安卓应用的作者签名信息的第一MD5值;

计算所述正版应用的作者签名信息的第二MD5值;

确定所述第一MD5值和第二MD5值是否不同。

一种安卓重打包应用的检测装置,包括:

文件特征获取单元,用于分别获取待检测的安卓应用和正版应用的反编译代码和
布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文
件,形成待检测的安卓应用的文件特征和正版应用的文件特征;

静态特征获取单元,用于对所述待检测的安卓应用和正版应用进行基于静态分析
的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征;

第一融合单元,用于对所述待检测的安卓应用的文件特征和所述待检测的安卓应
用的静态特征进行融合,形成待检测的安卓应用的融合特征;

第二融合单元,用于对所述正版应用的文件特征和所述正版应用的静态特征进行
融合,形成正版应用的融合特征;

相似度计算单元,用于根据杰卡德相似性算法,确定所述待检测的安卓应用的融
合特征与正版应用的融合特征的相似度;

签名信息确定单元,用于确定所述待检测的安卓应用的签名信息和所述正版应用
的签名信息是否不同;

重打包应用判断单元,用于在所述相似度大于等于一预先设置的相似度阈值,且
所述待检测的安卓应用的签名信息和所述正版应用的签名信息不同时,确定所述待检
测的安卓应用为所述正版应用的重打包应用。

具体的,所述静态特征获取单元,包括:

获取模块,用于获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的
情况数据,所申请的安卓系统权限和调用API情况的统计数据;

静态特征确定模块,用于将所述待检测的安卓应用调用安卓系统组件的情况数据
和所申请的安卓系统权限和调用API情况的统计数据,作为所述待检测的安卓应用的
静态特征;

所述静态特征确定模块,还用于将所述正版应用调用安卓系统组件的情况数据和
所申请的安卓系统权限和调用API情况的统计数据,作为所述正版应用的静态特征。

此外,所述第一融合单元中的待检测的安卓应用的融合特征与第二融合单元中的
正版应用的融合特征中分别包括多个特征元素;其中,所述待检测的安卓应用的融合
特征中的多个特征元素构成集合A;所述正版应用的融合特征中的多个特征元素构成
集合B。

另外,所述相似度计算单元,具体用于:

根据公式: J ( A , B ) = | A B | | A B | ]]>

确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度
J(A,B)。

具体的,所述签名信息确定单元,包括:

作者签名信息提取模块,用于从所述待检测的安卓应用和所述正版应用中分别提
取作者签名信息;

MD5值计算模块,用于计算所述待检测的安卓应用的作者签名信息的第一MD5
值,并计算所述正版应用的作者签名信息的第二MD5值;

MD5值比较模块,用于确定所述第一MD5值和第二MD5值是否不同。

本发明实施例提供一种安卓重打包应用的检测方法及装置,能够从反编译代码和
布局文件中获取实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特
征和正版应用的文件特征。并基于静态分析特征提取,提取出待检测的安卓应用的静
态特征和所述正版应用的静态特征。进而分别形成待检测的安卓应用的融合特征和正
版应用的融合特征,再由杰卡德相似性算法确定待检测的安卓应用的融合特征与正版
应用的融合特征的相似度。从而在相似度大于等于一相似度阈值,且待检测的安卓应
用的签名信息和所述正版应用的签名信息不同时,能够确定待检测的安卓应用为所述
正版应用的重打包应用。可见,本发明避免了采用基于可执行代码的相似性检测方法,
由于代码混淆造成的准确性较差的问题。同时,本发明获取的是反编译代码和布局文
件中实际调用过的图片文件和声音文件,而并非采用应用中全部的图片和声音文件,
且采用杰卡德相似性算法较为简单,避免了基于文件的相似性检测方法所造成的检测
过程繁琐复杂,以及由于冗余图片和声音文件所造成的检测结果不准确的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技
术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本
发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,
还可以根据这些附图获得其他的附图。

图1为本发明实施例提供一种安卓重打包应用的检测方法的流程图一;

图2为本发明实施例提供一种安卓重打包应用的检测方法的流程图二;

图3为本发明实施例提供一种安卓重打包应用的检测装置的结构示意图一;

图4为本发明实施例提供一种安卓重打包应用的检测装置的结构示意图二。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地
描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基
于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所
有其他实施例,都属于本发明保护的范围。

本发明实施例提供一种安卓重打包应用的检测方法,如图1所示,包括:

步骤101、分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并
获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测
的安卓应用的文件特征和正版应用的文件特征。

步骤102、对待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成
待检测的安卓应用的静态特征和正版应用的静态特征。

步骤103、对待检测的安卓应用的文件特征和待检测的安卓应用的静态特征进行
融合,形成待检测的安卓应用的融合特征。

步骤104、对正版应用的文件特征和正版应用的静态特征进行融合,形成正版应
用的融合特征。

步骤105、根据杰卡德相似性算法,确定待检测的安卓应用的融合特征与正版应
用的融合特征的相似度。

步骤106、确定待检测的安卓应用的签名信息和正版应用的签名信息是否不同。

步骤107、若相似度大于等于一预先设置的相似度阈值,且待检测的安卓应用的
签名信息和正版应用的签名信息不同,确定待检测的安卓应用为正版应用的重打包应
用。

本发明实施例提供一种安卓重打包应用的检测方法,能够从反编译代码和布局文
件中获取实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特征和正
版应用的文件特征。并基于静态分析特征提取,提取出待检测的安卓应用的静态特征
和正版应用的静态特征。进而分别形成待检测的安卓应用的融合特征和正版应用的融
合特征,再由杰卡德相似性算法确定待检测的安卓应用的融合特征与正版应用的融合
特征的相似度。从而在相似度大于等于一相似度阈值,且待检测的安卓应用的签名信
息和正版应用的签名信息不同时,能够确定待检测的安卓应用为正版应用的重打包应
用。可见,本发明避免了采用基于可执行代码的相似性检测方法,由于代码混淆造成
的准确性较差的问题。同时,本发明获取的是反编译代码和布局文件中实际调用过的
图片文件和声音文件,而并非采用应用中全部的图片和声音文件,且采用杰卡德相似
性算法较为简单,避免了基于文件的相似性检测方法所造成的检测过程繁琐复杂,以
及由于冗余图片和声音文件所造成的检测结果不准确的问题。

为了使本领域的技术人员更好的了解本发明,下面列举一个更为详细的实施例,
如图2所示,本发明实施例提供一种安卓重打包应用的检测方法,包括:

步骤201、分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并
获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测
的安卓应用的文件特征和正版应用的文件特征。

其中,获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,
是为了保证图片文件和声音文件被真实调用,而筛选掉冗余的,用来干扰检测的图片
和声音文件。具体提取图片和声音文件可以采用尺度不变特征变换算法
(Scale-invariantfeaturetransform,SIFT)等,此处不再赘述。这样,得到的文件特
征相比于现有技术中采用所有图片和声音进行检测,较为精准。

例如,在一应用中,存在图片文件logo1.png、logo2.png以及logo3.png,并且存
在声音文件sound1.mp3、sound2.mp3、sound3.mp3;而在该应用的反编译代码和布局
文件中,确定其实际调用过的图片文件为logo1.png,实际调用的声音文件为
sound1.mp3。而logo2.png、logo3.png可以是冗余的,用来干扰检测的图片文件;
sound2.mp3、sound3.mp3可以是冗余的,用来干扰检测的声音文件,因此采用上述方
式可以将logo2.png、logo3.png以及sound2.mp3、sound3.mp3过滤掉。

步骤202、获取待检测的安卓应用和正版应用调用安卓系统组件的情况数据,所
申请的安卓系统权限和调用API情况的统计数据。之后执行步骤203以及步骤204。

步骤203、将待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系
统权限和调用API情况的统计数据,作为待检测的安卓应用的静态特征。之后执行步
骤205。

步骤204、将正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和
调用API情况的统计数据,作为正版应用的静态特征。之后执行步骤206。

此处,基于静态分析的特征提取,首先可以分析可执行文件特征、权限等静态特
征信息。一般情况下重打包应用和正版应用在程序实现上存在较大差异。按API与重
打包应用的相关性,将API分为敏感API和普通API,重打包应用和正版应用的差异
具体体现在敏感API的调用(如动态加载的API、本地调用的API等),对于重打包
应用而言主要是调用敏感API来完成其恶意的行为,敏感API在其整个调用的API
中占有很大的比重,而对于正版应用,其中也会有敏感API的调用,但是所占的比重
要小。具体的,可通过对安卓应用APK进行反编译,得到安卓Manifest.xml文件,
对该文件进行分析,提取各个组件使用个数情况,包括permission、activity、
service、receiver和provider。针对每个应用可得到各个组件使用情况的特征向量
Xstatic1。如某一应用中各个组件使用统计数据:permission为10,activity为20,
service为2,receiver和provider都为0,则可将Xstatic1=[10,20,2,0,0]作为一个静
态特征。

对正版应用和重打包应用的安装文件可以用逆向工程工具进行反编译,获取配置
文件;对上述配置文件进行解码,扫描源码并提取其中的权限向量,得到每个程序对
应的权限集;从安卓程序中筛选出部分敏感权限作为静态特征,如CALL_PHONE、
SEND_SMS、GET_ACCOUNTs、GET_LOCATION、READ_PHONE_SMS、
READ_CONTACTS、CAMERA、ACCESS_NETWORK_STATE、
ACCESS_WIFI_STATE、INTERNET,将这些权限中未使用的置0,使用到的置1,
这样每个应用样本生成一个与之对应的二进制特征向量。如某一应用申请了
CALL_PHONE、SEND_SMS、GET_ACCOUNTs、READ_CONTACTS、INTERNET
权限,则基于权限的特征向量可以为Xstatic2=[1,1,1,0,0,1,0,0,0,1],即可作为一个静态
特征。

步骤205、对待检测的安卓应用的文件特征和待检测的安卓应用的静态特征进行融
合,形成待检测的安卓应用的融合特征。

步骤206、对正版应用的文件特征和正版应用的静态特征进行融合,形成正版应
用的融合特征。

在步骤205和步骤206之后,继续执行步骤207。

步骤207、根据杰卡德相似性算法,确定待检测的安卓应用的融合特征与正版应
用的融合特征的相似度。

具体可以根据公式:

确定待检测的安卓应用的融合特征与正版应用的融合特征的相似度J(A,B)。

值得说明的是,待检测的安卓应用的融合特征与正版应用的融合特征中分别包括
多个特征元素;其中,待检测的安卓应用的融合特征中的多个特征元素构成集合A;
正版应用的融合特征中的多个特征元素构成集合B。

步骤208、确定待检测的安卓应用的签名信息和正版应用的签名信息是否不同。

具体的,该步骤208可以采用如下方式实现:从待检测的安卓应用和正版应用中
分别提取作者签名信息;计算待检测的安卓应用的作者签名信息的第一MD5值;计
算正版应用的作者签名信息的第二MD5值;确定第一MD5值和第二MD5值是否不
同。此处,若第一MD5值和第二MD5值不同,则可以确定待检测的安卓应用的签
名信息和正版应用的签名信息不同。

步骤209、若相似度大于等于一预先设置的相似度阈值,且待检测的安卓应用的
签名信息和正版应用的签名信息不同,确定待检测的安卓应用为正版应用的重打包应
用。

本发明实施例提供一种安卓重打包应用的检测方法,能够从反编译代码和布局文
件中获取实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特征和正
版应用的文件特征。并基于静态分析特征提取,提取出待检测的安卓应用的静态特征
和正版应用的静态特征。进而分别形成待检测的安卓应用的融合特征和正版应用的融
合特征,再由杰卡德相似性算法确定待检测的安卓应用的融合特征与正版应用的融合
特征的相似度。从而在相似度大于等于一相似度阈值,且待检测的安卓应用的签名信
息和正版应用的签名信息不同时,能够确定待检测的安卓应用为正版应用的重打包应
用。可见,本发明避免了采用基于可执行代码的相似性检测方法,由于代码混淆造成
的准确性较差的问题。同时,本发明获取的是反编译代码和布局文件中实际调用过的
图片文件和声音文件,而并非采用应用中全部的图片和声音文件,且采用杰卡德相似
性算法较为简单,避免了基于文件的相似性检测方法所造成的检测过程繁琐复杂,以
及由于冗余图片和声音文件所造成的检测结果不准确的问题。

对应于上述图1和图2所示的方法实施例,本发明还提供一种安卓重打包应用的
检测装置,如图3所示,包括:

文件特征获取单元31,可以分别获取待检测的安卓应用和正版应用的反编译代
码和布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音
文件,形成待检测的安卓应用的文件特征和正版应用的文件特征。

静态特征获取单元32,可以对待检测的安卓应用和正版应用进行基于静态分析
的特征提取,形成待检测的安卓应用的静态特征和正版应用的静态特征。

第一融合单元33,可以对待检测的安卓应用的文件特征和待检测的安卓应用的
静态特征进行融合,形成待检测的安卓应用的融合特征。

第二融合单元34,可以对正版应用的文件特征和正版应用的静态特征进行融合,
形成正版应用的融合特征。

相似度计算单元35,可以根据杰卡德相似性算法,确定待检测的安卓应用的融
合特征与正版应用的融合特征的相似度。

签名信息确定单元36,可以确定待检测的安卓应用的签名信息和正版应用的签
名信息是否不同。

重打包应用判断单元37,可以在相似度大于等于一预先设置的相似度阈值,且
待检测的安卓应用的签名信息和正版应用的签名信息不同时,确定待检测的安卓应用
为正版应用的重打包应用。

具体的,如图4所示,静态特征获取单元32,包括:

获取模块321,可以获取待检测的安卓应用和正版应用调用安卓系统组件的情况
数据,所申请的安卓系统权限和调用API情况的统计数据。

静态特征确定模块322,可以将待检测的安卓应用调用安卓系统组件的情况数据
和所申请的安卓系统权限和调用API情况的统计数据,作为待检测的安卓应用的静态
特征。

静态特征确定模块322,还可以将正版应用调用安卓系统组件的情况数据和所申
请的安卓系统权限和调用API情况的统计数据,作为正版应用的静态特征。

此外,第一融合单元33中的待检测的安卓应用的融合特征与第二融合单元34
中的正版应用的融合特征中分别包括多个特征元素;其中,待检测的安卓应用的融合
特征中的多个特征元素构成集合A;正版应用的融合特征中的多个特征元素构成集合
B。

另外,该相似度计算单元35,具体可以根据公式:确定待检测
的安卓应用的融合特征与正版应用的融合特征的相似度J(A,B)。

具体的,如图4所示,该签名信息确定单元36,可以包括:

作者签名信息提取模块361,可以从待检测的安卓应用和正版应用中分别提取作
者签名信息。

MD5值计算模块362,可以计算待检测的安卓应用的作者签名信息的第一MD5
值,并计算正版应用的作者签名信息的第二MD5值。

MD5值比较模块363,可以确定第一MD5值和第二MD5值是否不同。

值得说明的是,本发明实施例提供的安卓重打包应用的检测装置的具体实现方式
可以参见上述图1和图2对应的方法实施例,此处不再赘述。

本发明实施例提供一种安卓重打包应用的检测装置,能够从反编译代码和布局文
件中获取实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特征和正
版应用的文件特征。并基于静态分析特征提取,提取出待检测的安卓应用的静态特征
和正版应用的静态特征。进而分别形成待检测的安卓应用的融合特征和正版应用的融
合特征,再由杰卡德相似性算法确定待检测的安卓应用的融合特征与正版应用的融合
特征的相似度。从而在相似度大于等于一相似度阈值,且待检测的安卓应用的签名信
息和正版应用的签名信息不同时,能够确定待检测的安卓应用为正版应用的重打包应
用。可见,本发明避免了采用基于可执行代码的相似性检测方法,由于代码混淆造成
的准确性较差的问题。同时,本发明获取的是反编译代码和布局文件中实际调用过的
图片文件和声音文件,而并非采用应用中全部的图片和声音文件,且采用杰卡德相似
性算法较为简单,避免了基于文件的相似性检测方法所造成的检测过程繁琐复杂,以
及由于冗余图片和声音文件所造成的检测结果不准确的问题。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程
序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件
方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序
代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)
上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流
程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的
每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些
计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设
备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执
行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方
框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特
定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包
括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计
算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算
机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或
方框图一个方框或多个方框中指定的功能的步骤。

本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例
的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术
人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,
本说明书内容不应理解为对本发明的限制。

一种安卓重打包应用的检测方法及装置.pdf_第1页
第1页 / 共17页
一种安卓重打包应用的检测方法及装置.pdf_第2页
第2页 / 共17页
一种安卓重打包应用的检测方法及装置.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《一种安卓重打包应用的检测方法及装置.pdf》由会员分享,可在线阅读,更多相关《一种安卓重打包应用的检测方法及装置.pdf(17页珍藏版)》请在专利查询网上搜索。

本发明提供了一种安卓重打包应用的检测方法及装置,涉及安卓系统技术领域,方法包括:获取待检测的安卓应用和正版应用的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成精准的文件特征;确定待检测的安卓应用和正版应用的静态特征;将待检测的安卓应用和正版应用各自的文件特征和静态特征融合为融合特征;根据杰卡德相似性算法,确定待检测的安卓应用的融合特征与正版应用的融合特征的相似度;在相似度大于等于相似度。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1