一种对AndroidART运行时代码进行恶意代码检测的方法及系统的制作方法

文档序号:6525519阅读:202来源:国知局
一种对Android ART运行时代码进行恶意代码检测的方法及系统的制作方法
【专利摘要】本发明公开了一种对Android?ART运行时代码进行恶意代码检测的方法及系统,首先,对oat文件进行格式解析,提取oatheader,并获取oat文件的数据结构信息;针对所述oat文件,提取出oatdata数据段和oatexec数据段;基于所述oatheader和所述数据结构信息,从oatdata数据段中提取dex代码数据段,从oatexec数据段中提取thumb2指令代码数据段;对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,并输出检测结果。从而解决目前对于oat代码数据无法进行恶意代码有效检测的问题。
【专利说明】—种对Andro i d ART运行时代码进行恶意代码检测的方法及系统
【技术领域】
[0001]本发明涉及移动终端恶意代码检测【技术领域】,尤其涉及一种对Android ART运行时代码进行恶意代码检测的方法及系统。
【背景技术】
[0002]随着移动互联网的快速发展,智能移动终端操作系统平台也在快速的发展和不断的优化,目前Android系统已经从早期的1.6版本,逐步发展到目前最新的4.4的公开版本。
[0003]在Android 4.4的公开版本中,其引入了最新设计的运行时环境ART,并引入了一种新的程序代码执行格式和形态,被命名为oat文件。其为基于ELF文件格式的自定义文件格式。ART的出现,形成了一种全新的Android系统上的运行机制和代码数据存储机制,也同时形成了 一种全新的恶意代码数据形态。
[0004]目前常见的Android恶意代码检测方法,主要是针对Android上的Apk文件,dex文件,odex文件,常见的普通ELF文件进行检测来实现恶意代码检测。而随着Android ART的逐步推广,可能出现oat文件形态的恶意代码,目前的检测方法均无法进行有效的检测。同时若采用文件片段hash或是文件完整的hash的方法来对oat进行检测,则很难实现高效的启发式的检出能力,无法有效的控制规则的集合和质量。

【发明内容】

[0005]针对上述技术问题,本发明提供了一种对Android ART运行时代码进行恶意代码检测的方法及系统,该发明通过对oat文件进行格式解析,提取所需的数据段内容,利用恶意代码检测方法对其进行检测,并输出检测结果,该发明解决了目前的恶意代码检测方法对于oat无法检测的问题。
[0006]本发明采用如下方法来实现:一种对Android ART运行时代码进行恶意代码检测的方法,包括:
对oat文件进行格式解析,提取oat header,并获取oat文件的数据结构信息;
针对所述oat文件,提取出oatdata数据段和oatexec数据段;
基于所述oat header和所述数据结构信息,从oatdata数据段中提取dex代码数据段,从oatexec数据段中提取thumb2指令代码数据段;
对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,并输出检测结果。
[0007]进一步地,所述针对所述oat文件,提取出oatdata数据段和oatexec数据段为:针对所述oat文件,提取出oatdata数据段、oatexec数据段和oatlastword数据段。
[0008]进一步地,所述对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测为:对所述dex代码数据段、所述thumb2指令代码数据段和oatlastword数据段分别进行恶意代码检测。
[0009]进一步地,对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,输出检测结果包括:当其中之一检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者都检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者的检测结果满足设定条件时,则认为所述oat文件存在恶意代码。
[0010]其中,所述thumb2指令代码并不绝对,可以随着指令格式的变化,而获取其他指令格式的代码。
[0011]本发明采用如下系统来实现:一种对Android ART运行时代码进行恶意代码检测的系统,包括:
格式解析模块,用于对oat文件进行格式解析,提取oat header,并获取oat文件的数据结构信息;
第一数据提取模块,用于针对所述oat文件,提取出oatdata数据段和oatexec数据
段;
第二数据提取模块,用于基于所述oat header和所述数据结构信息,从oatdata数据段中提取dex代码数据段,从oatexec数据段中提取thumb2指令代码数据段;
检测模块,对所述dex代码数据段和所述thumb2指令代码数据段进行恶意代码检测,并输出检测结果。
[0012]其中,使用的恶意代码检测方法可以是现有的任何适用的检测方法。
[0013]进一步地,所述第一数据提取模块,用于针对所述oat文件,提取出oatdata数据段和oatexec数据段之外,还包括:提取出oatlastword数据段。
[0014]进一步地,所述检测模块,对所述dex代码数据段和所述thumb2指令代码数据段进行恶意代码检测,并输出检测结果,还包括:对所述oatlastword数据段进行恶意代码检测。
[0015]进一步地,对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,输出检测结果包括:当其中之一检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者都检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者的检测结果满足设定条件时,则认为所述oat文件存在恶意代码。
[0016]综上所述,本发明提供了一种对Android ART运行时代码进行恶意代码检测的方法及系统,本发明基于对oat文件的格式解析,获取oat header和文件的数据结构信息,并利用所述oat header和数据结构信息,提取oatdata数据段中的dex代码数据段,提取oatexec数据段中的thumb2指令代码数据段,并利用现有的恶意代码检测方法对所述dex代码数据段和所述thumb2指令代码数据段进行检测,并输出检测结果。该发明针对oat的文件结构的格式特点和原有的Android恶意代码检测技术,仓Il造性的解决了 Android ART运行时代码oat的恶意代码检测的方法,解决了当前并未有效针对oat进行恶意代码检测方法的问题。
【专利附图】

