Copy-On-Write机制,全局hook(一)

本文探讨了在Ring3下全局Hook的多种方法,包括SetWindowsHookEx、注册表注入、CreateRemoteThread等。重点介绍了通过禁用Copy-On-Write(COW)机制实现全局Hook的原理,详细解析了_x86_硬件页表结构,指出COW在DLL页面中的作用。通过调试器实验展示了如何改变页面权限触发COW,强调了COW与写保护位的配合使用。
摘要由CSDN通过智能技术生成

    我本来想在ring3下全局hook,大约有这么几种方法:

1: 用SetWindowsHookEx,安装的钩子类型,如WH_GETMESSAGE,WH_KEYBOARD等,但这种方法只能挂接系统中的所有GUI线程。

2: 还有一种通过插入注册表来实现 HKEY_LOCAL_MACHINE/Software/Microsoft/Windows NT/CurrentVersion/Windows/AppInit_DLLs,这种方法简单,但是还是只能挂钩GUI 程序,并且这个键值已经被广大HIPS所关注,吃力不讨好。

3: 用CreateRemoteThread注入到系统所有进程,但这种方法效率太低,特别是实时性太差,因为它要不停循环扫描所有进程,如果突然新建一个进程可能要过好久才能注进去,可能会漏掉很多API。

4: 通过挂钩NtResumeThread实现全局Hook,这种方法比较好,可以看http://www.xfocus.net/articles/200805/981.html

5: 禁用Copy-On-Write机制实现全局hook,但是难度很大,最终还是要去ring0禁用,http://www.xfocus.net/articles/200510/830.html (它是非PAE的)

 

说起Copy-On-Write,先看一个结构

struct   _hardware_pte_x86 (sizeof=4)
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值