移动恶意程序相似模块提取方法技术

技术编号:24409005 阅读:42 留言:0更新日期:2020-06-06 08:20
本申请公开了一种移动恶意程序相似模块提取方法,该方法包括:获取第一应用程序和第二应用程序;将第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将第二应用程序去除非关键函数,以得到第二关键函数调用图;计算第一关键函数调用图和第二关键函数调用图的相似度;若相似度大于设定阈值,则确定第一应用程序和第二应用程序为同类型恶意应用程序。通过上述方式,增加恶意应用程序同源性判断的准确性,以此来提高计算和分类的速度,极大地减少分类时间。

Extraction of similar modules of mobile malware

【技术实现步骤摘要】
移动恶意程序相似模块提取方法
本申请涉及软件工程
,特别是涉及一种移动恶意程序相似模块提取方法。
技术介绍
不同的终端设备均具有操作系统,每个操作系统里均有不同类型的应用程序。随着移动互联网的发展,恶意应用程序数目与日俱增。以安卓系统为例,攻击者通过工具可方便的对非恶意应用程序解压缩,修改应用程序内容,如注入恶意代码,将应用程序图标修改为具有诱惑性的图片,修改完成后,重新打包并伪装成正常应用程序上传到各大应用市场。并且攻击者为了扩大攻击面,会批量向多种应用程序进行相似的恶意操作,导致多种应用程序之间具有许多相似的代码段。一旦用户运行恶意程序,根据攻击者意图,恶意代码可能会悄悄收集用户信息到服务器,直接锁定手机屏幕进行钱财勒索,恶意消耗手机资源进行挖矿等行为或者发送恶意短信进行扣费。安卓恶意软件不仅造成用户个人隐私信息的泄露,也给用户带来经济上的巨大损失,减缓安卓恶意软件对用户的攻击迫在眉睫。
技术实现思路
为了解决上述问题,本申请提供一种移动恶意程序相似模块提取方法,增加恶意应用程序同源性判断的准确性,以此来提高计算和分类的速度,极大地减少分类时间。本申请采用的一种技术方案是提供一种移动恶意程序相似模块提取方法,该方法包括:获取第一应用程序和第二应用程序;将第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将第二应用程序去除非关键函数,以得到第二关键函数调用图;计算第一关键函数调用图和第二关键函数调用图的相似度;若相似度大于设定阈值,则确定第一应用程序和第二应用程序为同类型恶意应用程序。其中,将第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将第二应用程序去除非关键函数,以得到第二关键函数调用图之前,还包括:将第一应用程序进行反编译,以得到反编译后的第一代码,以及将第二应用程序进行反编译,以得到反编译后的第二代码;获取第一代码中的所有应用程序接口,以得到第一函数调用图,以及获取第二代码中的所有应用程序接口,以得到第二函数调用图。其中,获取第一代码中的所有应用程序接口,以得到第一函数调用图,以及获取第二代码中的所有应用程序接口,以得到第二函数调用图之前,包括:对第一代码进行符号执行,移除第一代码中的第一无效代码;对第二代码进行符号执行,移除第二代码中的第二无效代码。其中,该方法还包括:对第一函数调用图中的函数设置标志值;对第二函数调用图中的函数设置标志值。其中,将第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将第二应用程序去除非关键函数,以得到第二关键函数调用图,包括:根据第一函数调用图中的函数标志值,判断第一函数调用图中的函数是否为关键函数,以及根据第二函数调用图中的函数标志值,判断第二函数调用图中的函数是否为关键函数;若是,则去除第一函数调用图中的所有非关键函数,以得到第一关键函数,以及去除第二函数调用图中的所有非关键函数,以得到第二关键函数;将第一关键函数和第二关键函数进行哈希处理,以分别得到第一关键函数调用图和第二关键函数调用图。其中,计算第一关键函数调用图和第二关键函数调用图的相似度,包括:将第一关键函数调用图转变为第一矩阵,将第二关键函数调用图转变为第二矩阵;计算第一矩阵与第二矩阵的相似度。其中,计算第一矩阵与第二矩阵的相似度之前,还包括:基于第一矩阵和第二矩阵建立共有矩阵;判断共有矩阵是否为空;若否,则计算第一矩阵与第二矩阵的相似度。其中,第一应用程序为待测应用程序,第二应用程序为已知的恶意应用程序;若相似度大于设定阈值,则确定第一应用程序和第二应用程序为同类型恶意应用程序,包括:若相似度大于设定阈值,则确定待测应用程序为与已知的恶意应用程序类型相同的恶意应用程序。其中,若相似度大于设定阈值,则确定待测应用程序为与所述已知的恶意应用程序类型相同的恶意应用程序,包括:若相似度大于设定阈值,则将待检测应用程序与另一已知的恶意应用程序进行相似度比对;若相似度比对结果大于设定阈值,则确定待测应用程序为与已知的恶意应用程序类型相同的恶意应用程序;其中,另一已知的恶意应用程序和已知的恶意应用程序属于类型相同的恶意应用程序。其中,该方法还包括:获取第三应用程序;将所述第三应用程序去除非关键函数,以得到第三关键函数调用图;将所述第三关键函数调用图中的函数与预设函数库中的第一预设函数进行匹配;若匹配成功,则获取与所述第一预设函数相关联的应用程序库;计算所述第三关键函数调用图与所述应用程序库中的第四应用程序的第四关键函数调用图的相似度;若所述相似度大于设定阈值,则确定所述第三应用程序和所述第四应用程序为同类型恶意应用程序。本申请采用的另一种技术方案是提供一种终端设备,该终端设备包括处理器以及与处理器耦接的存储器;其中,存储器用于存储程序数据,程序数据在被处理器执行时,用于实现上述移动恶意程序相似模块提取方法。本申请采用的另一种技术方案是提供一种计算机存储介质,该计算机存储介质用于存储程序数据,程序数据在被处理器执行时,用于实现上述移动恶意程序相似模块提取方法。本申请的有益效果是:区别于现有技术的情况,本申请的一种移动恶意程序相似模块提取方法,该方法包括:获取第一应用程序和第二应用程序;将第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将第二应用程序去除非关键函数,以得到第二关键函数调用图;计算第一关键函数调用图和第二关键函数调用图的相似度;若相似度大于设定阈值,则确定第一应用程序和第二应用程序为同类型恶意应用程序。通过上述方式,提取两个应用程序中的关键函数并进行相似度计算,判定两个或者多个应用程序的相似性,增加恶意应用程序同源性判断的准确性,略去非关键函数的比较,以此来提高计算和分类的速度,极大地减少分类时间。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:图1是本申请提供的移动恶意程序相似模块提取方法第一实施例的流程示意图;图2是本申请提供的移动恶意程序相似模块提取方法第二实施例的流程示意图;图3是本申请提供的移动恶意程序相似模块提取方法第三实施例的流程示意图;图4是本申请提供的移动恶意程序相似模块提取方法第四实施例的流程示意图;图5是本申请提供的移动恶意程序相似模块提取方法第五实施例的流程示意图;图6是本申请提供的移动恶意程序相似模块提取方法第六实施例的流程示意图;图7是本申请提供的移动恶意程序相似模块提取方法第七实施例的流程示意图;图8是本申请提供的终端设备一实施例的结构示意图;图9是本申请提供的计算机存储介质一实施例的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。可以理解的是,此处所描述的具体实施例仅本文档来自技高网...

