CN103268445B - 一种基于OpCode的android恶意代码检测方法及系统 - Google Patents

一种基于OpCode的android恶意代码检测方法及系统 Download PDF

Info

Publication number
CN103268445B
CN103268445B CN201210580586.4A CN201210580586A CN103268445B CN 103268445 B CN103268445 B CN 103268445B CN 201210580586 A CN201210580586 A CN 201210580586A CN 103268445 B CN103268445 B CN 103268445B
Authority
CN
China
Prior art keywords
code
data
segment
opcode
condition
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.)
Active
Application number
CN201210580586.4A
Other languages
English (en)
Other versions
CN103268445A (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.)
Wuhan Antian Information Technology Co Ltd
Original Assignee
Wuhan Antian Information Technology Co Ltd
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 Wuhan Antian Information Technology Co Ltd filed Critical Wuhan Antian Information Technology Co Ltd
Priority to CN201210580586.4A priority Critical patent/CN103268445B/zh
Publication of CN103268445A publication Critical patent/CN103268445A/zh
Application granted granted Critical
Publication of CN103268445B publication Critical patent/CN103268445B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种基于OpCode的android恶意代码检测方法及系统,所述方法包括:对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;计算OP段数据的特征码,和/或OP段数据及index段对应数据的特征码,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若特征码匹配成功,且特征类型一致,则输出恶意代码名称。本发明的方法和系统通过对dex可执行文件中指令码的OP段进行检测,由于OP部分相对稳定,不随文件中其他数据变化,因此抗变性好,对移动终端恶意代码的检测更准确高效。

Description

