移动应用程序的特征提取方法技术

技术编号:21247542 阅读:25 留言:0更新日期:2019-06-01 07:43
本发明专利技术公开了一种移动应用程序的特征提取方法,包括:步骤1,提取函数调用图:利用提取工具提取所检测的移动应用程序的函数调用图;步骤2,对函数调用图编码:对所述函数调用图的各函数节点进行边遍历边编码形成各函数节点的编码向量;步骤3,提取特征信息:根据编码得到的函数调用图的各函数节点的编码向量提取所述移动应用程序的特征信息。该方法能快速、准确的提取移动应用程序的特征信息,通过特征信息能全面综合的刻画移动应用程序的行为特征,利用各移动应用程序的特征表示之间的距离能衡量各移动应用程序的行为差异,进而可以实现对移动应用程序功能分类、恶意应用检测、恶意应用家族分类以及应用版本/盗版检测等处理。

Feature extraction method for mobile applications

The invention discloses a feature extraction method for mobile application, which includes: step 1, extracting function call graph: extracting function call graph of detected mobile application by extracting tool; step 2, encoding function call graph: encoding each function node of the function call graph to form encoding vector of each function node by edge traversal and edge encoding; step 3, extracting feature Information: The feature information of the mobile application is extracted according to the coding vectors of each function node in the function call graph obtained by coding. This method can quickly and accurately extract the feature information of mobile applications. It can comprehensively characterize the behavior characteristics of mobile applications by feature information. Using the distance between the feature representations of mobile applications, it can measure the behavior differences of mobile applications. Furthermore, it can realize the classification of mobile applications'functions, malicious application detection and malicious application families. Classification and application version/piracy detection.

