[发明专利]基于API HOOK的恶意代码自动分析方法和系统有效

专利信息
申请号: 201010215067.9 申请日: 2010-07-01
公开(公告)号: CN102314561A 公开(公告)日: 2012-01-11
发明(设计)人: 周世杰;秦志光;余圣;周佩颖;陈陪;陈晋福 申请(专利权)人: 电子科技大学
主分类号: G06F21/00 分类号: G06F21/00;H04L12/26
代理公司: 暂无信息 代理人: 暂无信息
地址: 610054 *** 国省代码: 四川;51
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 api hook 恶意代码 自动 分析 方法 系统
【说明书】:

技术领域

本发明涉及恶意代码。 

背景技术

本发明是利用API钩子技术和远程线程注入技术,对样本进行监控。本发明记录恶意代码运行过程中对整个系统的影响,并自动生成动态分析报告,记录恶意代码样本对文件,网络,注册表,进程所产生的影响,当样本运行结束后,将系统恢复到样本执行前的状态。它不但具有自动分析功能(整个监控、记录和还原的过程不需要人工的干预),并且还适用于大量样本的无人工干预的分析,分析速度比较快,分析报告中的无用信息比较少。 

目前也有一些相关的专利,以下做些介绍: 

专利200610080454.X“一种恶意代码自动分析系统及方法”含有多个相对独立的模块构成,恶意代码运行模块,文件监视模块,注册表监视模块,函数调用监视模块,网络数据监视模块,程序内部行为监视模块,恶意代码行为自动分析模块,方法含有以下步骤:加载文件监视和注册表监视的驱动程序,加载预定义要记录的敏感函数,在恶意代码运行的过程,同步记录应用程序接口调用,文件,注册表的访问,网络操作;当恶意代码进程结束而自动退出,系统对这些行为进行自动分析,输出自动分析结果;本发明提供的自动分析方法,完全记录恶意代码运行的行为,并对于恶意代码使用的未知壳或变形壳不受影响。大幅度地提高了恶意代码分析人员的工作效率。专利200610080454.X在每运行一个样本后,对系统进行恢复,没有解决不在人工干预的情况下,自动分析大量样本的问题。而且监控了整个系统的API调用,可能会有很多无用信息。 

专利200310106551.8“一种分层协同的网络病毒和恶意代码识别方法”,是分层协同的网络病毒和恶意代码识别方法,特征是借鉴生物免疫强大的自我保护机制,将网络病毒和恶意代码识别技术和生物免疫系统的多层保护机制对应起来,通过统计分析关键词词频判断待检测脚本的危险度,基于注册表操作“自我集”的角度来分析判断注册表写入表项路径的异常行为,以及对应用程序编程接口执行序列进行非我识别,最终将全部异常行为信息通过网络发送到网络控制台,较好地解决了未知网络病毒和恶意代码的异常行为识别问题,对未知网络病毒和恶意代码的具较好的识别能力,实现了对单个系统及整个子网中的网络病毒和恶意代码异常行为的监控和管理。如果对大量的恶意代码样本采用该方法进行识别,分析和检测的速度会很慢。 

本发明与以上两个专利相比,不仅在监控完成后,监控软件按照样本对操作系统的操作和影响,进行逆操作,恢复系统到运行样本前的状态。还完成了恶意代码智能分析技术,适 用于大量样本的无人工干预的分析,分析速度比较快,分析报告中的无用信息比较少。 

本发明的困难性在两个地方。第一在本发明中,检测恶意代码样本对文件,网络,注册表,进程所产生的影响是最重要的功能。必须在恶意代码调用API的时候,对API的调用进行拦截,提取出API调用的参数,对这些参数进行解析,然后把这些信息传送到监控中心,最终生成恶意代码样本分析报告。第二本发明必须不需要人工的干预,自动监测恶意代码样本。在每个样本运行结束后,智能分析系统必须能够恢复系统,然后自动运行下一个样本,自动生成恶意代码样本动态监控报告。 

发明内容

本发明是通过修改可执行文件在内存中映像的有关代码,实现对API调用的动态拦截,获取代码的API调用序列和参数,从而达到监控恶意代码对系统影响的目的。拦截API的调用序列前需要安装API钩子(API Hook)。API钩子由两个模块组成,一个是钩子服务器(Hook Server)模块,为EXE的形式;一个是钩子驱动器(Hook Driver)模块,为DLL的形式。钩子服务器负责向目标进程注入钩子驱动器,使得钩子驱动器运行在目标进程的地址空间中。而钩子驱动器则负责实际的API拦截处理工作,并返回拦截结果,以便后续分析。 

在注入方式上,我们没有采用注册表注入和系统范围的Windows钩子,因为这两种方式会使我们的系统性能严重下降,所以我们使用了CreateRemoteThread函数在目标进程中建立并运行一个远程线程的动态链接库(DLL)注入方式。首先得到远程进程的句柄,在远程进程中为我们自己的动态链接库文件名分配内存,然后使用CreateRemoteThread函数和LoadLibrary函数把我们的动态链接库映射进远程进程,这样就实现了注入。在拦截机制上,我们先找到原先的API函数的地址,然后把该函数开始的几个字节用一个JMP指令代替,从而使得对该API函数的调用能够转向我们自己的函数调用。 

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010215067.9/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top