一种基于OpCode的android恶意代码检测方法及系统
技术领域
本发明涉及移动终端恶意代码检测领域,特别涉及一种基于OpCode的android恶意代码检测方法及系统。
背景技术
随着移动互联网的发展和智能手机的大范围使用,恶意代码对智能手机的系统安全及信息安全的威胁也日益增加。恶意代码层出不穷,虽然各种恶意代码的检测技术也在不断的发展,但是总是在检测效率和有效性上还有很大的提升空间。一方面,手机恶意代码主要是通过嵌入正常手机应用软件的方式,来诱骗用户下载安装,其欺骗隐藏技术使得普通用户往往很难察觉,另一方面,手机往往缺乏合格的信息保护机制。
目前安全厂商都在积极探索研究手机恶意代码的检测方法。对于手机恶意代码的检测,目前主要有以下几种方法和策略。
第一种方法是通过直接对软件安装包APK文件进行解压缩,对其中的完整数据进行读取并计算出完整文件数据的特征值,然后将该特征值作为特征对手机恶意代码进行检测。缺点在于抗变化和抗混淆能力很差。由于是对安装包的完整文件数据进行HASH校验计算,那么当安装包中的某一个文件发生任意字节的变化时,会导致整个文件的特征值发生变化,进而导致手机恶意代码无法被检出。
第二种方法是通过对软件安装包中的部分数据进行特征值检测,是将软件安装包中的特定偏移位置和特定长度的数据进行特征值计算,然后将该特征值作为特征对手机恶意代码进行检测。但是由于是对软件安装包的特定部分的数据来进行特征值计算,比如可以通过获取APK安装包中尾部的文件列表信息节、APK安装包中相关的文件名称或路径信息来计算特征值并进行检测。但是安装包中往往存在多个文件,文件在软件安装包中的存储顺序,结构信息和路径信息都是会产生变化的,因此本方法对文件名混淆和文件名变化不具备抵抗能力。
现在还有一种方法就是利用手机安装包中的可执行文件Dex中data部分来进行代码检测。其中,data部分中记录的是Dex的所有二进制代码,称为opcode代码。由于Dex中的data部分是由各种函数的代码片段离散构成,不具有连续性。其在每次编译和生成都会发生变化,因此采用data的片段的检测也难以达到较好的检测目的。
发明内容
本发明提供一种基于OpCode的android恶意代码检测方法及系统,解决了现有技术中由于文件信息变化导致无法检测出恶意代码的问题,具有更准确的检测效果。
一种基于OpCode的android恶意代码检测方法,包括:
对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;
对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;
计算OP段数据的特征码,并标记特征类型为CF类型,和/或OP段数据及index段对应数据的特征码,并标记特征类型为CDF类型,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若任一特征码匹配成功,且特征类型一致,则输出恶意代码名称;所述恶意代码特征库为已知恶意代码的特征集合,所述恶意代码特征库中至少包括:特征类型、特征码、特征码长度及对应的恶意代码名称。
所述的方法中,所述的特征码为OP段数据和/或OP段数据及index段对应数据的哈希值。
所述的方法中,对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容具体为:
解析dex文件头信息,识别所有结构体;
按类遍历class_defs结构体及各类中的函数,构建类信息数组,每个数组数据节点分别保存类名、类中函数个数及类中函数信息数组,每个函数信息数组节点分别保存函数名、函数原型、函数对应OpCode代码段及代码段长度。
所述的方法中,所述的对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据为:判断OpCode代码段中OP段数据,若OP段数据大于0x6e且小于0x78,或等于0x1a,则获取当前OpCode代码段中index段对应数据,并记录OP段数据及index段对应数据,并存储在对应函数信息数组中。
所述的方法中,计算OP段数据的特征码并标记为CF类型,和/或OP段数据及index段对应数据的特征码并标记为CDF类型为:遍历全部类信息数组中各函数信息数组中记录的OP段数据及index段对应数据,按照预设拼接条件拼接OP段数据,并计算特征码,和/或按照预设拼接条件拼接OP段数据及index段对应数据,并计算特征码。
所述的方法中,预设拼接条件至少包括:按函数拼接或按类拼接。
一种基于OpCode的android恶意代码检测系统,包括:
格式解析模块,用于对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;
反汇编模块,用于对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;
计算模块,用于计算OP段数据的特征码,并标记特征类型为CF类型,和/或OP段数据及index段对应数据的特征码,并标记特征类型为CDF类型,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若任一特征码匹配成功,且特征类型一致,则输出恶意代码名称;所述恶意代码特征库为已知恶意代码的特征集合,所述恶意代码特征库中至少包括:特征类型、特征码、特征码长度及对应的恶意代码名称。
所述的系统中,所述的特征码为OP段数据和/或OP段数据及index段对应数据的哈希值。
所述的系统中,格式解析模块对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容具体为:
解析dex文件头信息,识别所有结构体;
按类遍历class_defs结构体及各类中的函数,构建类信息数组,每个数组数据节点分别保存类名、类中函数个数及类中函数信息数组,每个函数信息数组节点分别保存函数名、函数原型、函数对应OpCode代码段及代码段长度。
所述的系统中,所述的反汇编模块对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据为:判断OpCode代码段中OP段数据,若OP段数据大于0x6e且小于0x78,或等于0x1a,则获取当前OpCode代码段中index段对应数据,并记录OP段数据及index段对应数据,并存储在对应函数信息数组中。
所述的系统中,计算模块计算OP段数据的特征码并标记为CF类型,和/或OP段数据及index段对应数据的特征码并标记为CDF类型为:遍历全部类信息数组中各函数信息数组中记录的OP段数据及index段对应数据,按照预设拼接条件拼接OP段数据,并计算特征码,和/或按照预设拼接条件拼接OP段数据及index段对应数据,并计算特征码。
所述的系统中,预设拼接条件至少包括:按函数拼接或按类拼接。
本发明的方法及系统,听过对dex可执行文件中的代码段中OP段进行检测,由于指令码的OP部分是唯一相对稳定的数值部分,因此不受文件中任何数据变化导致apk变化的限制,因此对dex检测能够获得比apk包裹或者apk中文件的部分数据进行检测获得更好的检出能力和检测效果。并且对于经过URL加密或SP加密的文件,常规方法通常无法检测出恶意代码,而本发明的方法不受其限制,能够检测出其中的恶意代码文件。本发明具有抗变性好,对手机恶意代码检测更精确高效的优势。
本发明提供一种基于OpCode的android恶意代码检测方法及系统,所述方法包括:对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;计算OP段数据的特征码,和/或OP段数据及index段对应数据的特征码,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若特征码匹配成功,且特征类型一致,则输出恶意代码名称。本发明的方法和系统通过对dex可执行文件中指令码的OP段进行检测,由于OP部分相对稳定,不随文件中其他数据变化,如果恶意代码对url进行了加密或者变换手段,代码段数据内容变化比较大时,传统的检测方法会失效,使用本发明的方案则可以规避此类问题,因此本发明的抗变性好,对移动终端恶意代码的检测更准确高效。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一种基于OpCode的android恶意代码检测方法流程图;
图2为一种基于OpCode的android恶意代码检测方法实施例流程图;
图3为一种基于OpCode的android恶意代码检测系统结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明中技术方案作进一步详细的说明。
本发明提供一种基于OpCode的android恶意代码检测方法及系统,解决了现有技术中由于文件信息变化导致无法检测出恶意代码的问题,具有更准确的检测效果。
Android平台的安装包格式为apk格式,即标准的zip压缩包格式,dex文件则是apk中的代码可执行文件,是恶意代码的真是载体,dex文件中没调OpCode指令的基本格式可以概括为:
A/OP Index Arg
其中第一段中的OP部分用来描述当前指令类型,A是配置部分,用于对OP或OP使用参数进行配置,Index是调用函数的索引,通过索引可以在dex文件中的其他部分找到函数的对应详细信息,Arg部分则是参数寄存器相关的定义和指令。
从实际情况来看,不同的函数调用和数据操作指令,每次生成dex的文件中OpCode指令的二进制内容都会发生变化,Index和Arg部分的二进制内容对dex的重新编译生成和调用而出现一定的随机性,根据不同的编译和优化策略A也会有一定的变化,只有OP段部分是相对稳定的数值内容,一般不会发生变化。因此本发明提供了一种利用OP段进行恶意代码检测的方法,通过对dex文件进行解析,获取OpCode指令的OP特征码,与恶意OpCode代码段特征库进行特征匹配,检测出恶意代码。
一种基于OpCode的android恶意代码检测方法,如图1所示,包括:
S101:对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;
S102:对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;
S103:计算OP段数据的特征码,并标记特征类型为CF类型,和/或OP段数据及index段对应数据的特征码,并标记特征类型为CDF类型,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若任一特征码匹配成功,且特征类型一致,则输出恶意代码名称;所述恶意代码特征库为已知恶意代码的特征集合,所述恶意代码特征库中至少包括:特征类型、特征码、特征码长度及对应的恶意代码名称。
所述的方法中,所述的特征码为OP段数据和/或OP段数据及index段对应数据的哈希值。
例如OP段数据和/或OP段数据及index段对应数据的哈希值,或哈希值的预设位数,或哈希值的奇数或偶数位等。
所述的方法中,对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容具体为:
解析dex文件头信息,识别所有结构体;
按类遍历class_defs结构体及各类中的函数,构建类信息数组,每个数组数据节点分别保存类名、类中函数个数及类中函数信息数组,每个函数信息数组节点分别保存函数名、函数原型、函数对应OpCode代码段及代码段长度。
所述的方法中,所述的对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据为:判断OpCode代码段中OP段数据,若OP段数据大于0x6e且小于0x78,或等于0x1a,则获取当前OpCode代码段中index段对应数据,并记录OP段数据及index段对应数据,并存储在对应函数信息数组中。
所述的方法中,计算OP段数据的特征码并标记为CF类型,和/或OP段数据及index段对应数据的特征码并标记为CDF类型为:遍历全部类信息数组中各函数信息数组中记录的OP段数据及index段对应数据,按照预设拼接条件拼接OP段数据,并计算特征码,和/或按照预设拼接条件拼接OP段数据及index段对应数据,并计算特征码。
所述的方法中,预设拼接条件至少包括:按函数拼接或按类拼接。
为更好理解本发明内容,如图2所示,现列举一实施例进行说明。
在进行恶意代码检测前,预先建立恶意代码段特征库,记录方法为:
struct
{
inttype;
viod*hash;
instashlen;
char*virmame;
}OpRule;
其中type表示特征类型,hash和hashlen分别记录特征码的内容和特征码长度,在本实施例中,特征类型包括CF或CDF,其中CF为仅包含OpCode代码段OP段数据的特征,CDF类型为包含OpCode代码段OP段数据及index段对应数据的特征;特征码内容为OP段数据和/或OP段数据及index段的哈希值。
S201:对dex文件格式解析,识别dex文件中的结构体,按类遍历class_defs结构体及各类中的函数,构建类信息数组,记为ClassNode;
struct
{
char*methodname;
char*methodproto;
void*methodcode;
intmethodcodelen;
OpNode*oplist;
}MethodNode;
struct
{
char*classname;
MethodNode*methodlist;
intmethodcnt;
}ClassNode;
每个数组数据节点分别保存类名classname、类中函数个数methodcnt及类中函数信息数组methodlist,每个函数信息数组节点分别保存函数名、函数原型、函数对应OpCode代码段methodcode及代码段长度methodcodelen。
S202:对得到的OpCode代码段内容进行反汇编;
S203:循环判断OpCode代码段中OP段数据,若OP段数据大于0x6e且小于0x78,或等于0x1a,则执行S204;
S204:获取当前OpCode代码段中index段对应数据;
S205:记录OP段数据及index段对应数据,将其记录为一个OpNode数组,并存储在对应函数信息数组的oplist中;
S206:遍历ClassNode中的所有MethodNode,获取MethodNode中的oplist,获取OP段数据及index段对应数据,执行S207和/或S208;
S207:按照预设的拼接条件拼接oplist中的所有OP段数据部分,形成cf_buffer;
S208:按照预设的拼接条件拼接oplist中的所有OP段数据及index段对应数据,形成cdf_buffer;
S209:分别对cf_buffer和/或cdf_buffer计算哈希值,将其与恶意代码段特征库中的特征码匹配,cf_buffer对应CF类型,cdf_buffer对应CDF类型,若任一特征码匹配成功且特征类型一致,则执行S210;
S210:输出恶意代码名称。
本发明还提供一种基于OpCode的android恶意代码检测系统,如图3所示,包括:
格式解析模块301,用于对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;
反汇编模块302,用于对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;
计算模块303,用于计算OP段数据的特征码,并标记特征类型为CF类型,和/或OP段数据及index段对应数据的特征码,并标记特征类型为CDF类型,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若任一特征码匹配成功,且特征类型一致,则输出恶意代码名称;所述恶意代码特征库为已知恶意代码的特征集合,所述恶意代码特征库中至少包括:特征类型、特征码、特征码长度及对应的恶意代码名称。
所述的系统中,所述的特征码为OP段数据和/或OP段数据及index段对应数据的哈希值。
所述的系统中,格式解析模块对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容具体为:
解析dex文件头信息,识别所有结构体;
按类遍历class_defs结构体及各类中的函数,构建类信息数组,每个数组数据节点分别保存类名、类中函数个数及类中函数信息数组,每个函数信息数组节点分别保存函数名、函数原型、函数对应OpCode代码段及代码段长度。
所述的系统中,所述的反汇编模块对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据为:判断OpCode代码段中OP段数据,若OP段数据大于0x6e且小于0x78,或等于0x1a,则获取当前OpCode代码段中index段对应数据,并记录OP段数据及index段对应数据,并存储在对应函数信息数组中。
所述的系统中,计算模块计算OP段数据的特征码并标记为CF类型,和/或OP段数据及index段对应数据的特征码并标记为CDF类型为:遍历全部类信息数组中各函数信息数组中记录的OP段数据及index段对应数据,按照预设拼接条件拼接OP段数据,并计算特征码,和/或按照预设拼接条件拼接OP段数据及index段对应数据,并计算特征码。
所述的系统中,预设拼接条件至少包括:按函数拼接或按类拼接。
本发明的方法及系统,听过对dex可执行文件中的代码段中OP段进行检测,由于指令码的OP部分是唯一相对稳定的数值部分,因此不受文件中任何数据变化导致apk变化的限制,因此对dex检测能够获得比apk包裹或者apk中文件的部分数据进行检测获得更好的检出能力和检测效果。并且对于经过URL加密或SP加密的文件,常规方法通常无法检测出恶意代码,而本发明的方法不受其限制,能够检测出其中的恶意代码文件。本发明具有抗变性好,对手机恶意代码检测更精确高效的优势。
本发明提供一种基于OpCode的android恶意代码检测方法及系统,所述方法包括:对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;计算OP段数据的特征码,和/或OP段数据及index段对应数据的特征码,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若特征码匹配成功,且特征类型一致,则输出恶意代码名称。本发明的方法和系统通过对dex可执行文件中指令码的OP段进行检测,由于OP部分相对稳定,不随文件中其他数据变化,如果恶意代码对url进行了加密或者变换手段,代码段数据内容变化比较大时,传统的检测方法会失效,使用本发明的方案则可以规避此类问题,因此本发明的抗变性好,对移动终端恶意代码的检测更准确高效。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。

