按事件分类
有如下的几种常用类型
(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来启动木马。
这就有点象使用钩子一样,先钩住挂靠再贴上去。
------说得不是很贴切。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)