利用CmRegisterCallback函数在Windows下保护注册表项
2011-03-31 13:38
369 查看
一般在Windows下保护注册表有以下几种方法:
1. Ring3 hook
实现简单。可利用微软的Detour库,第三方的mhook库,或者自己实现。
但是如果是做产品的话不得不考虑兼容性的问题,纵使周知,大量的病毒、木马和恶意程序使用同样的方法来隐藏或者保护自身
的注册表项和键值,基本上所有基于行为监控的安全类软件都会向用户报告此类程序为恶意程序。
2. Ring0 hook
原理和Ring3 hook基本上一致,但是因为实现在内核层,不用插入动态链接库到每一个进程中,所以一般的安全类软件都不会
提示用户。但是从VISTA64位开始,微软在64位系统的内核中加入了PatchGuard机制,来保护系统关键代码和位置不被修改
和破坏。而需要hook的SSDT表就在PatchGuard的保护之下,虽然已经有办法绕过PatchGuard, 但是考虑到兼容性问题,
不建议采用这种办法。
有关绕过patchguard的文章,可参考
http://www.codeproject.com/KB/vista-security/bypassing-patchguard.aspx
3. 利用CmRegisterCallback或者CmRegisterCallbackEx注册回调函数,推荐使用这种方法。支持XP以后的系统,同时支持
32位和64位。
1. Ring3 hook
实现简单。可利用微软的Detour库,第三方的mhook库,或者自己实现。
但是如果是做产品的话不得不考虑兼容性的问题,纵使周知,大量的病毒、木马和恶意程序使用同样的方法来隐藏或者保护自身
的注册表项和键值,基本上所有基于行为监控的安全类软件都会向用户报告此类程序为恶意程序。
2. Ring0 hook
原理和Ring3 hook基本上一致,但是因为实现在内核层,不用插入动态链接库到每一个进程中,所以一般的安全类软件都不会
提示用户。但是从VISTA64位开始,微软在64位系统的内核中加入了PatchGuard机制,来保护系统关键代码和位置不被修改
和破坏。而需要hook的SSDT表就在PatchGuard的保护之下,虽然已经有办法绕过PatchGuard, 但是考虑到兼容性问题,
不建议采用这种办法。
有关绕过patchguard的文章,可参考
http://www.codeproject.com/KB/vista-security/bypassing-patchguard.aspx
3. 利用CmRegisterCallback或者CmRegisterCallbackEx注册回调函数,推荐使用这种方法。支持XP以后的系统,同时支持
32位和64位。
相关文章推荐
- 利用Windows外壳扩展保护文件夹
- 利用Windows外壳扩展保护文件夹
- 利用集成 windows身份验证在 IIS中承载此服务,以保护服务器
- 利用Windows外壳扩展保护文件夹
- 如何利用Windows自带功能保护私密信息
- Windows平台下利用CSP来实现加密保护
- 利用Windows外壳扩展保护文件夹
- 利用Windows外壳扩展保护文件夹
- 发布 web虎(2011-Windows加密狗版)-软件加密保护模块i111208版-修订1!增加支持功能:静默安装过程中,利用setup.ini预置安装参数,不需手工输 新建answer file做
- 利用windows未公开API,实现format函数
- WINDOWS编程--32程序操作系统的注册表项的方法
- 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
- 利用组策略进行的一次Windows主机安全整改
- windows下利用nginx 做IIS负载均衡
- Windows利用Github创建共享库
- 【引用】windows溢出保护原理与绕过方法概览 V2.0(2011/5/9更新)
- 保护眼睛的Windows、PDF和IE、Firefox、谷歌等浏览器颜色设置
- Windows利用conda命令管理Python环境
- Windows下利用jad批量反编译class文件
- 利用securecrt在linux与windows之间传输文件