全局钩子 实例(不使用DLL和使用DLL两种)
大家应该都知道,全局消息钩子要依赖于一个DLL才能够正常工作。于是呢,我也就理所当在地认为全局钩子都要依赖于一个DLL才能正常工作的,我想大部分人肯定和我一样也这么认为的。
但实际上不是这样的。有某些全局钩子可以不依赖于任何DLL而正常工作的。这些钩子包括,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.”,翻译成中文意思是钩子函数的调用是在安装钩子的线程上下文中进行的,说得更明白些,意思就是这些钩子是在哪个线程当中安装的,其钩子函数就在哪个线程中执行。所以使用这四种钩子是达不到代码注入的效果的,当然也就可以不依赖于任何DLL了。MSDN中只对个别钩子指出了必须还是没有必要使用DLL。
有某些全局钩子可以不依赖于任何DLL而正常工作的。这些钩子包括,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.”,翻译成中文意思是钩子函数的调用是在安装钩子的线程上下文中进行的,说得更明白些,意思就是这些钩子是在哪个线程当中安装的,其钩子函数就在哪个线程中执行。所以使用这四种钩子是达不到代码注入的效果的,当然也就可以不依赖于任何DLL了。
最新文章
- python学习笔记-(十四)I/O多路复用 阻塞、非阻塞、同步、异步
- Linux学习方法
- MongoEngine简易教程(转)
- ios 用户相册
- SQL Server里PIVOT运算符的”红颜祸水“
- 【POJ 2096】Collecting Bugs 概率期望dp
- GROUPING SETS、CUBE、ROLLUP
- Android -- 获取汉字的首字母
- javascript中alert()与console.log()的区别
- Windows Azure功能更新:SQL Server AlwaysOn和Notification Hub 正式商用
- 【转】网络视频监控P2P解决方案
- C#手机充值
- v$lock 视图访问慢解决方法
- XML 从基础到精通
- poj_2528Mayor's posters(线段树)
- FPGA学习笔记(四)——Verilog基本语法
- 呕心沥血之作,最多坑mysql5.7安装教程
- spring05-Spring事务管理
- python之 MySQLdb 实践 爬一爬号码
- javascript 和 下拉列表