知道什么是为什么叫钩子吗??不知道不要乱说@BS刚才那个投票的@!!

社区服务
高级搜索
猴岛论坛DNF地下城与勇士知道什么是为什么叫钩子吗??不知道不要乱说@BS刚才那个投票的@!!
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
2个回复

知道什么是为什么叫钩子吗??不知道不要乱说@BS刚才那个投票的@!!

楼层直达
ruiyang0258

ZxID:2891763

等级: 准尉
没挂``我还活着!
举报 只看楼主 使用道具 楼主   发表于: 2009-03-30 0
钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。Hook API是指Windows开放给程序员的编程接口,使得在用户级别下可以对操作系统进行控制,也就是一般的应用程序都需要调用API来完成某些功能,Hook API的意思就是在这些应用程序调用真正的系统API前可以先被截获,从而进行一些处理再调用真正的API来完成功能。
  HOOK分为三种:LOCAL HOOK 和 REMOTE HOOK,还有一种是SYSTEM-WIDE LOCAL HOOK。LOCAL HOOK就是指程序HOOK的就是本程序中的线程。REMOTE HOOK有两种形式:一种是对其他程序中某个特定的线程;一种是对整个系统。SYSTEM–WIDE LOCAL HOOK 是一种比较特殊的。它具有REMOTE HOOK的功能,又可以用LOCAL HOOK 的表现手法,实际上就是WH_JOURNALRECORD和WH_JOURNALPLAYBACK两种HOOK。REMOTE HOOK 必须封装在DLL中。这是因为REMOTE HOOK是针对整个系统或其他进程的线程,因此HOOK必须封装成DLL,才可以植入到其他进程进行监控。而SYSTEM-WIDE LOCAL HOOK采用的是另外一种架构,系统中的线程请求或获得一个硬件消息的话,系统会调用那个安装有HOOK的线程,并执行它的FILTER FUNCTION.然后再返回给请求硬件消息的线程。这种架构有一个缺点就是如果HOOK FILTER FUNCTION的处理中进入无限循环的话,那么整个系统将停留再循环中,无法切换到其他线程。为了处理这个缺陷,WINDOW使用了一个办法来处理:就是CTRL+ESC键,如果用户按下CTRL+ESC键,则系统将会发送一个WM_CANCELJOUNAL消息到有挂上JOUNAL 系列HOOK的线程上面
@
大山地

ZxID:5262101

等级: 下士
举报 只看该作者 沙发   发表于: 2009-03-30 0
学到了一点
a5519698

ZxID:4001630

等级: 列兵
举报 只看该作者 板凳   发表于: 2009-03-30 0
我顶 我顶 我拼命顶。  我顶你妈妈到高潮!!!@@@@@

楼主留言:

注意素质!

« 返回列表
发帖 回复