找到哪个进程访问注册表?

时间:2010-05-18 23:45:34

标签: c#

好的,如果有人能解决这个问题,那么他们必须是天才,因为它无处在网上!

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

此程序检测注册表访问并告诉您哪个进程执行了此操作。

有谁知道我怎么做到这一点?我可以检测到变化,但我无法得到这个过程。

提前致谢

2 个答案:

答案 0 :(得分:3)

通过挂钩系统调用来完成。它挂接对RegOpenKey(等)的调用,并在将调用传递给 real RegOpenKey之前记录有关访问注册表的进程的所有信息。

请参阅EasyHook以获取一个库,使其相对易于在Windows中编写API挂钩。

然而,当我说“容易”时,我的意思是“这里是怪物!” API挂钩不适合胆小的人,在尝试之前,你应该对Windows的内部有一个非常好的工作知识。

答案 1 :(得分:0)

如果你只是想知道它在做什么,那么你可以使用ProcessMonitor,或者来自Sysinternals的那些工具的其他推导之一,现在由Microsoft作为Winternals运行。查看计划列表here

如果要编写程序来执行此操作,则必须挂钩注册表访问功能。其源代码可以在Sysinternals工具的档案中找到。该程序似乎不再可用。