社区
Delphi
帖子详情
我用HOOK钩住系统消息后,怎么取消系统对该消息的处理?
auto
2000-01-31 11:26:00
...全文
264
7
打赏
收藏
我用HOOK钩住系统消息后,怎么取消系统对该消息的处理?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dedema
2001-09-03
打赏
举报
回复
在全局hook中,在使用setwindowshookex函数时,能不能不在dll中声明啊?即把setwindowshookex的函数写到自己的程序中去
Hooman
2000-02-01
打赏
举报
回复
喔,Firing_Sky 的解释真详细。
我只是知道不调用CallNextHookEx 的话,这个消息处理到这就算
完了,就像jiangtao 所说。
Firing_Sky
2000-02-01
打赏
举报
回复
WINDOW下可进行挂接的过滤函数包括11种:
WH_CALLWNDPROC 窗口函数的过滤函数
WH_CBT 计算机培训过滤函数
WH_DEBUG 调试过滤函数
WH_GETMESSAGE 获取消息过滤函数
WH_HARDWARE 硬件消息过滤函数
WH_JOURNALPLAYBACK 消息重放过滤函数
WH_JOURNALRECORD 消息记录过滤函数
WH_MOUSE 鼠标过滤函数
WH_MSGFILTER 消息过滤函数
WH_SYSMSGFILTER 系统消息过滤函数
WH_KEYBOARD 键盘过滤函数
其中键盘过滤函数是最常用最有用的过滤函数类型,不管是哪一种类型的过滤函
数,其挂接的基本方法都是相同的。
WINDOW调用挂接的反调函数时总是先调用挂接链首的那个函数,因此必须将键盘挂
钩函数利用函数SetWindowsHookEx()将其挂接在函数链首。至于消息是否传递给函
数链的下一个函数是由每个具体函数功能确定的,如果消息需要传统给下一个函
数,可调用API函数的CallNextHookEx()来实现,如果不传递直接返回即可。
挂接函数可以是用来监控所有线程消息的全局性函数,也可以是单独监控某一线程
的局部性函数。如果挂接函数是局部函数,可以将它放到一个.DLL动态链接库中,
也可以放在一个局部模块中;如果挂接函数是全局的,那么必须将其放在一个.DLL
动态链接库中。挂接函数必须严格按照下述格式进行声明,以键盘挂钩函数为例:
int FAR PASCAL KeyboardProc(
int nCode,WORD wParam,DWORD lParam)
其中KeyboardProc为定义挂接函数名,该函数必须在模块定义文件中利用EXPORTS命
令进行说明;nCode决定挂接函数是否对当前消息进行处理;wParam和lParam为具体
的消息内容。
radish
2000-02-01
打赏
举报
回复
jiangtao说的不对吧,CALLNEXTHOOKEX是调用下一个HOOK,不调用应该只是不调用HOOK吧(猜的). 按WIN32API中的说法,有些HOOK只有监视功能,估计是不能取消消息的.
upstream
2000-02-01
打赏
举报
回复
同意jiangtao。
jiangtao
2000-01-31
打赏
举报
回复
处理完消息后,不要Call这个函数:CallNextHookEx
这个消息就不会再被处理
Result := CallNextHookEx (hNextMouseProc, nCode, wParam, lParam);
kxy
2000-01-31
打赏
举报
回复
自己定义一个WM_USER
把系统消息改成WM_USER
Windows
消息
处理
机制--钩子实例
钩子(
Hook
),是Windows
消息
处理
机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种
消息
,而且所监视的窗口可以是其他进程所创建的。当
消息
到达后,在目标窗口
处理
函数之前
处理
它。钩子机制允许应用程序截获
处理
window
消息
或特定事件。 钩子实际上是一个
处理
消息
的程序段,通过
系统
调用,把它挂入
系统
。每当特定的
消息
发出,在没有到达目的窗口前,钩子程序就先捕获该
消息
,亦即钩子函数先得到控制权。这时钩子函数即可以加工
处理
(改变)该
消息
,也可以不作
处理
而继续传递该
消息
,还可以强制结束
消息
的传递。
一款改自IP
Hook
的IP数据包监控过滤程序
一款改自IP
Hook
的IP数据包监控过滤程序 By ccc 2009-6-13 完成(ch2zh1@tom.com) IP包过滤程序采用IP
Hook
驱动器程序,在内核层用钩子回调函数(Ip
Hook
Filter)勾住
系统
自带的IP过滤驱动器(System32\Drivers\IpFltDrv.sys),从而返回过滤驱动器传输的所有IP包数据。可以通过回调函数的返回值(PF_DROP、PF_FORWARD、PF_PASS),指示滤波驱动器对包的
处理
,是抛弃还是通过。 应用启动驱动器过程可以使用驱动器的安装,或使用
系统
的服务控制器(ServiceControl)直接启动和停止驱动程序。 服务控制器利用OpenSCManager等服务控制函数控制驱动程序的加载与卸载。这就使得应用程序可以在运行时自动加载和卸载需要的驱动程序。而不必设置驱动程序的安装过程。 初始的IP
Hook
.sys只提供了IP包的监视过程即,仅仅返回IP头信息。在应用中解释并显示这个头信息。经过写改的IP
Hook
增加了对IP包的过滤
处理
,有几个设置命令: START_IP_
HOOK
:启动钩子过滤命令,建立连接IP滤波器的回调函数(原始命令) STOP_IP_
HOOK
:停止钩子过滤命令,撤销IP滤波器回调函数(原始命令) ADD_IP_
HOOK
ADDR :添加过滤IP地址,回调函数判断IP包,以决定是放弃还是通过(新命令) DEL_IP_
HOOK
ADDR :删除过滤IP地址(新命令) ADD_IP_
HOOK
PORT :添加过滤端口号(新命令) DEL_IP_
HOOK
PORT :删除过滤端口号(新命令) ADD_IP_OVER_
HOOK
:添加置换的IP地址,用于对指定目的的IP包置换源地址和端口号(New) DEL_IP_OVER_
HOOK
:
取消
IP地址置换。(New) 应用程序可一次设置和删除对个滤波地址和端口号。对于重复设置,IP
Hook
可以正确识别并加以剔除。这是一个演示程序主要想说明windows2000驱动程序编程过程,及应用自动加载和卸载驱动的方式。 驱动程序的源码在DrvChecked.rar中,要想正确编译,必须安装windows2000 DDK,并在VS2003下设置包含目录指向DDK的目录,库目录也要指向DDK的库目录: C:\NTDDK\inc C:\NTDDK\inc\ddk C:\NTDDK\libchk\i386 并且在排列上一定要排在头两个位置上。 这个驱动程序在VC++下是可以正确编译通过的。驱动程序名:DrvChecked.sys。使用时应该改为:ip
hook
.sys。delphi下的应用程序为:IPPacketMonitor.exe,它使用IP
Hook
.sys。 任何人可以自己编译和修改这个驱动程序,使之能够按照一定的方式运行,这里给出的只是本人的一个想法,希望能给各位带来一点帮助。任何应用程序都可以想打开文件一样使用这个驱动程序,关于使用方法请参考Release Notes.htm提供的线索。 有什么问题和建议请电邮:ch2zh1@tom.com
易语言使用
hook
逆向技术实现WX常用功能操作专题课程
本课程主要是讲解了WX的PC版中使用
hook
技术来达到目前一些流行需求的目的。主要用的工具是ce,od,易语言,本课程只做技术分享交流,请勿用于非法用途。
什么是
HOOK
(钩子):
消息
拦截与
处理
对于Windows
系统
,它是建立在事件驱动机制上的,说白了就是整个
系统
都是通过
消息
传递实现的。
hook
(钩子)是一种特殊的
消息
处理
机制,它可以监视
系统
或者进程中的各种事件
消息
,截获发往目标窗口的
消息
并进行
处理
。所以说,我们可以在
系统
中自定义钩子,用来监视
系统
中特定事件的发生,完成特定功能,如屏幕取词,监视日志,截获键盘、鼠标输入等等。 钩子的种类很多,每种钩子可以截获相应的...
【windows核心编程】
系统
消息
与自定义钩子(
Hook
)使用
一、
HOOk
Hook
是程序设计中最为灵活多变的技巧之一,在windows下,
Hook
有两种含义: 1、
系统
提供的
消息
Hook
机制 2、自定义的
Hook
编程技巧 其中,由
系统
提供的
消息
钩子机制是由一系列的API提供的一种服务,这个
系统
的API可以完成对大多数应用程序关键节点的
Hook
操作,为此,windows为每种
Hook
类型维护了一个钩子链表,我们可以通过一个
系统
API来完成对整个
系统
...
Delphi
5,388
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章