Visual c++ XP的注册表过滤器驱动程序

Visual c++ XP的注册表过滤器驱动程序,visual-c++,filter,device-driver,wdk,Visual C++,Filter,Device Driver,Wdk,我想专门为Windows XP制作一个注册表过滤器驱动程序。 我知道官方Windk中有一个例子,但它只起作用 在Windows7上 甚至可以为windows xp开发注册表过滤器驱动程序吗? 任何类型的代码/指针都将受到高度赞赏 不,这是不可能的。对于Windows XP,您需要。不建议这样做,但对于windows XP,这是唯一的选项。这就是Sysinternals RegMon程序的工作方式 不,这是不可能的。对于Windows XP,您需要。不建议这样做,但对于windows XP,这是唯

我想专门为Windows XP制作一个注册表过滤器驱动程序。 我知道官方Windk中有一个例子,但它只起作用 在Windows7上

甚至可以为windows xp开发注册表过滤器驱动程序吗?
任何类型的代码/指针都将受到高度赞赏

不,这是不可能的。对于Windows XP,您需要。不建议这样做,但对于windows XP,这是唯一的选项。这就是Sysinternals RegMon程序的工作方式

不,这是不可能的。对于Windows XP,您需要。不建议这样做,但对于windows XP,这是唯一的选项。这就是Sysinternals RegMon程序的工作方式

您还可以使用Microsoft Detours(或类似软件包)钩住注册表API函数。这并不是一件容易的事情去纠正(仍然在寻找bug),但是如果你准备编写驱动程序,那么这在复杂性上并没有什么不同。只有更少的蓝色屏幕。查看如何在ntdll中挂接Nt或Zw函数。

您还可以使用Microsoft Detours(或类似软件包)挂接注册表API函数。这并不是一件容易的事情去纠正(仍然在寻找bug),但是如果你准备编写驱动程序,那么这在复杂性上并没有什么不同。只有更少的蓝色屏幕。看看如何在ntdll中挂接Nt或Zw函数。

是的,这是可能的,但我不建议这样做

首先,您必须钩住SSDT。请注意,XP 64位()中不支持挂接SSDT(),您必须了解您正在做什么(),它不可移植,并且您的软件可能被标记为恶意软件


其次,您需要对关键控制块进行反向工程。当两个不同的应用程序打开同一个密钥时,它们会获得两个不同的句柄,但它们的KCB对于两个线程都是唯一的。KCB是一种不透明结构,所以WinDbg是您在这里的朋友。

是的,这是可能的,尽管我不推荐它

首先,您必须钩住SSDT。请注意,XP 64位()中不支持挂接SSDT(),您必须了解您正在做什么(),它不可移植,并且您的软件可能被标记为恶意软件

其次,您需要对关键控制块进行反向工程。当两个不同的应用程序打开同一个密钥时,它们会获得两个不同的句柄,但它们的KCB对于两个线程都是唯一的。KCB是一个不透明的结构,所以WinDbg是您的朋友