一种基于线程反编译的多平台恶意代码检测方法和系统技术方案

技术编号:8079024 阅读:206 留言:0更新日期:2012-12-13 21:54
本发明专利技术公开了一种基于线程反编译的多平台恶意代码检测方法包括:通过特征提取获取恶意指令序列;依次检测系统中的线程信息,识别线程起始数据的指令集,并根据不同指令集对每个线程起始数据进行反编译得到线程的执行指令序列;将所述线程的执行指令序列与所述恶意指令序列进行完全匹配,如果匹配成功则该所述线程为恶意线程。还公开了一种基于线程反编译的多平台恶意代码检测系统。本发明专利技术技术方案可以检测多种平台的恶意代码。同时可以检测恶意代码的线程并对线程进行处置。

【技术实现步骤摘要】

本专利技术涉及本计算机反病毒
,尤其涉及一种基于线程反编译的多平台恶意代码检测方法和系统
技术介绍
目前的恶意代码检测技术主要是针对文件为检测对象,常规的特征码检测都是基于文件的,文件特征码扫描是最早出现的恶意代码检测技术。目前依旧是反病毒的主要技术。它仅仅将文件中的数据和已知的特征串做比较来检测。该种方法配合脱壳在一定程度上达到更好的识别率,但是这种方法的检测对象是文件,加密的壳变化导致脱壳失败,就无法检测,同时其只能检测处置文件对象。模拟技术(CN201110025547. 3基于虚拟机的“In_VM”恶意代码检测系统 2011-07-13)从程度上来说处于把程序视为字节序列的技术和把程序视为行为序列的技术之间。虚拟机将程序字节代码划分为指令,并在虚拟的计算机环境中执行每一条指令。这样就可以监视程序的行为,能够分析一部分病毒事件。这种方法的需要在系统底层装置一层系统,而不是在系统上层就可以完成,多数依赖系统,而不能跨平台。
技术实现思路
本专利技术的目的在于针对现有移动平台以及PC的发展,恶意代码加密变形技术和多平台发展。针对恶意代码存在实体是线程,提出一种可多平台、抗变形的特征提取方法和检测方法。该方法可以检测多种平台的恶意代码。同时可以检测恶意代码的线程并对线程进行处置。为解决上述问题,本专利技术实现方法主要包括以下步骤 A、通过特征提取获取恶意指令序列; 所述特征提取包括静态提取或者动态提取;所述静态特征提取是指通过对恶意代码样本文件进行反编译,获取恶意程序的入口点和线程函数的起始地址的数据进行反编译得到恶意指令序列;所述动态特征提取是指在虚拟环境中执行恶意代码样本,监视创建线程,提取创建线程起始位置的数据进行反编译得到恶意指令序列。B、依次检测系统中的线程信息,识别线程起始数据的指令集,并根据不同指令集对每个线程起始数据进行反编译得到线程的执行指令序列; 检测系统环境中线程信息,通过各平台的系统API获取系统的线程信息,包括线程所在内存起始位置,线程内存数据范围。识别线程起始数据的指令集,包括X86、X64、AM。根据不同指令集对数据进行反编译得到线程的执行指令序列。C、将所述线程的执行指令序列与所述恶意指令序列进行完全匹配,如果匹配成功则该所述线程为恶意线程。如果将所述线程的执行指令序列与所述恶意指令序列进行完全匹配不成功,则将所述线程的执行指令序列前十个操作序列内的第一个跳转后的指令序列与所述恶意指令序列进行完全匹配,如果匹配成功则该所述线程为恶意线程。如果所述线程所在的内存加载模块属于DLL文件或属于SO文件,则该所述线程为恶意线程。关联线程所在的内存加载模块,发现该线程所在区域是属于某个DLL或SO文件,还是属于进程空间。进而判定一个文件是否是恶意的。所述方法还包括对所述恶意线程进行处置,所述处置包括挂起或终止所述恶意线程。相应的,本专利技术还提供了一种基于线程反编译的多平台恶意代码检测系统,包括恶意指令序列模块,用于通过特征提取获取恶意指令序列; 提取指令序列模块,用于依次检测系统中的线程信息,识别线程起始数据的指令集,并根据不同指令集对每个线程起始数据进行反编译得到线程的执行指令序列; 指令序列匹配模块,用于将所述线程的执行指令序列与所述恶意指令序列进行完全匹配,如果匹配成功则该所述线程为恶意线程。所述特征提取包括静态提取或者动态提取;所述静态特征提取是指通过对恶意代码样本文件进行反编译,获取恶意程序的入口点和线程函数的起始地址的数据进行反编译得到恶意指令序列;所述动态特征提取是指在虚拟环境中执行恶意代码样本,监视创建线程,提取创建线程起始位置的数据进行反编译得到恶意指令序列。所述指令集包括X86、X64、ARM。所述指令序列匹配模块具体还用于如果将所述线程的执行指令序列与所述恶意指令序列进行完全匹配不成功,则将所述线程的执行指令序列前十个操作序列内的第一个跳转后的指令序列与所述恶意指令序列进行完全匹配,如果匹配成功则该所述线程为恶意线程。所述系统还包括关联检查模块,用于如果所述线程所在的内存加载模块属于DLL文件或属于so文件,则该所述线程为恶意线程。所述系统还包括处置模块,用于对所述恶意线程进行处置,所述处置包括挂起或终止所述恶意线程。本专利技术的有益效果是 当前的主要恶意代码查杀是通过文件进行检测,而针对线程对象检测查杀的好处是首先木马的活动是以线程为单位,对线程的检测可以及时,有效地发现木马,对其进行处置。其次线程起始位置的代码是运行后的代码,对于加密变形的恶意代码,运行后线程的起始位置就还原为加密变形前的数据,再通过反编译就可以达到跨平台的统一的检测方法,可以以更少的特征检测更多的变种恶意代码,具有更好的检出效果。附图说明为了更清楚地说明本专利技术或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I为本专利技术基于线程反编译的多平台恶意代码检测方法的特征提取流程 图2为本专利技术基于线程反编译的多平台恶意代码检测方法流程 图3为本专利技术基于线程反编译的多平台恶意代码检测系统模块结构 图4为实施例样本反汇编线程函数起始地址; 图5为实施例样本线程函数起始位置数据; 图6为实施例指令序列所在地址。具体实施方式 为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术中技术方案作进一步详细的说明。首先是本专利技术对恶意样本进行特征提取的流程,如图I所示,包括步骤 5101、判断样本文件是否为可执行文件格式,如果不是则结束,否则进行S102; 5102、判断样本文件的指令集; 5103、对样本进行反编译查找入口点; 5104、获取线程函数的起始位置; 5105、提取反编译指令序列保存。本专利技术基于线程反编译的多平台恶意代码检测方法,如图2所示,包括步骤 5201、检测系统环境中线程信息; 5202、通过各平台的系统API获取系统的线程信息,包括线程所在内存起始位置,线程内存数据范围; 5203、识别线程起始数据的指令集,包括X86、X64、ARM; 5204、根据不同指令集对数据进行反编译得到线程的执行指令序列; 5205、将得到线程指令序列与恶意指令序列进行完全匹配,如果匹配到已知恶意序列则该线程为恶意线程; 5206、如果步骤S204未匹配成功,则对线程指令序列前十个操作序列内的第一个跳转后的指令序列进行匹配。S207、关联线程所在的内存加载模块,发现该线程所在区域是属于某个DLL或so文件,还是属于进程空间。进而判定一个文件是否是恶意的; S208、对线程进行处置。挂起或终止恶意线程。下面我们结合准备的样本文件来进行进一步说明 文件名狡猾.dllMD5 013BC5CEE562BC51307BC34A61C13C47加壳=UPX 根据图1,对该样本进行特征提取,先进行格式识别发现该样本为PE、该样本的所属的指令集为x86,为可执行格式。对该样本进行脱壳反编译获得入口点位置和线程函数起始本文档来自技高网
...

【技术保护点】
一种基于线程反编译的多平台恶意代码检测方法,其特征在于,包括:通过特征提取获取恶意指令序列;依次检测系统中的线程信息,识别线程起始数据的指令集,并根据不同指令集对每个线程起始数据进行反编译得到线程的执行指令序列;将所述线程的执行指令序列与所述恶意指令序列进行完全匹配,如果匹配成功则该所述线程为恶意线程。

【技术特征摘要】

【专利技术属性】
技术研发人员:康学斌贺磊钢
申请(专利权)人:哈尔滨安天科技股份有限公司
类型:发明
国别省市:

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

1