浅议Visual Basic.NET中HOOK的应用 | ||||
|---|---|---|---|---|
| http://www.sina.com.cn 2005年02月03日 09:40 天极yesky | ||||
|
文/CQFZ 本文不是讲解Hook原理的文章,仅是讨论一下在vb.net如何调用Hook功能,以及vb.net中API使用的变化问题。由于Hook种类较多,本文中以最常用的键盘Hook为例进行分析。 一、先来看一下在vb中是如何实现的 截的是空格键。表现的目标是:一个form,上面有一个textbox,不管焦点是否落在textbox里,按空格键,不会在textbox中输入一个空格,而是变成在textbox中写入一句话:“HOOK成功!” 1.在一个Module中写入下列代码: 调用的API的申明:
函数说明:本函数是用于启动Hook设置。 idHook是Hook的类型,即处理的消息类型。 Lpfn是Hook子程(函数或过程)的地址指针。如果dwThreadId参数为0或是一个由别的进程创建的线程的标识,lpfn必须指向DLL中的Hook子程。除此以外,lpfn可以指向当前进程的一段Hook子程代码(我们利用的就是这个性质)。 hMod是应用程序实例的句柄,标识包含lpfn所指的子程的DLL。如果dwThreadId 标识当前进程创建的一个线程,而且子程代码位于当前进程,hMod必须为NULL。 dwThreadId是与安装Hook子程相关联的线程的标识符,如果为0,Hook子程与所有的线程关联。 返回值:函数成功则返回Hook子程的句柄,失败返回NULL。
函数说明: 本函数是解除Hook之用。hHook是Hook函数的句柄。
|







