钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。
钩子实际上是一个处理消息的
程序段,通过
系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即
钩子函数先得到控制权。这时
钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
钩子也可以理解为
WINDOWS留给我们的
后门,比如你想控制
键盘,在DOS时代很简单通过INT即可,而WINDOWS时代不允许我们直接操作硬件;由于WINDOWS是消息驱动,所以我们可以拦截键盘消息以达到控制键盘的目的。但是控制自己
进程的消息固然很简单,要控制所有进程消息要利用钩子了。将
钩子函数放在
DLL中,所有的有关
键盘的消息都必须经过
钩子函数过滤,这样你就可以为所欲为了。
WINDOWS下的钩子程序就像DOS下的TSR(内存
驻留程序)一样,用来截获WINDOWS下的
[1]