【技术实现步骤摘要】
移动应用程序的特征提取方法
本专利技术涉及移动应用的安全领域,尤其涉及一种移动应用程序的特征提取方法。
技术介绍
现如今,大量的移动应用程序(即运行于移动设备的应用程序)被开发为用户提供丰富的服务,这些服务涉及到新闻、天气、社交、娱乐以及医疗、健康、财务等与个人重要信息相关的关键事务。然而,移动应用程序在提供丰富的功能的同时,也带来了严峻的挑战。首先,面对数百万的移动应用程序,应用市场很难高效地组织和管理这些移动应用程序;其次,对移动应用程序的不精确刻画和描述,使得用户很难准确且快速地定位到自己感兴趣的应用;最后,一些开发者受利益驱使,开发恶意应用盗取用户信息,或剽窃他人开发的应用,破坏了开发者的知识产权。因此,对移动应用的行为进行深层次的理解和刻画显得至关重要。现有的移动应用程序行为分析工作可以分为以下几种方式:第一种方式是在源代码层面执行静态、动态或动静态结合的分析,这类分析模型通常负载较高,并且随着移动应用功能越来越复杂,一些应用难以进行有效且高效的分析。第二种方式是利用有监督的学习模型实现某个特定的分类任务,通过预定义特征(如权限、调用函数)或利用监督式学习模型(如循环神经网络、深度信念网络)提取特征,这种方式的局限是任务导向型,难以全面地刻画各式各样的移动应用程序的行为,不能同时实现上述多个任务。
技术实现思路
基于现有技术所存在的问题,本专利技术的目的是提供一种移动应用程序的特征提取方法,能快速准确的提取移动应用程序的特征,进而实现全面地检测各式各样的移动应用程序。本专利技术的目的是通过以下技术方案实现的:本专利技术实施方式提供一种移动应用程序的特征提取方法,包括:步骤1,提取函数调用图:利用提取工具提取所检测的移动应用程序的函数调用图;步骤2,对函数调用图编码:对所述函数调用图的各函数节点进行边遍历边编码形成各函数节点的编码向量;步骤3,提取特征信息:根据编码得到的函数调用图的各函数节点的编码向量提取所述移动应用程序的特征信息。由上述本专利技术提供的技术方案可以看出,本专利技术实施例提供的手机应用程序的特征提取方法,其有益效果为:该方法通过先提取函数调用图,再对函数调用图编码后得到的编码向量为依据,从中能一次提取得到移动应用程序的特征信息,该特征信息能实现各种各样的移动应用程序的行为分析任务,如:移动应用功能分类、恶意应用检测、恶意应用家族分类以及应用版本/盗版检测,即能够全面地刻画移动应用的行为。该方法由于对函数调用图进行编码再提取特征信息,提取的移动应用程序的特征信息紧凑,存储开销小,且移动应用程序的特征信息通用性强,可以应用到各种任务场景;移动应用程序的特征信息提取过程简洁高效;移动应用程序的特征信息的鲁棒性强,普适性好,应用前景广泛。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本专利技术实施例提供的移动应用程序的特征提取方法的流程图;图2为本专利技术实施例提供的移动应用程序的特征提取方法的状态示意图。具体实施方式下面结合本专利技术的具体内容,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术的保护范围。本专利技术实施例中未作详细描述的内容属于本领域专业技术人员公知的现有技术。如图1、2所示,本专利技术实施例提供一种移动应用程序的特征提取方法,包括:步骤1,提取函数调用图:利用提取工具提取所检测的移动应用程序的函数调用图;步骤2,对函数调用图编码:对所述函数调用图的各函数节点进行边遍历边编码形成各函数节点的编码向量;步骤3,提取特征信息:根据编码得到的函数调用图的各函数节点的编码向量提取所述移动应用程序的特征信息。上述方法中,提取所检测的移动应用程序的函数调用图所用的提取工具采用:Soot和FlowDroid。上述方法的步骤2中,对所述函数调用图的各函数节点进行边遍历边编码形成各函数节点的编码向量为:从所述函数调用图的函数根节点对该函数调用图的全部函数节点进行深度或广度遍历,生成各函数节点对应的编码向量。上述的遍历过程中,当一个函数节点拥有多个后继函数节点时,对该函数节点的多个后继函数节点先排序后,再按所排顺序进行遍历,对多个后继函数节点的排序方式包括:步骤21,多个后继函数节点中,每个后继函数节点对应一个用户自定义函数或一个系统函数,若后继函数节点对应的是一个用户自定义函数,则获取该用户自定义函数调用的系统函数签名及系统函数的调用个数;若后继函数节点对应的是一个系统函数,则获取该后继函数节点中调用的系统函数签名及对应系统函数的调用个数,并设该后继函数节点对应的用户自定义函数名称为当前函数节点;步骤22,根据每个用户自定义函数调用的系统函数签名及系统函数的调用个数为每个用户自定义函数计算出一个排序值,并按照每个用户自定义函数的排序值从大到小排列对全部的用户自定义函数排序,即完成对多个后继函数节点的排序。上述步骤22中,根据每个用户自定义函数调用的系统函数签名及其调用个数为每个用户自定义函数计算出一个排序值的步骤如下:步骤221,建立调用的所有系统函数的索引值:根据待排序的用户自定义函数调用的系统函数签名,获取该待排序的用户自定义函数调用的所有系统函数,并按照字母序从小到大排序所有的系统函数,使所调用的每个系统函数都具有一个唯一的索引值;步骤222,确定每个系统函数对该待排序的用户自定义函数的贡献值:确定该待排序的用户自定义函数所调用的每个系统函数对该用户自定义函数的贡献值,该贡献值等于:每个系统函数的索引值×(该系统函数被该待排序的用户自定义函数调用的个数/调用个数的最大值);步骤223,所述待排序的用户自定义函数的排序值等于其调用的所有系统函数的贡献值之和。上述方法中,生成各函数节点对应的编码向量包括:遍历一个函数节点时,将该函数节点所代表的应用程序的行为信息编码成一个子向量,将该子向量与已经遍历得到的其他子向量按遍历顺序顺次拼接成一个编码向量;上述方法中,遍历一个函数节点时,将该函数节点所代表的应用程序的行为信息编码成一个子向量为:步骤231,获取所遍历函数节点对应的用户自定义函数所调用的系统函数的集合;步骤232,对所调用的系统函数按其所在的系统包进行分组,使每个分组的系统函数所在的系统包均相同;步骤233,每个分组内的系统函数按字母序从小到大拼接成一个字符串,各分组之间按照系统包名的字母序从小到大排序;步骤234,对每组的系统函数组成的字符串进行哈希编码,并将所有分组经哈希编码得到的值拼接得到该用户自定义函数的编码向量。上述方法步骤3中,根据编码得到的函数调用图的各函数节点的编码向量提取所述移动应用程序的特征信息为:用无监督的深度神经网络-自动编码器从得到的函数调用图的各函数节点的编码向量中提取紧凑的移动应用程序的特征信息。上述的无监督的深度神经网络-自动编码器中,编码层采用两层全连接层和两层最大池化层,两层最大池化层分别跟在全连接层后;上述的无本文档来自技高网...

