一种进程的处理方法和装置制造方法及图纸

技术编号:8105934 阅读:169 留言:0更新日期:2012-12-21 04:59
本发明专利技术提供了一种进程的处理方法和装置,能够防止恶意进程通过使用DLL文件和全局消息钩子侵入安全软件,进而使恶意进程无法阻止安全软件的检测。所述的方法包括:线程创建时,在系统中注册各类本地消息钩子,其中,所述本地消息钩子与系统中的消息函数具有对应关系;线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,其中,所述消息函数包括窗口创建函数;通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数。

【技术实现步骤摘要】

本申请涉及计算机安全技术,特别是涉及一种进程的处理方法和装置
技术介绍
当进程中的线程创建或关闭一个窗口时,会查找所述线程是否存在消息钩子,所述消息钩子包括本地消息钩子和全局消息钩子,其中,本地消息钩子的优先级高于全局消息钩子。即若两个消息钩子都存在,就先调用本地消息钩子,再调用全局消息钩子;若仅存在其中的一个消息钩子,则调用存在的消息钩子。恶意进程(如木马进程)为了避免被查杀,可以通过加载动态链接库文件来阻止安全软件的检测。其中,所述动态链接库(Dynamic Link Library, DLL)文件,它允许程序共 享执行特殊任务所必需的代码和其他资源。恶意进程在系统中运行时可以创建一个DLL文件,并且向系统注册一个全局消息钩子,其中,所述全局消息钩子的DLL模块的基地址指向所述恶意进程的DLL文件,并且所述全局消息钩子的回调函数在所述恶意进程的DLL文件中。安全软件的进程中某个线程在创建或关闭窗口时,就会检测并调用全局消息钩子,此时系统会检测所述安全软件的进程中是否加载了所述木马进程的DLL文件,若没有加载,就将所述恶意进程的DLL文件加载到内存中。即恶意进程通过所述全局消息钩子,将恶意进程的DLL文件加载到了安全软件中,然后可以调用所述DLL文件中的回调函数,通过所述回调函数更改所述安全软件,例如,结束安全软件的进程使安全软件无法启动,又如,修改安全软件的查找函数,即当安全软件查找所述恶意进程时,返回错误的结果(如文件不存在)。因此,本领域技术人员迫切解决的一个技术问题是,提出一种进程的处理方法,能够防止恶意进程通过使用DLL文件和全局消息钩子侵入安全软件,进而使恶意进程无法阻止安全软件检测。
技术实现思路
本申请提供了一种进程的处理方法和装置,能够防止恶意进程通过使用DLL文件和全局消息钩子侵入安全软件,进而使恶意进程无法阻止安全软件的检测。为了解决上述问题,本申请公开了一种进程的处理方法,包括线程创建时,在系统中注册各类本地消息钩子,其中,所述本地消息钩子与系统中的消息函数具有对应关系;线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,其中,所述消息函数包括窗口创建函数;通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数。优选的,所述通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数,包括调用并执行所述本地消息钩子的回调函数,获取所述回调函数的执行结果;根据所述回调函数的执行结果,拒绝调用全局消息钩子并返回执行所述消息函数。优选的,所述消息函数调用与其对应的本地消息钩子之前,还包括检测系统中是否存在所述消息函数对应的消息钩子,其中,所述消息钩子包括本地消息钩子和全局消息钩子,本地消息钩子的优先级高于全局消息钩子。优选的,所述消息函数为窗口创建函数;所述线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,包括线程调用窗口创建函数以创建窗口,所述窗口创建函数在创建窗口前,调用与其对应的本地消息钩子。优选的,当线程调用第三方线程时,若所述第三方线程调用消息函数,则通过所述消息函数调用与其对应的本地消息钩子。 优选的,所述消息函数还包括消息发送函数、消息接收函数、消息检查函数、鼠标消息函数和键盘消息函数。相应的,本申请还公开了一种进程的处理装置,包括注册模块,用于线程创建时,在系统中注册各类本地消息钩子,其中,所述本地消息钩子与系统中的消息函数具有对应关系;调用模块,用于线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,其中,所述消息函数包括窗口创建函数;阻止并返回模块,用于通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数。优选的,阻止并返回模块,包括调用并执行子模块,用于调用并执行所述本地消息钩子的回调函数,获取所述回调函数的执行结果;阻止并返回子模块,用于根据所述回调函数的执行结果,拒绝调用全局消息钩子并返回执行所述消息函数。优选的,所述的装置还包括检测模块,用于检测系统中是否存在所述消息函数对应的消息钩子,其中,所述消息钩子包括本地消息钩子和全局消息钩子,本地消息钩子的优先级高于全局消息钩子。优选的,所述消息函数为窗口创建函数;所述调用模块,用于线程调用窗口创建函数以创建窗口,所述窗口创建函数在创建窗口前,调用与其对应的本地消息钩子。优选的,所述的装置还包括第三方调用模块,用于当线程调用第三方线程时,若所述第三方线程调用消息函数,则通过所述消息函数依据与其对应的本地消息钩子。与现有技术相比,本申请包括以下优点首先,线程创建时在系统中注册各类本地消息钩子,在调用消息函数时调用与其对应的本地消息钩子。所述本地消息钩子有权利决定是否调用后面的消息钩子,通过调用本地消息钩子的回调函数,可以阻止全局消息钩子被调用,并返回执行所述消息函数。从而可以防止恶意进程通过使用DLL文件和全局消息钩子侵入安全软件,进而使恶意进程无法阻止安全软件检测,维护了系统的安全。其次,本申请当线程调用第三方线程时,若所述第三方线程调用消息函数,则通过所述消息函数调用与其对应的本地消息钩子。从而进一步的确保系统的安全,确保恶意进程无法阻止安全软件的检测。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本申请实施例所述一种进程的处理方法流程图;图2是本申请实施例所述一种进程的处理装置结构图。 具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。当进程中的线程创建或关闭一个窗口时,会查找所述线程是否存在消息钩子,所述消息钩子包括本地消息钩子和全局消息钩子,其中,本地消息钩子的优先级高于全局消息钩子。即若两个消息钩子都存在,就先调用本地消息钩子,再调用全局消息钩子;若仅存在其中的一个消息钩子,则调用存在的消息钩子。恶意进程为了避免被查杀,在系统中运行时可以创建一个DLL文件,并且向系统注册一个全局消息钩子。在安全软件运行时,恶意进程可以通过所述全局消息钩子将所述DLL文件加载到安全软件中,然后调用所述DLL文件中的回调函数,通过所述回调函数更改所述安全软件,例如,结束安全软件的进程使安全软件无法启动,又如,修改安全软件的查找函数,即当安全软件查找所述恶意进程时,返回错误的结果(如文件不存在)。其中,所述恶意进程指恶意软件的进程,包括故意在计算机系统恶意软件上执行恶意任务的病毒、螺虫和木马等。本申请提供一种进程的处理方法,通过注册本地消息钩子,来防止恶意进程通过使用DLL文件和全局消息钩子侵入安全软件,进而使恶意进程无法阻止安全软件检测。具体方法如下参照图1,给出了本申请实施例所述一种进程的处理方法流程图。步骤11,线程创建时,在系统中注册各类本地消息钩子;一个软件的进程在运行时,可以本文档来自技高网
...

【技术保护点】
一种进程的处理方法,其特征在于,包括:线程创建时,在系统中注册各类本地消息钩子,其中,所述本地消息钩子与系统中的消息函数具有对应关系;线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,其中,所述消息函数包括窗口创建函数;通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数。

【技术特征摘要】

【专利技术属性】
技术研发人员:谭合力姚彤邵坚磊马贞辉
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1