有没有办法跟踪变化Windows注册?我想看到什么改变注册是在安装的各种方案。

有帮助吗?

解决方案

可以监控特定程序所做的注册表更改。

http://www.nirsoft.net/utils/reg_file_from_application.html

更新:只需下载NirLauncher(包括NirSoft的所有应用程序)。它是Windows工具箱的最佳补充之一。 http://launcher.nirsoft.net/

其他提示

进程监视器允许您监视各种进程的文件和注册表活动。

关于WMI和注册表:

有三个WMI类事件有关的注册表中:

  • RegistryTreeChangeEvent
  • RegistryKeyChangeEvent
  • RegistryValueChangeEvent

注册事件类

但你需要知道的这些限制:

  • 与RegistryTreeChangeEvent和RegistryKeyChangeEvent有没有办法直接告诉其值或钥匙的实际改变。要做到这一点,你会需要保存的登记册状态的事件之前和进行比较后状态的事件。

  • 你不能使用这些课程注册表或注册表荨麻疹。你可以克服这种通过创建系统类表示注册的关键监测:

确定一个登记册类的限定词

并利用它与__InstanceOperationEvent衍生课程。

因此,使用WMI监测的登记是可能的,但不完善。优点是,它能够监测变化中的"实时".另一个优势可能是WMI永久性的事件订阅:

收到事件在所有时间

一种方法来监测登记册'在所有的时间',即。事件应用程序是否没有运行。

在没有额外工具的情况下执行此操作的简单方法是在安装之前将注册表导出到文本文件,然后将其导出到另一个文件。然后,比较两个文件。

话虽如此,Sysinternals工具对此非常有用。

Regshot 值得一提。它扫描并拍摄所有注册表设置的快照,然后稍后再次运行它以与原始快照进行比较,并显示已更改的所有键和值。

有一个名为sobek的python-hids( http://code.google.com/ p / sobek-hids / )能够监控SO的某些部分。它对我监视文件更改工作正常,虽然文档说它能够监视注册表更改但它对我不起作用。

可轻松播放基于python的hids的软件。

有几种不同的方式。如果你想在飞行中自己动手,WMI可能就是你要走的路。 RegistryKeyChangeEvent 及其亲属是要查看的。可能有一种方法可以通过 __ InstanceCreationEvent __ InstanceDeletionEvent __ InstanceModificationEvent 类来监视它。

http://msdn.microsoft.com/ EN-US /库/ aa393040(VS.85)的.aspx

我同意Franci,所有的Sysinternals公用事业都值得一看(Autoruns也是必须的),而Process Monitor,它取代了旧的Filemon和Regmon是非常珍贵的。

除了您想要的用法之外,了解进程失败的原因(例如尝试访问不存在的文件或注册表项等)非常有用。

PhiLho已经提到 AutoRuns ,但我认为值得详细说明。

它不会扫描整个注册表,只包含对自动加载的内容(EXE,DLL,驱动程序等)的引用的部分,这可能是您感兴趣的内容。它不会跟踪更改但可以导出到文本文件,因此您可以在安装之前和之后运行它并执行 diff

当使用一个虚拟机,我利用这些步骤,以检查改变注册表中:

  1. 用7-Zip,开vdi/虚拟/虚拟机磁盘文件,并提取的文件夹C:\Windows\System32\config
  2. 运行 OfflineRegistryView 把注册表明文
    • 设置配置文件夹'的文件夹中提取的
    • 设定的'基钥匙' HKLM\SYSTEMHKLM\SOFTWARE
    • 设定的'子项深入'到'无限'
    • 按"开始"键

现在用你最喜欢的差异的程序的比较之前"和"之后的'快照。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top