- 注册时间
- 2010-7-31
- 最后登录
- 2010-7-31
- 在线时间
- 0 小时
编程入门
- 魔鬼币
- 6
|
楼主 |
发表于 2010-7-31 13:28:34
|
显示全部楼层
呵呵,有点昏昏的感觉吗?不要紧的,多看几次就会好的!
好了好了,,这这期的勾子基本期的勾子基本概概念就算念就算讲讲完了完了,,让让我我们们来来总结总结一下一下::
1.1.钩钩子的基本子的基本概概念及作用念及作用
钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时
钩钩子函子函数数即可以加工即可以加工处处理(改理(改变变))该该消息,也可以不作消息,也可以不作处处理而理而继续传递该继续传递该消息,消息,还还可以可以强强制制结结束消息的束消息的传递传递。。
2.2.使用使用APIAPI函函数数SetWindowsHookEx()SetWindowsHookEx()安安装装钩钩子子..
在易中则这样声明DLL:
.DLL.DLL命令 命令 SetWindowsHookExA, SetWindowsHookExA, 整整数数型型, , ", , "SetWindowsHookExA"SetWindowsHookExA"
..参数参数 idHook, idHook, 整整数数型型
.参数 lpfn, 子程序指针
..参数参数 nMod, nMod, 整整数数型型
.参数 dwThreadID, 整数型
3.用API函数CallNextHookEx来传递钩子
.DLL.DLL命令 命令 CallNextHookEx, CallNextHookEx, 整整数数型型, , ", , "CallNextHookEx"CallNextHookEx"
.参数 hhook, 整数型
..参数参数 nCode, nCode, 整整数数型型
.参数 wParam, 整数型
..参数参数 lParam, lParam, 整整数数型型
4.4.用用APIAPI函函数数UnHookWindowsHookEx()UnHookWindowsHookEx()来来卸卸载钩载钩子子
.DLL命令 api_UnhookWindowsHookEx, 逻辑型, , "UnhookWindowsHookEx"
..参数参数 hhook, hhook, 整整数数型型
我我们们拿最常用的上面的第拿最常用的上面的第个个WH_GETMESSAGE(3) Hook WH_GETMESSAGE(3) Hook 来来说说明一下明一下::
看看下面这段易代码你就会明白的:
hMod = LoadLibraryA (取运行目录 () + “\HookDLL.dll”)'装载动态链接库
lpProc lpProc ==GetProcAddress (hMod, GetProcAddress (hMod, ““GetMsgProcGetMsgProc””) ') '定位定位钩钩子回子回调调函函数数函函数数
hhook = SetWindowsHookExA (#WH_GETMESSAGE, lpProc, hMod, 0) '安装钩子
好了好了,,这这期的理期的理论论知知识识就到就到这这了了 |
|