首页
论坛
专栏
课程

[商业保护] 突然,突然的臆想。

2012-11-13 12:56 3141

[商业保护] 突然,突然的臆想。

2012-11-13 12:56
3141
今天偶然看到一片文章,是讲windows消息钩子机制的。

产生了一点疑问。
我对某其它进程的某窗口线程挂钩某消息后,其消息对应的钩子处理函数依然在本进程内,
那么对方的进程收到消息后是如何调用到我进程内的函数的呢? 如果是系统调用的,为何全局钩子却需要一个dll?

[公告]安全服务和外包项目请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (4)
xiejienet 2012-11-13 13:14
2
0
你用个进程查看工具看看目标进程的模块,如果挂钩成功,就会看到你的dll其实已经运行在目标进程里了.这有点像"自动注入".所以不是调用你进程内的函数,是你的函数通过dll的形式跑到对方进程里去了.
hrpirip 1 2012-11-13 13:21
3
0
哦,是我理解错误了,抱歉。
基于线程的并不算注入,系统调用了我们的回调函数对消息处理,而后我们的处理后的消息返回给系统,系统继续往对方程序的消息队列派发消息。
全局钩子则可以带着函数的dll进入对方进程。
KiDebug 4 2012-11-14 19:19
4
0
看win2k源代码吧,一下子就明白了
hrpirip 1 2012-12-2 22:40
5
0
我也不知道为什么我写的钩子注入会是那么个情况,提示注入成功,而窗口却属于本进程。

别人写的钩子注入却可以直接注入到目标程序。但当这段代码移到32位上执行的时候却又可以了。
游客
登录 | 注册 方可回帖
返回