【技术保护点】
1.一种移动恶意程序相似模块提取方法,其特征在于,所述方法包括:/n获取第一应用程序和第二应用程序;/n将所述第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将所述第二应用程序去除非关键函数,以得到第二关键函数调用图;/n计算所述第一关键函数调用图和所述第二关键函数调用图的相似度;/n若所述相似度大于设定阈值,则确定所述第一应用程序和所述第二应用程序为同类型恶意应用程序。/n

【技术特征摘要】
1.一种移动恶意程序相似模块提取方法,其特征在于,所述方法包括:
获取第一应用程序和第二应用程序;
将所述第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将所述第二应用程序去除非关键函数,以得到第二关键函数调用图;
计算所述第一关键函数调用图和所述第二关键函数调用图的相似度;
若所述相似度大于设定阈值,则确定所述第一应用程序和所述第二应用程序为同类型恶意应用程序。


2.根据权利要求1所述的方法,其特征在于,
所述将所述第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将所述第二应用程序去除非关键函数,以得到第二关键函数调用图之前,还包括:
将所述第一应用程序进行反编译,以得到反编译后的第一代码,以及将所述第二应用程序进行反编译,以得到反编译后的第二代码;
获取所述第一代码中的所有应用程序接口,以得到第一函数调用图,以及获取所述第二代码中的所有应用程序接口,以得到第二函数调用图。


3.根据权利要求2所述的方法,其特征在于,
所述获取所述第一代码中的所有应用程序接口,以得到第一函数调用图,以及获取所述第二代码中的所有应用程序接口,以得到第二函数调用图之前,包括:
对所述第一代码进行符号执行,移除所述第一代码中的第一无效代码;
对所述第二代码进行符号执行,移除所述第二代码中的第二无效代码。


4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对所述第一函数调用图中的函数设置标志值;
对所述第二函数调用图中的函数设置标志值。


5.根据权利要求3所述的方法,其特征在于,
所述将所述第一应用程序去除非关键函数,以得到第一关键函数调用图,以及将所述第二应用程序去除非关键函数,以得到第二关键函数调用图,包括:
根据所述第一函数调用图中的函数标志值,判断所述第一函数调用图中的函数是否为关键函数,以及根据所述第二函数调用图中的函数标志值,判断所述第二函数调用图中的函数是否为关键函数;
若是,则去除所述第一函数调用图中的所有非关键函数,以得到第一关键函数,以及去除所述第二函数调用图中的所有非关键函数,以得到第二关键函数;
将所述第一关键函数和第二关键函数进行哈希处理,以分别得到所述第一关键函数调用图和所述第二关键函数调用图。


6.根据权利要求1所述的方法,其特征在于,
所述计算所述第一关键函数调用图和所述第二关键函数调用图的相似...

【专利技术属性】
技术研发人员:李正强陈会姜青山
申请(专利权)人:中国科学院深圳先进技术研究院
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1