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

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

Info

Publication number
CN105389508A
CN105389508A CN201510762244.8A CN201510762244A CN105389508A CN 105389508 A CN105389508 A CN 105389508A CN 201510762244 A CN201510762244 A CN 201510762244A CN 105389508 A CN105389508 A CN 105389508A
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.)
Granted
Application number
CN201510762244.8A
Other languages
English (en)
Other versions
CN105389508B (zh
Inventor
焦四辈
杨正军
落红卫
孙龙
李媛
詹维骁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Academy of Information and Communications Technology CAICT
Original Assignee
China Academy of Telecommunications Research CATR
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Academy of Telecommunications Research CATR filed Critical China Academy of Telecommunications Research CATR
Priority to CN201510762244.8A priority Critical patent/CN105389508B/zh
Publication of CN105389508A publication Critical patent/CN105389508A/zh
Application granted granted Critical
Publication of CN105389508B publication Critical patent/CN105389508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test 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)的种类、数量也越来越多。然而,安卓移动智能终端的安全问题也随之愈发严重。因为当前在移动互联网中存在大量被重打包的恶意应用。安卓重打包应用的主要传播途径是第三方应用市场,主要传播技术是重打包嵌入恶意代码。恶意代码开发者对正版安卓应用进行反编译后,嵌入恶意代码或者修改部分代码后,重新打包发布到第三方市场进行传播扩散。嵌入恶意代码的重打包应用会进行恶意扣费、窃取信息等恶意行为;修改代码的重打包应用会截取开发商的广告收益,为自己谋利。重打包应用已经形成了完整的黑色产业链条,给智能终端用户和开发者带来了严重的经济损失。
由于重打包的应用与正版安卓应用具有较高的相似度,一般可以应用相似性计算方法来区分。而当前基于相似性计算的方法主要分为基于可执行代码的相似性检测方法和基于文件的相似性方法两种。
基于可执行代码的相似性检测方法,是从安卓应用的可执行字节码中进行反编译,提取特征,包括应用程序编程接口(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、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

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值是否不同。
CN201510762244.8A 2015-11-10 2015-11-10 一种安卓重打包应用的检测方法及装置 Active CN105389508B (zh)

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 true CN105389508A (zh) 2016-03-09
CN105389508B 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)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105825085A (zh) * 2016-03-16 2016-08-03 广州彩瞳网络技术有限公司 应用程序的处理方法及装置
CN105893848A (zh) * 2016-04-27 2016-08-24 南京邮电大学 一种基于代码行为相似度匹配的Android恶意应用程序防范方法
CN106445513A (zh) * 2016-09-12 2017-02-22 中山大学 一种基于移动应用界面元素的相似性计算方法
CN107315951A (zh) * 2016-04-26 2017-11-03 腾讯科技(深圳)有限公司 一种程序安装包反拦截方法及装置
CN109542456A (zh) * 2017-08-15 2019-03-29 中兴通讯股份有限公司 一种应用相似度的获得方法、装置及终端
CN109858249A (zh) * 2019-02-18 2019-06-07 暨南大学 移动恶意软件大数据的快速智能比对和安全检测方法
CN109933976A (zh) * 2017-12-15 2019-06-25 深圳Tcl工业研究院有限公司 一种安卓应用相似性检测方法、移动终端及存储装置
CN110019895A (zh) * 2017-07-27 2019-07-16 杭州海康威视数字技术股份有限公司 一种图像检索方法、装置及电子设备
CN110175045A (zh) * 2019-05-20 2019-08-27 北京邮电大学 安卓应用程序重打包数据处理方法及装置
CN113641964A (zh) * 2021-10-19 2021-11-12 北京邮电大学 重打包应用检测方法、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324872A (zh) * 2013-07-12 2013-09-25 上海交通大学 基于指令混淆的Android应用程序保护方法及系统
CN103473104A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于关键词上下文频率矩阵的应用重打包辨别方法
CN103473069A (zh) * 2013-09-24 2013-12-25 北京大学 利用Android系统API的访问代价模型优化移动应用程序的方法
CN103473346A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于应用程序编程接口的安卓重打包应用检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324872A (zh) * 2013-07-12 2013-09-25 上海交通大学 基于指令混淆的Android应用程序保护方法及系统
CN103473104A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于关键词上下文频率矩阵的应用重打包辨别方法
CN103473069A (zh) * 2013-09-24 2013-12-25 北京大学 利用Android系统API的访问代价模型优化移动应用程序的方法
CN103473346A (zh) * 2013-09-24 2013-12-25 北京大学 一种基于应用程序编程接口的安卓重打包应用检测方法

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105825085B (zh) * 2016-03-16 2019-02-15 广州优视网络科技有限公司 应用程序的处理方法及装置
CN105825085A (zh) * 2016-03-16 2016-08-03 广州彩瞳网络技术有限公司 应用程序的处理方法及装置
CN107315951B (zh) * 2016-04-26 2021-04-30 腾讯科技(深圳)有限公司 一种程序安装包反拦截方法及装置
CN107315951A (zh) * 2016-04-26 2017-11-03 腾讯科技(深圳)有限公司 一种程序安装包反拦截方法及装置
CN105893848A (zh) * 2016-04-27 2016-08-24 南京邮电大学 一种基于代码行为相似度匹配的Android恶意应用程序防范方法
CN106445513A (zh) * 2016-09-12 2017-02-22 中山大学 一种基于移动应用界面元素的相似性计算方法
CN110019895A (zh) * 2017-07-27 2019-07-16 杭州海康威视数字技术股份有限公司 一种图像检索方法、装置及电子设备
CN109542456A (zh) * 2017-08-15 2019-03-29 中兴通讯股份有限公司 一种应用相似度的获得方法、装置及终端
CN109933976A (zh) * 2017-12-15 2019-06-25 深圳Tcl工业研究院有限公司 一种安卓应用相似性检测方法、移动终端及存储装置
CN109933976B (zh) * 2017-12-15 2023-05-09 深圳Tcl工业研究院有限公司 一种安卓应用相似性检测方法、移动终端及存储装置
CN109858249A (zh) * 2019-02-18 2019-06-07 暨南大学 移动恶意软件大数据的快速智能比对和安全检测方法
CN109858249B (zh) * 2019-02-18 2020-08-07 暨南大学 移动恶意软件大数据的快速智能比对和安全检测方法
CN110175045A (zh) * 2019-05-20 2019-08-27 北京邮电大学 安卓应用程序重打包数据处理方法及装置
CN113641964A (zh) * 2021-10-19 2021-11-12 北京邮电大学 重打包应用检测方法、电子设备及存储介质
CN113641964B (zh) * 2021-10-19 2022-05-17 北京邮电大学 重打包应用检测方法、电子设备及存储介质