Claims (12)

1.一种基于OpCode的android恶意代码检测方法,其特征在于,包括:
对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;
对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;
计算OP段数据的特征码,并标记特征类型为CF类型,和/或OP段数据及index段对应数据的特征码,并标记特征类型为CDF类型,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若任一特征码匹配成功,且特征类型一致,则输出恶意代码名称;所述恶意代码特征库为已知恶意代码的特征集合,所述恶意代码特征库中至少包括:特征类型、特征码、特征码长度及对应的恶意代码名称。
2.如权利要求1所述的方法,其特征在于,所述的特征码为OP段数据和/或OP段数据及index段对应数据的哈希值。
3.如权利要求1所述的方法,其特征在于,对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容具体为:
解析dex文件头信息,识别所有结构体;
按类遍历class_defs结构体,及各类中的函数,构建类信息数组,每个数组数据节点分别保存类名、类中函数个数及类中函数信息数组,每个函数信息数组节点分别保存函数名、函数原型、函数对应OpCode代码段及代码段长度。
4.如权利要求1或3所述的方法,其特征在于,所述的对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据为:判断OpCode代码段中OP段数据,若OP段数据大于0x6e且小于0x78,或等于0x1a,则获取当前OpCode代码段中index段对应数据,并记录OP段数据及index段对应数据,并存储在对应函数信息数组中。
5.如权利要求4所述的方法,其特征在于,计算OP段数据的特征码并标记为CF类型,和/或OP段数据及index段对应数据的特征码并标记为CDF类型为:遍历全部类信息数组中各函数信息数组中记录的OP段数据及index段对应数据,按照预设拼接条件拼接OP段数据,并计算特征码,和/或按照预设拼接条件拼接OP段数据及index段对应数据,并计算特征码。
6.如权利要求5所述的方法,其特征在于,预设拼接条件至少包括:按函数拼接或按类拼接。
7.一种基于OpCode的android恶意代码检测系统,其特征在于,包括:
格式解析模块,用于对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容;
反汇编模块,用于对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据;
计算模块,用于计算OP段数据的特征码,并标记特征类型为CF类型,和/或OP段数据及index段对应数据的特征码,并标记特征类型为CDF类型,将计算得到的特征码与恶意代码段特征库中的特征码匹配,若任一特征码匹配成功,且特征类型一致,则输出恶意代码名称;所述恶意代码特征库为已知恶意代码的特征集合,所述恶意代码特征库中至少包括:特征类型、特征码、特征码长度及对应的恶意代码名称。
8.如权利要求7所述的系统,其特征在于,所述的特征码为OP段数据和/或OP段数据及index段对应数据的哈希值。
9.如权利要求7所述的系统,其特征在于,格式解析模块对dex文件格式解析,识别dex文件中的结构体,扫描各结构体中的类和函数,记录函数对应OpCode代码段内容具体为:
解析dex文件头信息,识别所有结构体;
按类遍历class_defs结构体,及各类中的函数,构建类信息数组,每个数组数据节点分别保存类名、类中函数个数及类中函数信息数组,每个函数信息数组节点分别保存函数名、函数原型、函数对应OpCode代码段及代码段长度。
10.如权利要求7或9所述的系统,其特征在于,所述的反汇编模块对得到的OpCode代码段内容进行反汇编,获取有API调用或数据赋值行为的OpCode代码段的OP段数据及index段对应数据为:判断OpCode代码段中OP段数据,若OP段数据大于0x6e且小于0x78,或等于0x1a,则获取当前OpCode代码段中index段对应数据,并记录OP段数据及index段对应数据,并存储在对应函数信息数组中。
11.如权利要求10所述的系统,其特征在于,计算模块计算OP段数据的特征码并标记为CF类型,和/或OP段数据及index段对应数据的特征码并标记为CDF类型为:遍历全部类信息数组中各函数信息数组中记录的OP段数据及index段对应数据,按照预设拼接条件拼接OP段数据,并计算特征码,和/或按照预设拼接条件拼接OP段数据及index段对应数据,并计算特征码。
12.如权利要求11所述的系统,其特征在于,预设拼接条件至少包括:按函数拼接或按类拼接。
CN201210580586.4A 2012-12-27 2012-12-27 一种基于OpCode的android恶意代码检测方法及系统 Active CN103268445B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210580586.4A CN103268445B (zh) 2012-12-27 2012-12-27 一种基于OpCode的android恶意代码检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210580586.4A CN103268445B (zh) 2012-12-27 2012-12-27 一种基于OpCode的android恶意代码检测方法及系统

