1、消息钩子的概念:
Windows应用程序是基于消息驱动的,不论什么线程仅仅要注冊窗体类都会有一个消息队列用于接收用户输入的消息和系统消息。为了拦截消息,Windows提出了钩子的概念。钩子(Hook)是Windows消息处理机制中的一个监视点,钩子提供一个回调函数。当在某个程序中安装钩子后,它将监视改程序的消息,在指定消息没有到达该窗体之前钩子先捕获这个消息,这样就会对消息进行过滤或者对window消息进行实时监控
消息分为局部钩子和全局钩子,局部钩子仅仅拦截指定进程中的指定消息,全局钩子拦截系统中全部进程的指定消息
实现使用钩子技术拦截指定消息的步骤为下面几部:
(1)设置钩子回调函数(拦截到消息后调用的函数)
(2)安装钩子 使用SetWindowsHookEx函数
(3)卸载钩子 使用UnhookWindowsHookEx函数
利用消息钩子能够实现特效界面、同步消息、监控消息、自启动等功能
2、病毒技术
病毒技术利用消息钩子实现两种功能:
(1)监控用户按键、盗用用户信息
(2)自启动这种病毒将钩子回调函数放在一个DLL文件里,然后安装一个全局消息钩子(easy触发的消息 如WH_CBT WH_GETMESSAGE),这样凡响应该消息的进程都会自己主动载入病毒的DLL,病毒也跟着自己主动执行了