您的位置:首页 > 其它

hook机制

2014-09-17 00:00 323 查看
摘要: 什么是hook机制的原理,来探讨吧。

hook机制:

根据百度百科解释,hook就是windows中提供一种替换dos下‘中断’的系统机制。钩子实际上是windows上处理消息的程序段,通过系统调用,把他挂入系统中。当特定的消息发出,还没到达目的的窗口时,hook会先补获该消息,即钩子函数获得控制权。(问题:钩子函数是什么呢?)钩子函数可以对该消息进行加工处理,也可以不做处理,也可以截断该消息的传递,貌似很吊的样子哈。

hook钩子还分为:系统钩子和线程钩子。

系统钩子:用于监视指定线程的事件消息;

线程钩子:一般在当前线程或者当前派生的线程内。

系统钩子会影响系统中的所有程序,所以钩子函数必须放在独立的动态链接库中(DLL),系统会自动将包含钩子的DLL映射到受钩子函数影响的所有进程的地址空间中,就是将这些DLL注入到这些进程中。(问题:什么是动态链接库,有什么用处?)

要注意的东西:

如果某一个事件,同时安装了系统钩子和线程钩子,windows系统会先调用线程钩子,再调用系统钩子。

对于同一个事件消息,可以安装多个钩子,会形成钩子链进行传递。

钩子会消耗事件消息的处理时间,降低系统性能。所以没有必要的话,就不要装钩子。

钩子机制的案例:金山词霸的屏幕取词等。

自己没有用过钩子的机制,做为小菜,有机会还是要动手实践实践!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hook机制