Also Published As

Publication number Publication date
CN105389508B (zh) 2018-02-16

Similar Documents

Publication Publication Date Title
CN105389508A (zh) 一种安卓重打包应用的检测方法及装置
Ma et al. Libradar: Fast and accurate detection of third-party libraries in android apps
Sun et al. Detecting code reuse in android applications using component-based control flow graph
US9824212B2 (en) Method and system for recognizing advertisement plug-ins
TWI461953B (zh) 運算環境安全方法和電子運算系統
KR101720686B1 (ko) 시각화 유사도 기반 악성 어플리케이션 감지 장치 및 감지 방법
CN106845223B (zh) 用于检测恶意代码的方法和装置
TWI541669B (zh) Detection systems and methods for static detection applications, and computer program products
CN104102880A (zh) 一种检测Android权限提升攻击的应用程序重写方法和系统
CN103839005A (zh) 移动操作系统的恶意软件检测方法和恶意软件检测系统
CN111163094B (zh) 网络攻击检测方法、网络攻击检测装置、电子设备和介质
JP2012234401A (ja) アプリケーション解析装置およびプログラム
Nguyen et al. Detecting repackaged android applications using perceptual hashing
CN107103243B (zh) 漏洞的检测方法及装置
CN103390129B (zh) 检测统一资源定位符安全性的方法和装置
KR101324691B1 (ko) 모바일 악성 행위 어플리케이션 탐지 시스템 및 방법
Jiao et al. A rapid and scalable method for android application repackaging detection
CN104915596A (zh) apk病毒特征库构建方法、装置及apk病毒检测系统
US10554682B2 (en) Detecting and removing injected elements from content interfaces
Niu et al. Clone analysis and detection in android applications
CN109165512A (zh) 一种应用程序的意图协议url漏洞检测方法及装置
Kim et al. Detecting illegally-copied apps on android devices
Khanmohammadi et al. Understanding the service life cycle of Android apps: An exploratory study
KR101600178B1 (ko) 불법 복제 애플리케이션 탐지 방법 및 장치
CN112199731A (zh) 一种数据处理方法、装置及设备

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