Отслеживание изменений в реестре Windows - PullRequest
39 голосов
/ 28 сентября 2008

Есть ли способ отслеживать изменения в реестре Windows? Хотелось бы посмотреть, какие изменения в реестре вносятся при установке различных программ.

Ответы [ 10 ]

45 голосов
/ 28 сентября 2008

Process Monitor позволяет вам контролировать активность файлов и реестра различных процессов.

38 голосов
/ 09 декабря 2012

Может отслеживать изменения реестра, сделанные определенной программой.

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

ОБНОВЛЕНИЕ: просто скачайте NirLauncher (который включает в себя все приложения от NirSoft). Это одно из лучших дополнений к вашей панели инструментов Windows. http://launcher.nirsoft.net/

11 голосов
/ 28 сентября 2008

Относительно WMI и реестра:

Существует три класса событий WMI, относящихся к реестру:

  • RegistryTreeChangeEvent
  • RegistryKeyChangeEvent
  • RegistryValueChangeEvent

Классы событий реестра

Но вы должны знать об этих ограничениях:

  • С RegistryTreeChangeEvent и RegistryKeyChangeEvent невозможно напрямую указать, какие значения или ключи действительно изменились. Для этого вам необходимо сохранить состояние реестра до события и сравнить его с состоянием после события.

  • Эти классы нельзя использовать с кустами HKEY_CLASSES_ROOT или HKEY_CURRENT_USER. Вы можете преодолеть это, создав класс WMI для представления ключа реестра для мониторинга:

Определение класса реестра с квалификаторами

и используйте его с производными классами __InstanceOperationEvent.

Таким образом, использование WMI для мониторинга реестра возможно, но менее чем идеально. Преимущество заключается в том, что можно отслеживать изменения в режиме реального времени. Другим преимуществом может быть постоянная подписка на WMI:

Получение событий в любое время

метод для мониторинга реестра «всегда», т.е. событие, если ваше приложение не запущено.

9 голосов
/ 28 сентября 2008

Простой способ сделать это без дополнительных инструментов - экспортировать реестр в текстовый файл перед установкой, а затем экспортировать его в другой файл. Затем сравните два файла.

Сказав это, инструменты Sysinternals отлично подходят для этого.

3 голосов
/ 11 апреля 2016

Regshot заслуживает упоминания здесь. Он сканирует и делает снимок всех параметров реестра, а затем запускает его снова, чтобы сравнить с исходным снимком, и показывает все измененные ключи и значения.

2 голосов
/ 29 ноября 2011

Существует python-hids, называемый sobek (http://code.google.com/p/sobek-hids/), который может контролировать некоторые части SO. Он отлично работает для моего мониторинга изменений файлов, и, хотя документ говорит, что он может отслеживать изменения реестра, он не работает для меня.

Хорошая программа для простого развертывания скрытых оболочек на Python.

1 голос
/ 28 сентября 2008

Есть несколько разных способов. Если вы хотите сделать это самостоятельно на лету, WMI, вероятно, способ. RegistryKeyChangeEvent и его родственники - те, на кого можно посмотреть. Возможно, есть способ контролировать его и через классы __InstanceCreationEvent, __InstanceDeletionEvent и __InstanceModificationEvent.

http://msdn.microsoft.com/en-us/library/aa393040(VS.85).aspx

0 голосов
/ 04 мая 2019

При использовании виртуальной машины я использую эти шаги для проверки изменений в реестре:

  1. Используя 7-Zip, откройте файл vdi / vhd / vmdk и извлеките папку C: \ Windows \ System32 \ config
  2. Запуск OfflineRegistryView для преобразования реестра в открытый текст
    • Установите «Папка конфигурации» в папку, которую вы извлекли
    • Установите «Базовый ключ» на HKLM\SYSTEM или HKLM\SOFTWARE
    • Установите для параметра «Глубина подключа» значение «Неограниченно».
    • Нажмите кнопку «Перейти»

Теперь используйте вашу любимую программу сравнения для сравнения снимков «до» и «после».

0 голосов
/ 11 октября 2008

PhiLho упомянул AutoRuns мимоходом, но я думаю, что это заслуживает уточнения.

Он не сканирует весь реестр, а только части, содержащие ссылки на вещи, которые загружаются автоматически (EXE, DLL, драйверы и т. Д.), Что, вероятно, вас интересует. Он не отслеживает изменения, но может экспортировать в текстовый файл, так что вы можете запустить его до и после установки и выполнить diff .

0 голосов
/ 28 сентября 2008

Я согласен с Franci, на все утилиты Sysinternals стоит взглянуть (автозапуск тоже необходим), и Process Monitor, который заменяет старый добрый Filemon, а Regmon очень ценен.

Помимо использования, которое вы хотите, очень полезно понять, почему происходит сбой процесса (например, при попытке доступа к файлу или разделу реестра, который не существует) и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...