CN105389508B - 一种安卓重打包应用的检测方法及装置 - Google Patents
一种安卓重打包应用的检测方法及装置 Download PDFInfo
- Publication number
- CN105389508B CN105389508B CN201510762244.8A CN201510762244A CN105389508B CN 105389508 B CN105389508 B CN 105389508B CN 201510762244 A CN201510762244 A CN 201510762244A CN 105389508 B CN105389508 B CN 105389508B
- Authority
- CN
- China
- Prior art keywords
- application
- android
- detected
- legal
- fusion feature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种安卓重打包应用的检测方法及装置,涉及安卓系统技术领域,方法包括:获取待检测的安卓应用和正版应用的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成精准的文件特征;确定待检测的安卓应用和正版应用的静态特征;将待检测的安卓应用和正版应用各自的文件特征和静态特征融合为融合特征;根据杰卡德相似性算法,确定待检测的安卓应用的融合特征与正版应用的融合特征的相似度;在相似度大于等于相似度阈值,且待检测的安卓应用的签名信息和正版应用的签名信息不同,确定待检测的安卓应用为正版应用的重打包应用。本发明能够解决当前对安卓重打包应用的检测速度慢、检测不准确的问题。
Description
技术领域
本发明涉及安卓系统技术领域,尤其涉及一种安卓重打包应用的检测方法及装置。
背景技术
当前,随着安卓(Android)移动智能终端的迅速普及,安卓应用(APP)的种类、数量也越来越多。然而,安卓移动智能终端的安全问题也随之愈发严重。因为当前在移动互联网中存在大量被重打包的恶意应用。安卓重打包应用的主要传播途径是第三方应用市场,主要传播技术是重打包嵌入恶意代码。恶意代码开发者对正版安卓应用进行反编译后,嵌入恶意代码或者修改部分代码后,重新打包发布到第三方市场进行传播扩散。嵌入恶意代码的重打包应用会进行恶意扣费、窃取信息等恶意行为;修改代码的重打包应用会截取开发商的广告收益,为自己谋利。重打包应用已经形成了完整的黑色产业链条,给智能终端用户和开发者带来了严重的经济损失。
由于重打包的应用与正版安卓应用具有较高的相似度,一般可以应用相似性计算方法来区分。而当前基于相似性计算的方法主要分为基于可执行代码的相似性检测方法和基于文件的相似性方法两种。
基于可执行代码的相似性检测方法,是从安卓应用的可执行字节码中进行反编译,提取特征,包括应用程序编程接口(Application Programming Interface,API)、组件、意图、广播、接收器等,以此生成应用特征,如API频率、API序列、组件频率、意图频率、广播频率、接收器频率等,或者在可执行代码基础上分析得到应用的数据流图、调用流图等特征,根据特征计算应用的相似性。然而,随着代码混淆技术的普及,导致反编译得到的信息越来越不准确,进而严重影响相似性检测的准确性。
基于文件的相似性检测方法,是从安卓应用的文件中提取特征,包括文件目录结构、图形文件、声音文件、布局文件、其他文件等,以此生成应用特征,如目录结构树、图形哈希、其他文件散列值等,根据特征计算应用的相似性。然而,当前基于文件目录的检测方法,由于采用树相似性比较方法计算应用相似性,而树相似性计算是NP(未解难题)问题,计算消耗大,该方法的检测速度慢,不适合用来进行大规模检测;基于其他文件的相似性检测,是计算可执行代码以外所以文件的散列值,以此计算应用相似性,由于散列值的特性,文件即使修改了1比特,计算得到的散列值就不一样,所以该方法很容易被绕过。而基于图片文件、声音文件等文件的检测,是对应用内所有的图片和声音文件提取特征计算相似性,而由于安卓应用开发设计的原因,导致不是所有应用包内的图片、声音等文件都是真的被调用的文件,而攻击者也可以通过插入大量无用图片、无用声音等手段来绕过检测。可见,当前基于文件的相似性检测方法较为繁琐复杂,且很容易被恶意应用绕过,造成检测结果不准确。
发明内容
本发明的实施例提供一种安卓重打包应用的检测方法及装置,以解决当前对安卓重打包应用的检测速度较慢,且检测不准确的问题。
为达到上述目的,本发明采用如下技术方案:
一种安卓重打包应用的检测方法,包括:
分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特征和正版应用的文件特征;
对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征;
对所述待检测的安卓应用的文件特征和所述待检测的安卓应用的静态特征进行融合,形成待检测的安卓应用的融合特征;
对所述正版应用的文件特征和所述正版应用的静态特征进行融合,形成正版应用的融合特征;
根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度;
确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同;
若所述相似度大于等于一预先设置的相似度阈值,且所述待检测的安卓应用的签名信息和所述正版应用的签名信息不同,确定所述待检测的安卓应用为所述正版应用的重打包应用。
具体的,对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征,包括:
获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的情况数据,所申请的安卓系统权限和调用API情况的统计数据;
将所述待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述待检测的安卓应用的静态特征;
将所述正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述正版应用的静态特征。
具体的,所述待检测的安卓应用的融合特征与正版应用的融合特征中分别包括多个特征元素;其中,所述待检测的安卓应用的融合特征中的多个特征元素构成集合A;所述正版应用的融合特征中的多个特征元素构成集合B。
具体的,所述根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度,包括:
根据公式:
确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度J(A,B)。
具体的,确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同,包括:
从所述待检测的安卓应用和所述正版应用中分别提取作者签名信息;
计算所述待检测的安卓应用的作者签名信息的第一MD5值;
计算所述正版应用的作者签名信息的第二MD5值;
确定所述第一MD5值和第二MD5值是否不同。
一种安卓重打包应用的检测装置,包括:
文件特征获取单元,用于分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特征和正版应用的文件特征;
静态特征获取单元,用于对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征;
第一融合单元,用于对所述待检测的安卓应用的文件特征和所述待检测的安卓应用的静态特征进行融合,形成待检测的安卓应用的融合特征;
第二融合单元,用于对所述正版应用的文件特征和所述正版应用的静态特征进行融合,形成正版应用的融合特征;
相似度计算单元,用于根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度;
签名信息确定单元,用于确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同;
重打包应用判断单元,用于在所述相似度大于等于一预先设置的相似度阈值,且所述待检测的安卓应用的签名信息和所述正版应用的签名信息不同时,确定所述待检测的安卓应用为所述正版应用的重打包应用。
具体的,所述静态特征获取单元,包括:
获取模块,用于获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的情况数据,所申请的安卓系统权限和调用API情况的统计数据;
静态特征确定模块,用于将所述待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述待检测的安卓应用的静态特征;
所述静态特征确定模块,还用于将所述正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述正版应用的静态特征。
此外,所述第一融合单元中的待检测的安卓应用的融合特征与第二融合单元中的正版应用的融合特征中分别包括多个特征元素;其中,所述待检测的安卓应用的融合特征中的多个特征元素构成集合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-invariantfeature transform,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、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (8)
1.一种安卓重打包应用的检测方法,其特征在于,包括:
分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特征和正版应用的文件特征;
对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征;
对所述待检测的安卓应用的文件特征和所述待检测的安卓应用的静态特征进行融合,形成待检测的安卓应用的融合特征;
对所述正版应用的文件特征和所述正版应用的静态特征进行融合,形成正版应用的融合特征;
根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度;
确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同;
若所述相似度大于等于一预先设置的相似度阈值,且所述待检测的安卓应用的签名信息和所述正版应用的签名信息不同,确定所述待检测的安卓应用为所述正版应用的重打包应用;
对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征,包括:
获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的情况数据,所申请的安卓系统权限和调用API情况的统计数据;
将所述待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述待检测的安卓应用的静态特征;
将所述正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述正版应用的静态特征。
2.根据权利要求1所述的安卓重打包应用的检测方法,其特征在于,所述待检测的安卓应用的融合特征与正版应用的融合特征中分别包括多个特征元素;其中,所述待检测的安卓应用的融合特征中的多个特征元素构成集合A;所述正版应用的融合特征中的多个特征元素构成集合B。
3.根据权利要求2所述的安卓重打包应用的检测方法,其特征在于,所述根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度,包括:
根据公式:
确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度J(A,B)。
4.根据权利要求1所述的安卓重打包应用的检测方法,其特征在于,确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同,包括:
从所述待检测的安卓应用和所述正版应用中分别提取作者签名信息;
计算所述待检测的安卓应用的作者签名信息的第一MD5值;
计算所述正版应用的作者签名信息的第二MD5值;
确定所述第一MD5值和第二MD5值是否不同。
5.一种安卓重打包应用的检测装置,其特征在于,包括:
文件特征获取单元,用于分别获取待检测的安卓应用和正版应用的反编译代码和布局文件,并获取各自的反编译代码和布局文件中实际调用过的图片文件和声音文件,形成待检测的安卓应用的文件特征和正版应用的文件特征;
静态特征获取单元,用于对所述待检测的安卓应用和正版应用进行基于静态分析的特征提取,形成所述待检测的安卓应用的静态特征和所述正版应用的静态特征;
第一融合单元,用于对所述待检测的安卓应用的文件特征和所述待检测的安卓应用的静态特征进行融合,形成待检测的安卓应用的融合特征;
第二融合单元,用于对所述正版应用的文件特征和所述正版应用的静态特征进行融合,形成正版应用的融合特征;
相似度计算单元,用于根据杰卡德相似性算法,确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度;
签名信息确定单元,用于确定所述待检测的安卓应用的签名信息和所述正版应用的签名信息是否不同;
重打包应用判断单元,用于在所述相似度大于等于一预先设置的相似度阈值,且所述待检测的安卓应用的签名信息和所述正版应用的签名信息不同时,确定所述待检测的安卓应用为所述正版应用的重打包应用;
所述静态特征获取单元,包括:
获取模块,用于获取所述待检测的安卓应用和所述正版应用调用安卓系统组件的情况数据,所申请的安卓系统权限和调用API情况的统计数据;
静态特征确定模块,用于将所述待检测的安卓应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述待检测的安卓应用的静态特征;
所述静态特征确定模块,还用于将所述正版应用调用安卓系统组件的情况数据和所申请的安卓系统权限和调用API情况的统计数据,作为所述正版应用的静态特征。
6.根据权利要求5所述的安卓重打包应用的检测装置,其特征在于,所述第一融合单元中的待检测的安卓应用的融合特征与第二融合单元中的正版应用的融合特征中分别包括多个特征元素;其中,所述待检测的安卓应用的融合特征中的多个特征元素构成集合A;所述正版应用的融合特征中的多个特征元素构成集合B。
7.根据权利要求6所述的安卓重打包应用的检测装置,其特征在于,所述相似度计算单元,具体用于:
根据公式:
确定所述待检测的安卓应用的融合特征与正版应用的融合特征的相似度J(A,B)。
8.根据权利要求5所述的安卓重打包应用的检测装置,其特征在于,所述签名信息确定单元,包括:
作者签名信息提取模块,用于从所述待检测的安卓应用和所述正版应用中分别提取作者签名信息;
MD5值计算模块,用于计算所述待检测的安卓应用的作者签名信息的第一MD5值,并计算所述正版应用的作者签名信息的第二MD5值;
MD5值比较模块,用于确定所述第一MD5值和第二MD5值是否不同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510762244.8A CN105389508B (zh) | 2015-11-10 | 2015-11-10 | 一种安卓重打包应用的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510762244.8A CN105389508B (zh) | 2015-11-10 | 2015-11-10 | 一种安卓重打包应用的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105389508A CN105389508A (zh) | 2016-03-09 |
CN105389508B true CN105389508B (zh) | 2018-02-16 |
Family
ID=55421784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510762244.8A Active CN105389508B (zh) | 2015-11-10 | 2015-11-10 | 一种安卓重打包应用的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105389508B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105825085B (zh) * | 2016-03-16 | 2019-02-15 | 广州优视网络科技有限公司 | 应用程序的处理方法及装置 |
CN107315951B (zh) * | 2016-04-26 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 一种程序安装包反拦截方法及装置 |
CN105893848A (zh) * | 2016-04-27 | 2016-08-24 | 南京邮电大学 | 一种基于代码行为相似度匹配的Android恶意应用程序防范方法 |
CN106445513A (zh) * | 2016-09-12 | 2017-02-22 | 中山大学 | 一种基于移动应用界面元素的相似性计算方法 |
CN110019895B (zh) * | 2017-07-27 | 2021-05-14 | 杭州海康威视数字技术股份有限公司 | 一种图像检索方法、装置及电子设备 |
CN109542456B (zh) * | 2017-08-15 | 2022-03-01 | 中兴通讯股份有限公司 | 一种应用相似度的获得方法、装置及终端 |
CN109933976B (zh) * | 2017-12-15 | 2023-05-09 | 深圳Tcl工业研究院有限公司 | 一种安卓应用相似性检测方法、移动终端及存储装置 |
CN109858249B (zh) * | 2019-02-18 | 2020-08-07 | 暨南大学 | 移动恶意软件大数据的快速智能比对和安全检测方法 |
CN110175045A (zh) * | 2019-05-20 | 2019-08-27 | 北京邮电大学 | 安卓应用程序重打包数据处理方法及装置 |
CN113641964B (zh) * | 2021-10-19 | 2022-05-17 | 北京邮电大学 | 重打包应用检测方法、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473104A (zh) * | 2013-09-24 | 2013-12-25 | 北京大学 | 一种基于关键词上下文频率矩阵的应用重打包辨别方法 |
CN103473346A (zh) * | 2013-09-24 | 2013-12-25 | 北京大学 | 一种基于应用程序编程接口的安卓重打包应用检测方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103324872B (zh) * | 2013-07-12 | 2016-04-27 | 上海交通大学 | 基于指令混淆的Android应用程序保护方法及系统 |
CN103473069B (zh) * | 2013-09-24 | 2016-10-05 | 北京大学 | 利用Android系统API的访问代价模型优化移动应用程序的方法 |
-
2015
- 2015-11-10 CN CN201510762244.8A patent/CN105389508B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103473104A (zh) * | 2013-09-24 | 2013-12-25 | 北京大学 | 一种基于关键词上下文频率矩阵的应用重打包辨别方法 |
CN103473346A (zh) * | 2013-09-24 | 2013-12-25 | 北京大学 | 一种基于应用程序编程接口的安卓重打包应用检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105389508A (zh) | 2016-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105389508B (zh) | 一种安卓重打包应用的检测方法及装置 | |
Das et al. | The web's sixth sense: A study of scripts accessing smartphone sensors | |
Sun et al. | Detecting code reuse in android applications using component-based control flow graph | |
CN104091125B (zh) | 处理悬浮窗的方法及悬浮窗处理装置 | |
TWI461953B (zh) | 運算環境安全方法和電子運算系統 | |
CN103777967B (zh) | 页面返回方法、页面生成方法和装置 | |
WO2015143956A1 (zh) | 一种拦截网页中的广告的方法及装置 | |
CN104091140B (zh) | 一种信息处理方法及电子设备 | |
CN106845223B (zh) | 用于检测恶意代码的方法和装置 | |
CN104143008B (zh) | 基于图片匹配检测钓鱼网页的方法及装置 | |
CN104123493A (zh) | 应用程序的安全性检测方法和装置 | |
CN105631355A (zh) | 一种数据处理方法和装置 | |
CN103473346A (zh) | 一种基于应用程序编程接口的安卓重打包应用检测方法 | |
JP2012234401A (ja) | アプリケーション解析装置およびプログラム | |
CN112150136A (zh) | 一种应用中内嵌网页的支付方法、系统及装置 | |
CN104115117A (zh) | 用于安全性测试的单元测试的自动合成 | |
CN111163094B (zh) | 网络攻击检测方法、网络攻击检测装置、电子设备和介质 | |
Nguyen et al. | Detecting repackaged android applications using perceptual hashing | |
Gupta et al. | An infrastructure-based framework for the alleviation of JavaScript worms from OSN in mobile cloud platforms | |
CN106487793A (zh) | 应用安装方法及装置 | |
CN108647517B (zh) | 一种Android混合应用代码注入的漏洞检测系统及方法 | |
Kaur et al. | Spyware detection in android using hybridization of description analysis, permission mapping and interface analysis | |
CN106789973B (zh) | 页面的安全性检测方法及终端设备 | |
CN106250761A (zh) | 一种识别web自动化工具的设备、装置及方法 | |
CN106528422B (zh) | 一种检测Java程序页面扰动的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211223 Address after: 100191 No. 40, Haidian District, Beijing, Xueyuan Road Patentee after: CHINA ACADEMY OF INFORMATION AND COMMUNICATIONS Address before: 100191 No. 52 Garden North Road, Beijing, Haidian District Patentee before: CHINA ACADEME OF TELECOMMUNICATION RESEARCH OF MIIT |