Windows:Hook基础

什么是HOOK

来源:百度百科

Hook是Windows中提供的一种用以替换DOS下“中断”的系统机制,中文译为“挂钩”或“钩子”。在对特定的系统事件进行hook后,一旦发生已hook事件,对该事件进行hook的程序就会收到系统的通知,这时程序就能在第一时间对该事件做出响应。

钩子(Hook),是Windows消息处理机制的一个平台,应用程序可以在上面设置子进程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。

钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。

DOS时代的HOOK

DOS时代,操作系统提供的编程接口不是API,而是中断向量表,DOS时代的HOOK技术也就是修改中断向量表中的中断地址。
比如:要捕获写操作,就修改中断向量表中关于写文件的中断的地址,将其替换为自定义函数的地址,在自定义函数结束后,再继续调用原来的中断地址。这样,当有程序调用写操作时,自定义函数就会被调用,调用完毕后,才执行真正的写操作。

钩子分类

Inline Hook

IAT Hook

EAT Hook

Windows钩子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值