钩子程序的分类

钩子程序的分类,第1张

按事件分类

有如下的几种常用类型

(1)键盘钩子和低级键盘钩子可以监视各种键盘消息

(2) 鼠标钩子和低级鼠标钩子可以监视各种鼠标消息。

(3) 外壳钩子可以监视各种Shell事件消谨含息。比如启动和关闭应用程序。

(4)日志钩子可以记录从系统消息队列中取出的各种事件消息。

(5) 窗口过程钩子监视所有从系统消息队列发往目标窗口的消息。

此外,还有一些特定事件的钩子提供给我们使用,不一一列举。

按使用范围分类

主要有线程钩子和系统钩子

(1) 线程钩子监视指定线程的事件消息。

(2)系统钩子监视系统中的所有线程的事槐槐件消息。因为系统钩子会影响系统中所有的应用程序,所以钩子函数必须放在独立的动态链接库(DLL)中。这是系统钩子和线程钩子很大的不同之处。

几点需要说明的地方:

(1) 如果对于同一事件(如鼠标消息)既安装了线程钩子又安装了系统钩子,那么系统会自动先调用线程钩子,然后调用系统钩子。

(2) 对同一事件消息可安装多个钩子处理过程,这些钩子处理过程形成了钩子链。当前钩子处理结束后应把钩子信息传递给下一个钩子函数。而且最近安装的钩子放在链的开始,而最早安装的钩子放在最后,也就是祥明笑后加入的先获得控制权。

(3) 钩子特别是系统钩子会消耗消息处理时间,降低系统性能。只有在必要的时候才安装钩子,在使用完毕后要及时卸载。

钩子函数(Hook)是Windows编程里的东西,跟C语言没有关系,任何语言都迟改李尺可以调用钩子。

如果你想用钩子码扰判写一些程序的话,可以参考下面这个博文:

http://blog.csdn.net/whatday/article/details/8006225

当然最好还是去看MSDN!

木马钩子其实也是一个dll文件,这个东东讲起来比较麻烦。

我尽量说简单点。

dll文件叫动态链接枝镇库文件,系统正常运行需要调用一些程序就是通过dll文件里的函数来执行的,一个正常运行的系统进程会调用许多的dll文件,而这些dll文件在系统用到某些功能吵稿时还会调用其它的dll文件。

木马钩子就是这样一种dll文件,通过其内置的函数,使猛碰粗系统进程认为这个dll文件是个正常的需要调用的dll,然后再通过这个dll来启动木马。

这就有点象使用钩子一样,先钩住挂靠再贴上去。

------说得不是很贴切。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12420985.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存