【技术保护点】
1.一种移动应用程序的特征提取方法,其特征在于,包括:步骤1,提取函数调用图:利用提取工具提取所检测的移动应用程序的函数调用图;步骤2,对函数调用图编码:对所述函数调用图的各函数节点进行边遍历边编码形成各函数节点的编码向量;步骤3,提取特征信息:根据编码得到的函数调用图的各函数节点的编码向量提取所述移动应用程序的特征信息。

【技术特征摘要】
1.一种移动应用程序的特征提取方法,其特征在于,包括:步骤1,提取函数调用图:利用提取工具提取所检测的移动应用程序的函数调用图;步骤2,对函数调用图编码:对所述函数调用图的各函数节点进行边遍历边编码形成各函数节点的编码向量;步骤3,提取特征信息:根据编码得到的函数调用图的各函数节点的编码向量提取所述移动应用程序的特征信息。2.根据权利要求1所述的移动应用程序的特征提取方法,其特征在于,所述方法中,提取所检测的移动应用程序的函数调用图所用的提取工具采用:Soot和FlowDroid。3.根据权利要求1所述的移动应用程序的特征提取方法,其特征在于,所述方法的步骤2中,对所述函数调用图的各函数节点进行边遍历边编码形成各函数节点的编码向量为:从所述函数调用图的函数根节点对该函数调用图的全部函数节点进行深度或广度遍历,生成各函数节点对应的编码向量。4.根据权利要求3所述的移动应用程序的特征提取方法,其特征在于,所述遍历过程中,当一个函数节点拥有多个后继函数节点时,对该函数节点的多个后继函数节点先排序后,再按所排顺序进行遍历,对多个后继函数节点的排序方式包括:步骤21,多个后继函数节点中,每个后继函数节点对应一个用户自定义函数或一个系统函数,若后继函数节点对应的是一个用户自定义函数,则获取该用户自定义函数调用的系统函数签名及系统函数的调用个数;若后继函数节点对应的是一个系统函数,则获取该后继函数节点中调用的系统函数签名及对应系统函数的调用个数,并设该后继函数节点对应的用户自定义函数名称为当前函数节点;步骤22,根据每个用户自定义函数调用的系统函数签名及其调用个数为每个用户自定义函数计算出一个排序值,并按照每个用户自定义函数的排序值从大到小排列对全部的用户自定义函数排序,即完成对多个后继函数节点的排序。5.根据权利要求4所述的移动应用程序的特征提取方法,其特征在于,所述步骤22中,根据每个用户自定义函数调用的系统函数签名及其调用个数为每个用户自定义函数计算出一个排序值的步骤如下:步骤221,建立调用的所有系统函数的索引值:根据待排序的用户自定义函数调用的系统函数签名,获取该待排序的用户自定义函数调用的所有系统函数,并按照字母序从小到大排序所有的系统...

【专利技术属性】
技术研发人员:李向阳薛爽爽李安然张兰
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

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

1