在windows上,如何防止修改注册表项?

在windows上,如何防止修改注册表项?,windows,winapi,Windows,Winapi,我看到一些反病毒软件通知我其他进程试图修改我的注册表项,并询问我是否允许。在我做出决定之前,这个杀毒软件怎么能挂断并停止修改我的注册表?我找不到任何API可以做这些事情,这对我的项目至关重要 谢谢 Feng我想你可以看看,但我认为杀毒软件不会使用这种方法。这不会阻止对注册表所做的更改,但可以用于在修改密钥时获得通知。我想您可以查看一下,但我认为防病毒软件不会使用这种方法。这不会阻止对注册表所做的更改,但可用于在修改注册表项时获得通知。防病毒软件很可能挂接注册表函数,因此在将请求传递给实际函数之前

我看到一些反病毒软件通知我其他进程试图修改我的注册表项,并询问我是否允许。在我做出决定之前,这个杀毒软件怎么能挂断并停止修改我的注册表?我找不到任何API可以做这些事情,这对我的项目至关重要

谢谢


Feng

我想你可以看看,但我认为杀毒软件不会使用这种方法。这不会阻止对注册表所做的更改,但可以用于在修改密钥时获得通知。

我想您可以查看一下,但我认为防病毒软件不会使用这种方法。这不会阻止对注册表所做的更改,但可用于在修改注册表项时获得通知。

防病毒软件很可能挂接注册表函数,因此在将请求传递给实际函数之前,首先调用它自己的代码


请注意,在某些非常特殊的情况下执行此操作可能是可疑行为。

防病毒软件很可能挂接注册表函数,因此在将请求传递给实际函数之前,首先调用自己的代码


请注意,除了一些非常特殊的情况外,在任何情况下这样做都可能是可疑的行为。

这也适用于游戏。他们劫持在3D场景中渲染对象的函数调用,然后告诉游戏引擎在其他对象上渲染所有角色,从而导致wallhack

一个API,你可以用它不再因为反作弊软件阻止它现在是绕道API。当然,您仍然可以出于自己的目的使用它

网上有很多关于这个API的信息


游戏也是如此。他们劫持在3D场景中渲染对象的函数调用,然后告诉游戏引擎在其他对象上渲染所有角色,从而导致wallhack

一个API,你可以用它不再因为反作弊软件阻止它现在是绕道API。当然,您仍然可以出于自己的目的使用它

网上有很多关于这个API的信息


考虑使用MSDN正确保护应用程序注册表项


或者,您也可以构造一个注册表过滤器内核模式驱动程序。这样的驱动程序可以利用该服务过滤注册表事件。这是一项艰巨的任务,但我知道这是唯一有文档记录/支持的完成此任务的方法。

请考虑使用MSDN正确保护您的应用程序注册表项


或者,您也可以构造一个注册表过滤器内核模式驱动程序。这样的驱动程序可以利用该服务过滤注册表事件。这是一个大任务tm,但我知道这是唯一一个有文档记录/支持的方法。

事实上,RegNotifyChangeKeyValue不会阻止更改。AV软件必须像ProcessMonitor一样使用驱动程序拦截API,才能提供更多有关操作的详细信息,如调用进程的调用堆栈。实际上,RegNotifyChangeKeyValue不会阻止更改。AV软件必须像ProcessMonitor一样使用驱动程序拦截API,才能提供更多有关操作的详细信息,如调用进程的调用堆栈。因此,通过挂接注册表函数,你的意思是,AV软件已经将其代码注入到所创建的每一个进程中?或者是注入,或者是修补内核服务表。导出供Windows应用程序使用的每个内核服务在一个表中都有一个指针,该表使用Windows分配给API的内部服务编号编制索引。如果驱动程序用指向自己函数的指针替换表中的条目,那么内核在应用程序执行API时随时调用驱动程序函数,驱动程序可以控制API的行为。修补内核服务表不酷,不受支持,并且无法在x64版本的Windows PatchGuard上完成,这将导致机器死机。下面我的答案包含了唯一受支持的注册表事件过滤方法。因此,通过挂接注册表函数,您的意思是AV软件已将其代码注入到所创建的每一个进程中?无论是这样还是修补内核服务表。导出供Windows应用程序使用的每个内核服务在一个表中都有一个指针,该表使用Windows分配给API的内部服务编号编制索引。如果驱动程序用指向自己函数的指针替换表中的条目,那么内核在应用程序执行API时随时调用驱动程序函数,驱动程序可以控制API的行为。修补内核服务表不酷,不受支持,并且无法在x64版本的Windows PatchGuard上完成,这将导致机器死机。下面的答案包含注册表事件筛选唯一受支持的方法。