C# 拦截注册表更改

C# 拦截注册表更改,c#,winapi,hook,registry,C#,Winapi,Hook,Registry,我知道我可以使用监视注册表更改。我想知道的是,它是否可能拦截并可能阻止对注册表的读写。我知道一些病毒程序,比如Norton Anti-virus,会弹出一个警告,询问某些程序修改注册表是否可以,我只能假设一定有办法做到这一点 最好,我更喜欢一种托管方式,使用C#,但是,如果有人知道如何做到这一点,即使它使用一些WINAPI函数,我也会接受这个答案 谢谢,几年前,我在Windows XP上写了一个驱动程序(sys),实现了这一点。在32位版本的Windows上,我找到了带有函数地址的表,并用我自己

我知道我可以使用监视注册表更改。我想知道的是,它是否可能拦截并可能阻止对注册表的读写。我知道一些病毒程序,比如Norton Anti-virus,会弹出一个警告,询问某些程序修改注册表是否可以,我只能假设一定有办法做到这一点

最好,我更喜欢一种托管方式,使用C#,但是,如果有人知道如何做到这一点,即使它使用一些WINAPI函数,我也会接受这个答案


谢谢,几年前,我在Windows XP上写了一个驱动程序(sys),实现了这一点。在32位版本的Windows上,我找到了带有函数地址的表,并用我自己的替换了它们。当然,驱动程序是从内部调用原始注册表API函数的

不知道它在Vista/7和x64系统上是如何工作的。也许你必须对此做些研究


如果您这样做,如果某些反病毒软件将您的驱动程序报告为恶意软件,请不要感到惊讶。

请看一看-这是现有Microsoft研究项目Detours的托管版本。这应该是你想要的。

有趣的方式。这个“带函数地址的表”是什么?我如何找到它们?该表实际上是一个服务描述符表(SDT)。我将在一两天内查找该代码并为您提供一些指导。我知道我有个司机。在此之前,这里有一些东西可能会对您有所帮助:如您所见,有一个导出符号“KeServiceDescriptable”,等等。。。我会带着一些关于如何做的真实答案回来……你的答案暗示绕道已经过时了。事实并非如此。EasyHook是一种选择,迂回是另一种选择,还有其他几种挂钩机制可以做到这一点。