美文网首页
Hook简介

Hook简介

作者: eesly_yuan | 来源:发表于2015-07-27 01:12 被阅读188次
概要
  • windows消息机制:os监听\捕捉事件->os向应用程序消息队列发送消息->应用程序利用getmessage获取消息队列里的一条消息->调用dispatchmessage分发消息调度给os->os调用回调函数
    hook:即钩子,用于监控消息在系统内部的传递,可以截获、处理windows消息,并调用预先定义好的功能性的回调函数。
hook原理
  • 1、系统维护着一个钩子链,每安装一个hook都会再钩子链上添加一个元素,即一个指向钩子处理函数的指针;
  • 2、钩子链处理消息时候,采用先进后处理的方式,对于系统的每一个消息都会经过钩子链条上的每一个钩子;
  • 3、当消息类型与钩子监视的类型一致时,钩子会截获该消息,进行相应的处理,处理后可继续传递、可修改、或者阻止。
  • 钩子消息处理会影响系统性能,故无需使用时及时卸载; 卸载不需要按顺序;安装钩子的进程结束时,系统会自动卸载器安装的钩子
api
  • 安装钩子
HHOOK WINAPI SetWindowsHookEx( 
_In_ int       idHook, //监视的消息类型
_In_ HOOKPROC  lpfn,  //钩子处理函数地址
_In_ HINSTANCE hMod, //钩子处理函数所在的模块,当前进程该项可写成NULL
_In_ DWORD     dwThreadId //需要监视的线程ID,0为监视当前所有运行的线程
);

钩子处理函数调用过程:当进程A的线程准备向any进程发送消息时,如果消息正在被监视,则将被钩子截获,系统将检查该钩子的钩子函数所在的DLL是否已经被映射进程A的地址空间中。如果尚未映射,系统会强制将该DLL映射到进程A的地址空间。然后获得钩子函数在进程A的虚拟地址,并调用钩子函数。(这也是DLL注入的一种方式)

  • 其他api
BOOL WINAPI UnhookWindowsHookEx(_In_ HHOOK hhk); //卸载钩子
LRESULT WINAPI CallNextHookEx(  //传递消息给下一个钩子
_In_opt_ HHOOK  hhk, 
_In_     int    nCode, 
_In_     WPARAM wParam, 
_In_     LPARAM lParam);
  • 钩子处理函数
LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam) {
    ...
    return CallNextHookEx(hhook, nCode, wParam, lParam); 
}
ref

相关文章

  • Hook简介

    概要 windows消息机制:os监听\捕捉事件->os向应用程序消息队列发送消息->应用程序利用getmessa...

  • 解决 hint to automatically insert

    commit-msg hook 简介 这个 hook 由 git commit 触发, 且可以通过 --no-ve...

  • react hook

    hook 简介 Hook 是一个特殊的函数,它可以让你“钩入” React 的特性,常见的hook如下: useS...

  • Android Hook 简介

    1.Hook基本概述 Hook翻译过来是钩子的意思,我们都知道无论是手机还是电脑运行的时候都依赖系统各种各样的AP...

  • React HooK简介

    Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他...

  • React Hook简介

    本文引自 https://zh-hans.reactjs.org/docs/hooks-intro.html Ho...

  • React Hook - 简介

    可以在不编写 class 的情况下使用 state 以及其他 React 特性 为什么要引入 hooks? 在组件...

  • React Hook

    Hook 简介 State Hook React 假设当你多次调用 useState 的时候,你能保证每次渲染时它...

  • mitmproxy笔记

    简介 待施工。。。 支持addon hook一览

  • JAVA多线程(六)之Hook 线程以及获取线程执行异常

    Hook 线程 简介 Hook线程也叫钩子线程,通常我们在运行的时候向应用程序注入一个或者多个Hook(钩子)线程...

网友评论

      本文标题:Hook简介

      本文链接:https://www.haomeiwen.com/subject/rgjmqttx.html