一种基于截屏图片的重打包检测方法及系统与流程

文档序号:14480788阅读:358来源:国知局

本发明涉及信息安全技术领域,尤其涉及一种基于截屏图片的重打包检测方法及系统。



背景技术:

智能手机和平板电脑已经成为人们日常生活中不可或缺的一部分,而市场中基于安卓的移动设备占比已经超过80%。然而,基于安卓平台的移动设备的安全问题也愈发严重。由于第三方市场没有严格的app审查,导致安卓中的恶意软件大部分来自于第三方市场。并且经过调查,86%的恶意软件采用重打包技术,通过重打包技术,恶意软件开发者对正版安卓应用进行反编译,嵌入恶意代码或者修改部分代码。当用户下载安装这些重打包代码后,可能会遭遇恶意扣费、个人信息被窃取等恶意行为,进而对用户带来严重的经济损失。

目前的重打包检测方法主要通过对比重打包应用和正版安卓应用之间的相似性进行区分。而相似性计算又分为基于代码克隆检测的相似性检测方法和基于资源文件的相似性检测方法两种。

基于代码克隆的相似性检测方法,是通过反编译安卓应用中的可执行文件,例如droidmoss方法通过提取dalvik字节码中的操作码序列,使用模糊散列的方法对应用程序产生一个指纹签名并作为特征,通过比较应用程序指纹之间的编辑距离得到应用程序的相似度。从反编译出的dalvik字节码中提取静态的特征信息,但是droidmoss方法容易受到代码混淆的影响,通过交换代码顺序或者增添删除操作码都会导致应用程序的指纹发生改变从而导致检测方法失效;dnadroid方法通过比较应用的程序依赖图(pdg)来检测重打包应用,它利用程序的语义信息,检测准确率有所提高,但是基于程序的依赖图的检测方法执行效率不高,很难应用到大规模的重打包应用检测中。

基于文件的相似性检测方法,主要通过从安卓应用中提取出资源文件,包括xml布局文件、声音文件、图片文件等,以此生成应用特征。通过这些应用特征构造结构树或者哈希值,进行相似性计算。然而这种方法也需要反编译安卓应用,并且采用的聚合分类法的耗时长,不利于大规模检测,而且无法检测样本运行过程中动态加载的界面。



技术实现要素:

针对上述技术问题,本发明采用如下方法来实现:一种基于截屏图片的重打包检测方法,包括:

获取正版应用各界面的截屏图,形成第一图集;

获取待测应用各界面的截屏图,形成第二图集;

比较第二图集与第一图集的相似度,相似度满足一预设值时,判定为相似截屏图;

统计第二图集的相似截屏图数目,若相似截屏图数量超过一预设值,则获取待测应用和正版应用的认证信息并进行对比,若不匹配,则判定待测应用为重打包应用。

进一步的,所述待测应用和正版应用安装并运行于同一环境中。

进一步的,所述获取待测应用和正版应用各界面下的截屏图的方法为:

hook待测应用和正版应用的行为,使其具备界面跳转时自动截屏功能;

模拟操作所述待测应用和正版应用使得所有界面得到遍历,获取各界面下的截屏图;其中,所述模拟操作包括:模拟点击或者模拟输入。

进一步的,判断相似截屏图的方法包括:

采用感知哈希算法计算第二图集与第一图集中各截屏图的汉明距离,根据所述第二图集与第一图集的汉明距离是否小于一预设值来判定所述二个图集中的是否是相似截屏图。

进一步的,所述获取待测应用和正版应用的认证信息并进行对比,若不匹配,则判定待测应用为重打包应用,具体为:

从待测应用和正版应用的meta-inf目录中的cert.rsa文件中提取认证信息,并提取所述认证信息中的公钥信息;

若待测应用和正版应用的公钥信息不同,则判定待测应用为重打包应用。

本发明还公开了一种基于截屏图片的重打包检测系统,包括第一获取模、第二获取模块、重打包判定模块,其中:

第一获取模块,用于获取正版应用各界面的截屏图,形成第一图集;

第二获取模块,用于获取待测应用各界面的截屏图,形成第二图集;

重打包判定模块,用于比较第二图集与第一图集的相似度,相似度满足一预设值时,判定为相似截屏图;统计第二图集的相似截屏图数目,若相似截屏图数量超过一预设值,则获取待测应用和正版应用的认证信息并进行对比,若不匹配,则判定待测应用为重打包应用。

进一步的,所述待测应用和正版应用安装并运行于同一环境中。

进一步的,所述第一获取模块具体用于hook正版应用的行为,使其具备界面跳转时自动截屏功能,模拟操作所述正版应用使得界面发生跳转,获取各界面下的截屏图并形成第一图集;

所述第二获取模块具体用于hook待测应用的行为,使其具备界面跳转时自动截屏功能,模拟操作所述待测应用使得界面发生跳转,获取各界面下的截屏图并形成第二图集;其中,所述模拟操作包括:模拟点击或者模拟输入。

进一步的,所述重打包判定模块采用感知哈希算法计算第一图集与第二图集中各截屏图的相似度;判定第二图集相似截屏图数量是否超过一预设值。

进一步的,所述重打包判定模块还用于当第二图集相似截屏图数量超过一预设值时,从待测应用和正版应用的meta-inf目录中的cert.rsa文件中提取认证信息,并提取所述认证信息中的公钥信息;若待测应用和正版应用的公钥信息不同,则判定待测应用为重打包应用。

