kaiyun体育 返回腾讯云官网

大家好,很高兴再次见到大家,我是你们的朋友全战军。

大致流程是当系统I/O上发生事件时,系统捕获该事件并向指定应用程序的消息队列发送消息,应用程序按顺序从消息队列中取出一条消息交给系统调度相应的窗口回调程序进行消息处理。

这里我们可以看到,从OS捕获到消息并开始处理,到交还给OS调度回调函数,就像是一个循环。我理解这也是它被称为“回调函数”的原因之一。接下来我们要进行的HOOK,就是上面第二步和第三步之间进行的额外工作。

钩子机制允许应用程序拦截和/或处理窗口消息或特定事件。

钩子其实就是一个处理消息的程序段,通过系统调用将其挂接到系统中。每当一个特定的消息被发送时,在到达目的窗口之前,钩子程序会先捕获该消息,也就是钩子函数先获得控制权。此时钩子函数可以处理(改变)该消息,或者继续传递该消息而不进行处理,或者强制结束该消息。

Hook可以理解为Windows操作系统的一个平台消息处理机制;应用程序可以通过设置Hook来监视某个进程或者窗口云开·全站apply体育官方平台,也就是“钩住”某个特定的事件;一旦发生预先定义的特定事件,Windows操作系统就会向该钩子发送通知消息,应用程序便可做出响应。**

Windows HOOK机制

**

HOOK的本质是一个处理系统消息的程序,通过系统调用将其挂接到系统中。钩子有很多种,每种钩子负责截取并处理相应的消息。钩子机制允许应用程序截取并处理发送给指定窗口的消息或特定事件。被监视的窗口可以是本进程内部的,也可以是其他进程创建的。在特定消息发出并到达目的窗口之前,HOOK程序首先截取该消息并取得对该消息的控制权。此时kaiyun官方网app下载app,可以在钩子函数中对截取的消息进行各种修改,甚至可以强制终止该消息的继续发送。

钩子的应用范围很广泛,比如输入监视、API拦截、消息捕获、改变程序执行流程等等。1、杀毒软件会利用Hook技术钩住一些API函数kaiyun官方网app下载app,比如钩住注册表读写函数,防止病毒对注册表进行写入;2、病毒利用Hook技术有针对性地捕获键盘输入,从而记录用户密码等敏感信息;3、文件加密系统利用Hook技术可以透明地加密用户文件,而不改变用户操作。

这些都是属于Hook的知识。

每个Hook都有一个与之关联的指针列表,称为钩子列表,由系统维护。这个列表中的指针指向指定的、应用程序定义的由Hook子进程调用的回调函数,也就是该钩子的各个处理子程序。当与指定Hook类型关联的消息发生时,系统将消息传递给Hook子进程。有些Hook子进程只能监视消息,或修改消息,或阻止消息传递给下一个Hook子进程或目标窗口。最近安装的钩子放在链的开头,最早安装的钩子放在链的末尾,即后加入的钩子先获得控制权。Windows并不要求钩子子进程的卸载顺序必须与安装顺序相反。每当一个钩子被卸载时,Windows都会释放它占用的内存并更新整个Hook列表。如果一个程序安装了钩子但在卸载钩子之前就结束了,系统会自动为它卸载该钩子。

关键词:

客户评论

我要评论