本文为看雪论坛优秀文章 看雪论坛作者ID:1900实验环境为Win7 X86系统,文章内容围绕DLL注入技术与注册表修改展开。通过CmRegisterCallback,实现对注册表修改的监控,以阻止修改。文章提供详细逆向分析步骤,以实现监控函数的删除。在Windows系统中,CmRegisterCallback用于设置注册表监控回调函数。该函数在文档中有明确定义,当返回值非STATUS_SUCCESS时,系统会拒绝相应注册表操作。注册表监控涉及多个回调类型,如REG_NOTIFY_CLASS,其常用类型及对应Argument2结构体内容列举。关键成员如PREG_CREATE_KEY_INFORMATION、PREG_DELETE_KEY_INFORMATION、PREG_DELETE_VALUE_KEY_INFORMATION、PREG_SET_VALUE_KEY_INFORMATION结构体定义。通过ObQueryNameString函数获取键操作名称,OBJECT_NAME_INFORMATION仅包含UNICODE_STRING的Name参数,保存返回名称。实现对监控函数删除,使用CmUnRegisterCallback,文档定义明确,提供唯一参数Cookie地址。文章提供具体实现代码,实现对注册表的监控,拒绝AppInit_DLLs注入。完整内容请阅读链接。