
建立全局钩子必须为DLL应用程序:
如下建立:
DLL程序 必有有一个程序装载他。所以还需要在做一个项目。
再新建一win32项目:
这个做成windows应用程序。
回到DLL 先做一个DLL:
DLL有一个DLLMain函数,该函数有三个参数,switch内现在只用到一个,就先写一个:然后增加键盘的钩子函数:
以下setKbHook为挂钩的设置函数实现钩子函数和其他进程挂钩。也叫安装钩子。:其要做成DLL的导出函数。
在DLL的头文件定义宏:然后把函数的声明写在头文件中:
我们想把所有的键盘输入记录到一个文本文件中首先要检查:参数为lParam
40000000一共是32位4是第三十一位 (DWORD)lParam & 40000000 表示如果第三十一位等于一,表示 原来是按下去的, 按下去是一个消息 抬起来又是一个消息,原来按下去现在抬起来我们则收到一个正常的击键 HC_ACTION =nCode. 参数wParma为键盘的虚拟键码。其大于0x2f小于0x100是正常的输入。再加上空格和回车键:

要打开文件,先声明文件指针 :并包含头文件:
重新编译发现有错误,回去更改代码 添加全局句柄:
接下来做键盘钩子的安装程序:因为键盘钩子是DLL程序,其不可独立运行,必须做一个程序来装载该DLL程序:
现在回到另一个win32项目,把DLL文件的头文件
现在回到另一个win32项目,把DLL文件的头文件
粘贴到装载程序文件夹内:
再把库文件和dll文件复制过来:
然后在win32项目中添加头文件:
这个项目是安装DLL文件其实实际上不需要界面:因为键盘钩子是做监控或盗号木马,其不要界面,看不见就行。
删除win32项目的部分代码:
只把主消息循环留下:
运行如下:无界面 程序在不停循环:
此处设定的钩子为全局钩子,所有键盘的输入都会被记录在C盘下文件内。
产看文件验证:
发现记录错误。
检查代码 修改如下:
重新拷贝新生成的文件到安装程序的文件夹内:
在此打开C盘下export.txt验证 正确。
任何键盘消息都会被记录,先打开网址,输入百度。在此查看该文件。

点击登录百度 输入账号和密码。也会被记录。