有益效果为:本发通过动态加载待测应用和正版应用,进而获取各应用在各界面下的截屏图,通过对比截屏图和认证信息,进而判定待测应用是否为重打包应用。本发明所述技术方案由于不依赖于反编译代码,因此不受各种混淆技术和加固技术的影响,适用性更强;通过动态加载的各界面,因此不受资源文件缺失的影响;基于大量的截屏图来初步判定是否为重打包应用,保证了检测结果的准确性。

附图说明

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

图1为本发明提供的一种基于截屏图片的重打包检测方法实施例1流程图;

图2为本发明提供的一种基于截屏图片的重打包检测系统实施例结构图。

具体实施方式

本发明给出了一种基于截屏图片的重打包检测方法及系统实施例,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。

本发明首先提供了一种基于截屏图片的重打包检测方法实施例1,如图1所示,包括:

s101:获取正版应用各界面的截屏图,形成第一图集。

其中,所述正版应用可以为利用爬虫技术从官方市场获取的正版应用。

s102:获取待测应用各界面的截屏图,形成第二图集。

通常,待测应用和正版应用安装并运行于同一环境中,具体为,对动态检测平台进行环境设定,包括但不限于:设备型号和屏幕分辨率,进而保证所有的应用在同一环境中安装并运行,进而保证后续检测判定的准确性。

s101-s102中,获取待测应用和正版应用各界面下的截屏图的方法可以有多种,本发明以以下方法为例:

hook待测应用和正版应用的行为,使其具备界面跳转时自动截屏功能。模拟操作所述待测应用和正版应用使得界面发生跳转,获取各界面下的截屏图。包括但不限于:使用动态注入技术,使得各应用在发生界面跳转后自动进行截屏操作,进而获取截屏图并保存。

其中,模拟操作包括:模拟点击或者模拟输入。模拟操作的目的在于使得各应用的界面发生跳转,进而获取应用在各界面下的截屏图,并且需要保证针对待测应用和正版应用间的模拟操作的一致性,进而提升最终检测判定的准确性。

s103:比较第二图集与第一图集的相似度,若相应的一对截屏图的相似度满足一预设值时,判定这一对截屏图为相似截屏图。

具体的,基于正版应用的名称和整体哈希值生成id;此处的id用于区别不同应用。利用感知哈希算法计算第二图集和第一图集所有截屏图的哈希值,若第二图集和第一图集的所有截屏图的哈希值的汉明距离低于一预设值,则判定这一对截屏图为相似截屏图。

s104:统计第二图集的相似截屏图数目,若相似截屏图数目超过一预设值,则获取待测应用和正版应用的认证信息并进行对比,若认证信息不匹配,则判定待测应用为重打包应用。

具体的,可以将所述截屏图转换为哈希值进行存储,不仅保证了检测资源损耗低,而且适用于大批量检测。

获取待测应用和正版应用的认证信息并进行对比的方法包括:从待测应用和正版应用的meta-inf目录中的cert.rsa文件中提取认证信息,并提取所述认证信息中的公钥信息。比较二者的公钥信息,若待测应用和正版应用的公钥信息不同,则判定待测应用为重打包应用。

本发明所述技术方案由于不依赖于反编译代码,因此不受各种混淆技术和加固技术的影响,适用性更强;上述技术方案能够检测动态加载的布局界面,因此不受资源文件缺失的影响;基于大量的截屏图来初步判定是否为重打包应用,进而保证了检测结果的准确性。

在另一些实施例中,如图2所示,一种基于截屏图片的重打包检测系统,包括:

第一获取模块201,用于获取正版应用各界面的截屏图,形成第一图集。例如hook正版应用的截屏行为;模拟操作所述正版应用使得界面发生跳转,获取各界面下的截屏图并形成第一图集。

第二获取模块202,用于获取待测应用各界面的截屏图,形成第二图集。例如hook待测应用的截屏行为;模拟操作所述待测应用使得界面发生跳转,获取各界面下的截屏图并形成第二图集;其中,模拟操作包括:模拟点击或者模拟输入。

重打包判定模块203,用于比较第二图集与第一图集的相似度,若相应的一对截屏图的相似度满足一预设值时,判定为相似截屏图;统计第二图集的相似截屏图数目,若相似截屏图数量超过一预设值,则获取待测应用和正版应用的认证信息并进行对比,若不匹配,则判定待测应用为重打包应用。

优选地,重打包判定模块203采用感知哈希算法计算第二图集与第一图集中各截屏图的汉明距离,根据所述第二图集与第一图集的汉明距离是否小于一预设值来判定所述二个图集中的是否是相似截屏图。

当第二图集相似截屏图数量超过一预设值时,重打包判定模块303从待测应用和正版应用的meta-inf目录中的cert.rsa文件中提取认证信息,并提取所述认证信息中的公钥信息;若待测应用和正版应用的公钥信息不同,则判定待测应用为重打包应用。

上述系统实施例中,所述待测应用和正版应用安装并运行于同一环境中,具体包括:对动态检测平台进行环境设定,包括但不限于:设备型号和屏幕分辨率;在设定的同一环境中安装并运行待测应用和正版应用。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

上述实施例给出了一种基于截屏图片的重打包检测方法及系统实施例,与传统重打包的检测方法不同,本发明不会受到应用加固或者代码混淆的影响,通过动态加载待测应用和正版应用,进而获取各应用在各界面下的截屏图,通过对比截屏图和认证信息,进而判定待测应用是否为重打包应用。由于本发明是通过动态加载的各界面的截屏图判断是否为重打包应用,因此不受资源文件缺失的影响,较比现有技术具备更大范围的适用性和较高的准确率。

以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1