通过CmRegisterCallback学习注册表监控与反注册表监控

通过CmRegisterCallback学习注册表监控与反注册表监控
最新回答
魔怪小姐

2026-10-31 10:56:15

本文为看雪论坛优秀文章 看雪论坛作者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注入。完整内容请阅读链接。