又到了每月XXXX时间……真是没的写啊没的写,拿出点压箱底的东东吧,大概介绍一下Windows中的钩子(Hooks)
我知道的大概这么几种……困
1. 消息钩子,可以截获每个程序的Windows消息进行处理。这个东西最常见,就是调用传说中的API, CreateHook...(好像是这个) 大家都在用这个东东来拦截传给窗口的消息,算是最大众化的Hook了,至于明细如何,自己去搜索"WH_"开头的消息,我就不废话了
2. 函数钩子,可以截获程序中调用的系统API进行处理。这个东西相对少见,主要是不好写,每个计算机平台还不能用一样的代码,自己直接写内存还是有点小麻烦的,不过,有个传说中的API库叫Detours, 用起来相当方便,是传说中的MSRA在维护的(恨啊,64位的版本要收费,还是得自己写),基本原理去看看Detours的说明书就OK了,全英文的,不过比较清晰,我半个小时就学会了
3. 混合型钩子,可以入侵到其他程序中修改其他程序的内存,API入口和消息。这个代码很罕见有公开的,都是些商业软件,自认为这是什么秘密技术,我下面就会主要说说这个钩子。
4. 驱动钩子……这个东西姑且这样命名,在驱动层ring0级别的,目前我的电脑已经蓝屏很多次了……研究中,可能下个月发出来。
懒得写了,这事不好说太细,直接上代码 :")
InjectNotepad 这个程序就是利用3型的钩子来入侵并截获Notepad这个程序的行为,比如改改Notepad的背景色,拦截一下Notepad的打开,关闭操作。
程序位置:http://download.csdn.net/detail/Vonger/3589553
没什么秘密可说的,代码什么都说了。爱研究的就拿去看着玩吧,搞这东西当时可是花了我挺多时间的。
至于有啥用?哼哼,正经用途目前发现的很少,用来搞什么破解,外挂倒是用的很多。
三更半夜的估计写的这东西也只有我自己看得懂,见谅见谅。