[发明专利]一种进程的处理方法和装置有效
申请号: | 201210266417.3 | 申请日: | 2012-07-27 |
公开(公告)号: | CN102831344A | 公开(公告)日: | 2012-12-19 |
发明(设计)人: | 谭合力;姚彤;邵坚磊;马贞辉 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F9/46 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 苏培华 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 处理 方法 装置 | ||
技术领域
本申请涉及计算机安全技术,特别是涉及一种进程的处理方法和装置。
背景技术
当进程中的线程创建或关闭一个窗口时,会查找所述线程是否存在消息钩子,所述消息钩子包括本地消息钩子和全局消息钩子,其中,本地消息钩子的优先级高于全局消息钩子。即若两个消息钩子都存在,就先调用本地消息钩子,再调用全局消息钩子;若仅存在其中的一个消息钩子,则调用存在的消息钩子。
恶意进程(如木马进程)为了避免被查杀,可以通过加载动态链接库文件来阻止安全软件的检测。其中,所述动态链接库(Dynamic Link Library,DLL)文件,它允许程序共享执行特殊任务所必需的代码和其他资源。
恶意进程在系统中运行时可以创建一个DLL文件,并且向系统注册一个全局消息钩子,其中,所述全局消息钩子的DLL模块的基地址指向所述恶意进程的DLL文件,并且所述全局消息钩子的回调函数在所述恶意进程的DLL文件中。
安全软件的进程中某个线程在创建或关闭窗口时,就会检测并调用全局消息钩子,此时系统会检测所述安全软件的进程中是否加载了所述木马进程的DLL文件,若没有加载,就将所述恶意进程的DLL文件加载到内存中。即恶意进程通过所述全局消息钩子,将恶意进程的DLL文件加载到了安全软件中,然后可以调用所述DLL文件中的回调函数,通过所述回调函数更改所述安全软件,例如,结束安全软件的进程使安全软件无法启动,又如,修改安全软件的查找函数,即当安全软件查找所述恶意进程时,返回错误的结果(如文件不存在)。
因此,本领域技术人员迫切解决的一个技术问题是,提出一种进程的处理方法,能够防止恶意进程通过使用DLL文件和全局消息钩子侵入安全软件,进而使恶意进程无法阻止安全软件检测。
发明内容
本申请提供了一种进程的处理方法和装置,能够防止恶意进程通过使用DLL文件和全局消息钩子侵入安全软件,进而使恶意进程无法阻止安全软件的检测。
为了解决上述问题,本申请公开了一种进程的处理方法,包括:
线程创建时,在系统中注册各类本地消息钩子,其中,所述本地消息钩子与系统中的消息函数具有对应关系;
线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,其中,所述消息函数包括窗口创建函数;
通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数。
优选的,所述通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数,包括:调用并执行所述本地消息钩子的回调函数,获取所述回调函数的执行结果;根据所述回调函数的执行结果,拒绝调用全局消息钩子并返回执行所述消息函数。
优选的,所述消息函数调用与其对应的本地消息钩子之前,还包括:检测系统中是否存在所述消息函数对应的消息钩子,其中,所述消息钩子包括本地消息钩子和全局消息钩子,本地消息钩子的优先级高于全局消息钩子。
优选的,所述消息函数为窗口创建函数;所述线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,包括:线程调用窗口创建函数以创建窗口,所述窗口创建函数在创建窗口前,调用与其对应的本地消息钩子。
优选的,当线程调用第三方线程时,若所述第三方线程调用消息函数,则通过所述消息函数调用与其对应的本地消息钩子。
优选的,所述消息函数还包括:消息发送函数、消息接收函数、消息检查函数、鼠标消息函数和键盘消息函数。
相应的,本申请还公开了一种进程的处理装置,包括:
注册模块,用于线程创建时,在系统中注册各类本地消息钩子,其中,所述本地消息钩子与系统中的消息函数具有对应关系;
调用模块,用于线程在调用消息函数时,通过所述消息函数调用与其对应的本地消息钩子,其中,所述消息函数包括窗口创建函数;
阻止并返回模块,用于通过调用本地消息钩子的回调函数,阻止全局消息钩子被调用并返回执行所述消息函数。
优选的,阻止并返回模块,包括:
调用并执行子模块,用于调用并执行所述本地消息钩子的回调函数,获取所述回调函数的执行结果;
阻止并返回子模块,用于根据所述回调函数的执行结果,拒绝调用全局消息钩子并返回执行所述消息函数。
优选的,所述的装置还包括:
检测模块,用于检测系统中是否存在所述消息函数对应的消息钩子,其中,所述消息钩子包括本地消息钩子和全局消息钩子,本地消息钩子的优先级高于全局消息钩子。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210266417.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种圆柱齿轮造型方法
- 下一篇:一种车用发动机排气特性模拟试验台