不依赖于DLL就能工作的全局钩子

上传人:飞*** 文档编号:25834973 上传时间:2017-12-18 格式:DOC 页数:2 大小:20KB
返回 下载 相关 举报
不依赖于DLL就能工作的全局钩子_第1页
第1页 / 共2页
不依赖于DLL就能工作的全局钩子_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《不依赖于DLL就能工作的全局钩子》由会员分享,可在线阅读,更多相关《不依赖于DLL就能工作的全局钩子(2页珍藏版)》请在金锄头文库上搜索。

1、不依赖于 DLL 就能工作的全局钩子不知道大家是通过什么开始对钩子(Hook)有了解的,我是看过 Jeffrey Richter 的WINDOWS 高级编程指南 (新版的中文译名为Windows 核心编程 ) 。在这本书里作者介绍了三种将代码注入其他进程的方法,其中一种就是使用的全局消息钩子。我就是从这本书里对全局钩子有了最初的认识。大家应该都知道,全局消息钩子要依赖于一个 DLL 才能够正常工作。于是呢,我也就理所当在地认为全局钩子都要依赖于一个 DLL 才能正常工作的,我想大部分人肯定和我一样也这么认为的。但实际上不是这样的。有某些全局钩子可以不依赖于任何 DLL 而正常工作的。这些钩子包

2、括,WH_JOURNALPLAYBACK,WH_JOURNALRECORD,WH_KEYBOARD_LL,WH_MOUSE_LL。为什么这些钩子可以不依赖于 DLL 而正常工作呢?我们可以从 MSDN 中得到答案,MSDN 中对于这四种钩子都这样的描述“This hook is called in the context of the thread that installed it.”,翻译成中文意思是钩子函数的调用是在安装钩子的线程上下文中进行的。说得更明白些,意思就是这些钩子是在哪个线程当中安装的,其钩子函数就在哪个线程中执行。所以使用这四种钩子是达不到代码注入的效果的,当然也就可以不依

3、赖于任何DLL 了。MSDN 中只对个别钩子指出了必须还是没有必要使用 DLL。下面是我给出的一个底层键盘钩子的代码示例,当然是不需要 DLL 的。/*kbhook.cpp*/#define _WIN32_WINNT 0400#define STRICT#define WIN32_LEAN_AND_MEAN#include #include #include DWORD g_main_tid = 0; HHOOK g_kb_hook = 0;BOOL CALLBACK con_handler (DWORD)PostThreadMessage (g_main_tid, WM_QUIT, 0, 0);return TRUE;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号