Publications (2)

Publication Number Publication Date
CN103268445A CN103268445A (zh) 2013-08-28
CN103268445B true CN103268445B (zh) 2016-01-13

Family

ID=49012073

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210580586.4A Active CN103268445B (zh) 2012-12-27 2012-12-27 一种基于OpCode的android恶意代码检测方法及系统

Country Status (1)

Country Link
CN (1) CN103268445B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440459B (zh) * 2013-09-25 2016-04-06 西安交通大学 一种基于函数调用的Android恶意代码检测方法
CN103530384B (zh) * 2013-10-21 2017-01-25 政和科技股份有限公司 因特网信息资源快速检索方法
CN104679495B (zh) * 2013-12-02 2018-04-27 北京猎豹移动科技有限公司 软件识别方法及装置
CN103902909B (zh) * 2013-12-25 2017-02-08 武汉安天信息技术有限责任公司 一种基于Opcode回溯的Android恶意代码检测系统及方法
WO2015101096A1 (zh) * 2013-12-30 2015-07-09 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN103902910B (zh) * 2013-12-30 2016-07-13 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN103761475B (zh) * 2013-12-30 2017-04-26 北京奇虎科技有限公司 检测智能终端中恶意代码的方法及装置
CN103886229B (zh) * 2014-03-10 2017-01-04 珠海市君天电子科技有限公司 一种提取pe文件特征的方法及装置
CN103902911B (zh) * 2014-04-16 2016-09-14 南京大学 一种基于程序结构特征的恶意程序检测方法
CN104978381A (zh) * 2014-10-28 2015-10-14 哈尔滨安天科技股份有限公司 一种基于反汇编进行恶意样本检测的方法及系统
CN104318161A (zh) * 2014-11-18 2015-01-28 北京奇虎科技有限公司 一种安卓样本的病毒检测方法及装置
CN104504333B (zh) * 2014-11-25 2018-03-06 武汉安天信息技术有限责任公司 Elf文件中的恶意代码检测方法及装置
CN104657661B (zh) * 2015-01-26 2018-05-22 武汉安天信息技术有限责任公司 移动终端中恶意代码的检测方法和装置
CN106126412B (zh) * 2016-06-14 2019-03-05 中国科学院软件研究所 基于安卓api使用规范的代码质量自动评估优化方法
CN108062474B (zh) * 2016-11-08 2022-01-11 阿里巴巴集团控股有限公司 文件的检测方法及装置
CN109120593A (zh) * 2018-07-12 2019-01-01 南方电网科学研究院有限责任公司 一种移动应用安全防护系统
CN110135152B (zh) * 2019-03-28 2021-07-02 江苏通付盾信息安全技术有限公司 应用程序攻击检测方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663285A (zh) * 2012-03-21 2012-09-12 奇智软件(北京)有限公司 一种apk病毒特征码的提取方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030236104A1 (en) * 2002-06-21 2003-12-25 Gvc Corporation Method and device for quickly storing a telephone book in a mobile device
JP4123473B2 (ja) * 2002-08-19 2008-07-23 日本電気株式会社 携帯電話機

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663285A (zh) * 2012-03-21 2012-09-12 奇智软件(北京)有限公司 一种apk病毒特征码的提取方法及装置

