Есть ли способ отслеживать изменения в реестре Windows? Я хотел бы посмотреть, какие изменения в реестре внесены при установке различных программ.
Отслеживание изменений в реестре Windows
Ответ 1
Может контролировать изменения реестра, выполненные конкретной программой.
http://www.nirsoft.net/utils/reg_file_from_application.html
UPDATE: просто скачайте NirLauncher (который включает все приложения от NirSoft). Это одно из лучших дополнений к панели инструментов Windows. http://launcher.nirsoft.net/
Ответ 2
Process Monitor позволяет отслеживать активность файлов и реестра различных процессов.
Ответ 3
Что касается WMI и реестра:
В реестре есть три класса событий WMI:
- RegistryTreeChangeEvent
- RegistryKeyChangeEvent
- RegistryValueChangeEvent
Но вы должны знать об этих ограничениях:
-
С RegistryTreeChangeEvent и RegistryKeyChangeEvent не существует способа напрямую указывать, какие значения или ключи фактически изменились. Для этого вам нужно будет сохранить состояние реестра перед событием и сравнить его с состоянием после события.
-
Вы не можете использовать эти классы с помощью HKEY_CLASSES_ROOT или HKEY_CURRENT_USER ульев. Вы можете преодолеть это, создав класс WMI для представления ключа реестра для мониторинга:
Определение класса реестра с квалификаторами
и использовать его с производными классами __InstanceOperationEvent.
Таким образом, использование WMI для мониторинга реестра возможно, но менее совершенное. Преимущество состоит в том, что можно отслеживать изменения в режиме реального времени. Другим преимуществом может быть постоянная подписка на WMI:
Получение событий в любое время
метод мониторинга реестра "всегда", т.е. если приложение не запущено.
Ответ 4
Простой способ сделать это без дополнительных инструментов - экспортировать реестр в текстовый файл перед установкой, а затем экспортировать его в другой файл. Затем сравните два файла.
Сказав это, инструменты Sysinternals отлично подходят для этого.
Ответ 5
Regshot заслуживает упоминания здесь. Он сканирует и делает снимок всех параметров реестра, затем вы запускаете его снова в более позднее время, чтобы сравнить с оригинальным снимком, и он показывает вам все измененные ключи и значения.
Ответ 6
Существует python-hids, называемый sobek (http://code.google.com/p/sobek-hids/), который способен отслеживать некоторые части SO. Он отлично работает для моего мониторинга изменений файла, и хотя документы, которые он может отслеживать изменения реестра, не работают для меня.
Хорошая часть программного обеспечения для простой деинтеляции на основе python.
Ответ 7
Есть несколько разных способов. Если вы хотите сделать это самостоятельно на лету, WMI - это, вероятно, путь. RegistryKeyChangeEvent
и его родственники - те, на кого смотреть. Возможно, есть способ контролировать его с помощью классов __InstanceCreationEvent
, __InstanceDeletionEvent
и __InstanceModificationEvent
.
http://msdn.microsoft.com/en-us/library/aa393040(VS.85).aspx
Ответ 8
Я согласен с Франци, все утилиты Sysinternals заслуживают внимания (Autoruns тоже необходимо), а Process Monitor, который заменяет старый добрый Filemon и Regmon, ценен.
Помимо использования, которое вам нужно, очень полезно понять, почему процесс выходит из строя (например, пытаться получить доступ к файлу или к ключу реестра, который не существует) и т.д.
Ответ 9
PhiLho упоминает AutoRuns мимоходом, но я думаю, что он заслуживает разработки.
Он не сканирует весь реестр, а только части, содержащие ссылки на вещи, которые автоматически загружаются (EXE, DLL, драйверы и т.д.), что, вероятно, вас интересует. Оно не отслеживает изменения, но может экспортировать в текстовый файл, поэтому вы можете запустить его до и после установки и выполнить diff.
Ответ 10
При использовании виртуальной машины я использую эти шаги для проверки изменений в реестре:
- Используя 7-Zip, откройте файл vdi/vhd/vmdk и распакуйте папку C:\Windows\System32\config
- Запустите OfflineRegistryView, чтобы преобразовать реестр в открытый текст
- Установите "Config Folder" в папку, которую вы извлекли
- Установите "Базовый ключ" в
HKLM\SYSTEM
илиHKLM\SOFTWARE
- Установите для параметра "Subkey Depth" значение "Unlimited".
- Нажмите кнопку "Перейти"
Теперь используйте вашу любимую программу сравнения, чтобы сравнить снимки "до" и "после".