【附图说明】
[0017]为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本发明提供的对Android ART运行时代码进行恶意代码检测的方法流程图;
图2为本发明提供的对Android ART运行时代码进行恶意代码检测的系统结构图。【具体实施方式】
[0019]本发明给出了一种对Android ART运行时代码进行恶意代码检测的方法及系统,为了使本【技术领域】的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明:
本发明首先提供了一种对Android ART运行时代码进行恶意代码检测的方法,如图1所示,包括:
SlOl对oat文件进行格式解析,提取oat header,并获取oat文件的数据结构信息; S102针对所述oat文件,提取出oatdata数据段和oatexec数据段;
S103基于所述oat header和所述数据结构信息,从oatdata数据段中提取dex代码数据段,从oatexec数据段中提取thumb2指令代码数据段;
S104对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,并输出检测结果。
[0020]优选地,所述针对所述oat文件,提取出oatdata数据段和oatexec数据段为:针对所述oat文件,提取出oatdata数据段、oatexec数据段和oatlastword数据段。
[0021 ] 更为优选地,所述对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测为:对所述dex代码数据段、所述thumb2指令代码数据段和oatlastword数据段分别进行恶意代码检测。
[0022]优选地,对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,输出检测结果包括:当其中之一检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者都检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者的检测结果满足设定条件时,则认为所述oat文件存在恶意代码。
[0023]本发明还提供了一种对Android ART运行时代码进行恶意代码检测的系统,如图2所示,包括:
格式解析模块201,用于对oat文件进行格式解析,提取oat header,并获取oat文件的数据结构信息;
第一数据提取模块202,用于针对所述oat文件,提取出oatdata数据段和oatexec数据段;
第二数据提取模块203,用于基于所述oat header和所述数据结构信息,从oatdata数据段中提取dex代码数据段,从oatexec数据段中提取thumb2指令代码数据段;
检测模块204,对所述dex代码数据段和所述thumb2指令代码数据段进行恶意代码检测,并输出检测结果。
[0024]其中,使用的恶意代码检测方法可以是现有的任何适用的检测方法。
[0025]优选地,所述第一数据提取模块,用于针对所述oat文件,提取出oatdata数据段和oatexec数据段之外,还包括:提取出oatlastword数据段。
[0026]更为优选地,所述检测模块,对所述dex代码数据段和所述thumb2指令代码数据段进行恶意代码检测,并输出检测结果,还包括:对所述oatlastword数据段进行恶意代码检测。
[0027]优选地,对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,输出检测结果包括:当其中之一检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者都检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者的检测结果满足设定条件时,则认为所述oat文件存在恶意代码。
[0028]如上所述,本发明给出了一种对Android ART运行时代码进行恶意代码检测的方法及系统的具体实施例,目前,传统的针对移动终端的恶意代码检测方法主要是针对apk文件、dex文件或者odex文件等,并不存在针对ART运行时下的oat文件的检测方法。本发明基于oat文件的结构信息,获取oatdata数据段、oatexec数据段或者还有oatlastword数据段,并进一步提取重要数据信息进行检测,该方法可以克服传统检测方法的限制,有效检测ART运行时的oat文件下的恶意代码,并形成检出结果输出。
[0029]以上实施例用以说明而非限制本发明的技术方案。不脱离本发明精神和范围的任何修改或局部替换,均应涵盖在本发明的权利要求范围当中。
【权利要求】
1.一种对Android ART运行时代码进行恶意代码检测的方法,其特征在于,包括: 对oat文件进行格式解析,提取oat header,并获取oat文件的数据结构信息; 针对所述oat文件,提取出oatdata数据段和oatexec数据段; 基于所述oat header和所述数据结构信息,从oatdata数据段中提取dex代码数据段,从oatexec数据段中提取thumb2指令代码数据段; 对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,并输出检测结果。
2.如权利要求1所述的方法,其特征在于,所述针对所述oat文件,提取出oatdata数据段和oatexec数据段为:针对所述oat文件,提取出oatdata数据段、oatexec数据段和oatlastword 数据段。
3.如权利要求2所述的方法,其特征在于,所述对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测为:对所述dex代码数据段、所述thumb2指令代码数据段和oatlastword数据段分别进行恶意代码检测。
4.如权利要求1所述的方法,其特征在于,对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,并输出检测结果包括:当其中之一检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者都检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者的检测结果满足设定条件时,则认为所述oat文件存在恶意代码。
5.一种对Android ART运行时代码进行恶意代码检测的系统,其特征在于,包括: 格式解析模块,用于对oat文件进行格式解析,提取oat header,并获取oat文件的数据结构信息; 第一数据提取模块,用于针对所述oat文件,提取出oatdata数据段和oatexec数据段; 第二数据提取模块,用于基于所述oat header和所述数据结构信息,从oatdata数据段中提取dex代码数据段,从oatexec数据段中提取thumb2指令代码数据段; 检测模块,对所述dex代码数据段和所述thumb2指令代码数据段进行恶意代码检测,并输出检测结果。
6.如权利要求5所述的系统,其特征在于,所述第一数据提取模块,用于针对所述oat文件,提取出oatdata数据段和oatexec数据段之外,还包括:提取出oatlastword数据段。
7.如权利要求6所述的系统,其特征在于,所述检测模块,对所述dex代码数据段和所述thumb2指令代码数据段进行恶意代码检测,并输出检测结果,还包括:对所述oatlastword数据段进行恶意代码检测。
8.如权利要求5所述的系统,其特征在于,对所述dex代码数据段和所述thumb2指令代码数据段分别进行恶意代码检测,输出检测结果包括:当其中之一检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者都检出恶意代码,则认为所述oat文件存在恶意代码;或者当两者的检测结果满足设定条件时,则认为所述oat文件存在恶意代码。
【文档编号】G06F21/56GK103914654SQ201310725051
【公开日】2014年7月9日 申请日期:2013年12月25日 优先权日:2013年12月25日
【发明者】潘宣辰, 肖新光 申请人:武汉安天信息技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1