Win32汇编——钩子

本文介绍了Windows钩子的基本概念,包括局部和远程钩子的区别,以及钩子程序的三个关键模块:主程序、钩子回调函数和安装/卸载模块。详细阐述了安装和卸载钩子的函数SetWindowsHookEx和UnhookWindowsHookEx,并解析了钩子回调函数的写法和钩子链的工作原理。特别提到了日志记录钩子,作为远程钩子的一种特例,其回调函数返回值不影响消息传递。
摘要由CSDN通过智能技术生成

1.概念:钩子是Windows消息处理机制中的一个监视点,应用程序可以在这里安装一个监视子程序,在消息流到达目的窗口前监控它们。监视函数是一个处理消息的回调函数,也称为“钩子函数”

2.类型:

      局部钩子:仅挂钩自身进程的事件

      远程钩子:可分为基于线程的和系统范围的,远程钩子的钩子函数必须位于共享数据段的动态链接库中(除日志记录钩子和日志回放钩子外)

   具体类型见书P405

3.钩子程序的结构——3个功能模块

① 主程序——用来实现界面或者其他功能
② 钩子回调函数——用来接收系统发过来的消息
③ 钩子的安装和卸载模块
一般情况下,远程钩子,第②、③部分放在动态链接库中;局部钩子的这些模块可以处在同一个可执行文件中。

4.相关函数:

安装钩子:SetWindowsHookEx

卸载钩子:UnhookWindowsHookEx

5.钩子回调函数写法:(不同类型钩子,参数和返回值的定义不同)

HookProc	proc	dwCode,wParam,lParam
		invoke	CallNextHookEx,hHook,_dwCode,_wParam,_lParam
		;处理消息的代码
		mov	eax,返回值
		ret
HookProc	endp
6.键盘钩子:参数定义、GetKeyboardState、GetKeyState、ToAscii  详见P412

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值