开yun官网入口登录APP下载 核心编程[1]钩子基本原理.doc

核心编程 [1] Hooks 基本原理 前言 我以前对 hacking 很痴迷,每次看到高手们在网上贴出来的攻击检测程序,就羡慕不已,要是哪天我也能写出这样的程序就好了。然而,我当时也只能羡慕他们开yun官网入口登录APP下载,因为我不懂英文,也不会中文编程语言。直到有一天,我在报纸或杂志上看到关于彝语的新闻。……现在看到论坛上很多人在吐槽彝语,说这个不好,那个不好。其实,彝语还是一棵正在成长的小树,当然不能和一些​​成长多年的大树相比。但不是有句话说得好“后浪推前浪,山高过山高”吗?好了,废话不多说了,我们还是回到 hooks 的基本概念上来。本期内容介绍:什么是钩子,钩子有什么作用,钩子有哪些类型,如何使用,这些问题的答案都将在本期内容中找到=...

钩子机制允许应用程序截取并处理窗口消息或特定事件。钩子实际上是一个处理消息的程序段,它通过系统调用被挂接到系统中。每当一个特定消息发出时,在到达目的窗口之前,钩子程序会先捕获该消息,即钩子函数先获得控制权。此时钩子函数可以处理(改变)该消息,也可以不处理而继续传递该消息,还可以强制结束该消息。 运行机制 1、钩子列表与钩子子进程: 每个Hook都有一个关联的指针列表,称为钩子列表,由系统维护。这个列表中的指针指向Hook子进程调用的指定的、应用程序定义的回调函数,即钩子的各个处理子进程。当与指定Hook类型关联的消息发生时,系统将该消息传递给Hook子进程。有些Hook子进程只能监视消息,或者修改消息kaiyun 官方网站,或者阻止消息前进,以防止这些消息被传递给下一个Hook子进程或目的窗口。最近安装的钩子被放在链的开头,最早安装的钩子被放在链的末尾,也就是说,后加入的钩子首先获得控制权。Windows 并不要求钩子程序的卸载顺序必须与安装顺序相反。每当一个钩子被卸载时,Windows 就会释放它所占用的内存并更新整个钩子列表。

如果程序安装了钩子,但是在卸载钩子之前就结束了,那么系统会自动帮它卸载这个钩子。钩子过程是应用程序定义的回调函数,它不能定义为类的成员函数,只能定义为普通的C函数,用来监视系统或者某些类型的事件,这些事件可以与系统中的某个线程或者所有线程相关联。钩子过程必须遵循下面的语法: LRESULT CALLBACK HookProc(int nCode, WPARAM wParam, LPARAM lParam); 当然上面是C语言中的表达方式,也就是说这个直接定义的钩子过程必须有3个参数,在C语言中应该这样表达: .子程序HookProc,整型,公共的,钩子回调函数。 参数ncode,整型。 参数wParam,整型。 参数lParam,整型 HookProc是应用程序定义的名字。 nCode参数是Hook代码,它被Hook子程序用来判断任务。该参数的值取决于Hook类型,每个Hook都有自己的一组Hook代码特征。wParam和lParam参数的值取决于Hook代码开yun体育官网入口登录app下载,但它们的典型值包含有关发送或接收消息的信息。

2、钩子的安装与释放:钩子的安装使用API​​函数SetWindowsHookEx()将一个应用程序定义的钩子处理程序安装到钩子链列表中。SetWindowsHookEx函数总是把Hook处理程序安装在Hook链的开头。当指定类型的Hook监视的事件发生时,系统就调用与此Hook关联的Hook链开头的Hook处理程序。Hook链中的每个Hook处理程序决定是否将事件传递给下一个Hook处理程序。Hook处理程序需要调用CallNextHookEx函数将事件传递给下一个Hook处理程序。HHOOK SetWindowsHookEx(int idHook, //参数 HOOKPROC lpfn, //参数 HINSTANCE hMod, //参数 DWORD dwThreadId //参数);在Yi中,DLL声明如下:.DLL命令api_SetWindowsHookEx

关键词:

客户评论

我要评论