Also Published As

Publication number Publication date
CN103268445A (zh) 2013-08-28

Similar Documents

Publication Publication Date Title
CN103268445B (zh) 一种基于OpCode的android恶意代码检测方法及系统
CN102663281B (zh) 检测恶意软件的方法和装置
US8713680B2 (en) Method and apparatus for modeling computer program behaviour for behavioural detection of malicious program
CN108183916A (zh) 一种基于日志分析的网络攻击检测方法及装置
Zeadally et al. Cyber-physical system design with sensor networking technologies
CN105718276A (zh) 提供apk下载的方法和装置以及nginx服务器
CN105760184A (zh) 一种加载组件的方法和装置
CN104657634A (zh) 盗版应用的识别方法和装置
US20170169215A1 (en) Identification of mislabeled samples via phantom nodes in label propagation
Song et al. Permission Sensitivity‐Based Malicious Application Detection for Android
CN109241707A (zh) 应用程序的混淆方法、装置和服务器
CN103975336A (zh) 对值中的标签进行编码以俘获信息流
CN104899016A (zh) 调用堆栈关系获取方法及装置
CN104238819A (zh) 移动终端中显示屏状态的检测方法及系统
CN104915596A (zh) apk病毒特征库构建方法、装置及apk病毒检测系统
CN102142032A (zh) 一种分布式文件系统的数据读写方法及系统
CN106055375A (zh) 应用程序安装方法及装置
CN104092544A (zh) 兼容安卓应用的服务签名方法与装置
CN104182519A (zh) 一种文件扫描方法及装置
Ficco Comparing API call sequence algorithms for malware detection
CN108427643A (zh) 基于多种群遗传算法的二进制程序模糊测试方法
CN111209600A (zh) 基于区块链的数据处理方法及相关产品
Oh et al. Highly secure mobile devices assisted with trusted cloud computing environments
CN111030978B (zh) 一种基于区块链的恶意数据获取方法、装置及存储设备
US9619273B2 (en) Profiling multiple virtual machines in a distributed system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 430000 Hubei Province, East Lake New Technology Development Zone, software park, No. 1 East Road, software industry, B4, building 4-1, room 12, floor, room 01

Applicant after: Wuhan Antian Information Technology Co., Ltd.

Address before: 430000 Hubei Development Zone, East Lake, Optics Valley Venture Street, building 6, building 2, building

Applicant before: Wuhan Antian Information Technology Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant