洞察企业如何通过FinClip提升跨平台小程序加载效率,适应多样化市场需求
863
2022-09-16
[笔记]Windows核心编程《番外篇》几种Hook类型
文章目录
前言消息HookWINAPI Hook驱动层Hook
前言
Windows中的Hook机制
Hook,中文里常常被译作“钩子”或者“挂钩”,其实是Windows操作系统里的一种中断消息机制。 可以把Hook理解为Windows操作系统消息处理机制的一个平台;应用程序可以通过设置Hook对某个进程或窗口进行监视,即:对特定事件“挂钩”;一旦预定义特定事件发生,Windows操作系统即会向钩子hook发送通知消息,这时,应用程序可进行响应。
消息Hook
参考
Hook是WINDOWS提供的一种消息处理机制,它使得程序员可以使用子过程来监视系统消息,并在消息到达目标过程前得到处理。 HOOK链 WINDOWS提供了几种不同类型的HOOKS;不同的HOOK可以处理不同的消息。例如,WH_MOUSE HOOK用来监视鼠标消息。 WINDOWS为这几种HOOKS维护着各自的HOOK链。HOOK链是一个由应用程序定义的回调函数队列,当某种类型的消息发生时,WINDOWS向此种类型的HOOK链的第一个函数发送该消息,在第一函数处理完该消息后由该函数向链表中的下一个函数传递消息,依次向下。如果链中某个函数没有向下传送该消息,那么链表中后面的函数将得不到此消息。(对于某些类型的HOOK,不管HOOK链中的函数是否向下传递消息,与此类型HOOK联系的所有HOOK函数都会收到系统发送的消息) HOOK过程 为了拦截特定的消息,你可以使用SetWindowsHookEx函数在该类型的HOOK链中安装你自己的HOOK函数。
SetWindowsHookEx()
WINAPI Hook
API Hook的几种实现
API Hook,就是利用某种技术将API的调用转为我们自己定义的函数的调用。
API Hook有这么几种方法:
改写函数的首地址。改写导入表改写虚函数表。
驱动层Hook
用HOOK来修改API函数的功能(5)-EXE和WDM驱动通信
类似的做过远程投屏的相关的就知道,有一种获取屏幕画面的方法就是通过驱动hook拿到显示器画面。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~