Отслеживание изменений в реестре Windows

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
46
0
111 251
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

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

Но как это сделать? Используя какую-нибудь инструкцию вроде этой: howtogeek.com/school/sysinternals-pro/lesson5/all?

Bohdan Kuts 09.09.2015 11:31

Я согласен с Фрэнси, все утилиты Sysinternals заслуживают внимания (Autoruns тоже обязателен), а Process Monitor, заменяющий старый добрый Filemon и Regmon, драгоценен.

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

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

При этом инструменты Sysinternals отлично подходят для этого.

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

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

Что касается WMI и реестра:

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

  • RegistryTreeChangeEvent
  • RegistryKeyChangeEvent
  • RegistryValueChangeEvent

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

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

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

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

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

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

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

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

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

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

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

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

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

Ответ принят как подходящий

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

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

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

Для меня RegistryChangesView (nirsoft.net/utils/registry_changes_view.html) из пакета NirLauncher был более полезен: он создает два снимка (например, до и после установки), а затем сравнивает их. Результат можно экспортировать в .txt-файл. В моем случае после установки приложения было обнаружено 301 изменение реестра. В то же время RegFromApp (привязанный к процессу msiexec.exe) обнаружил всего 1 изменение.

and1er 19.06.2019 08:06

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

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

  1. Используя 7-Zip, откройте файл vdi / vhd / vmdk и извлеките папку C: \ Windows \ System32 \ config.
  2. Запустите OfflineRegistryView, чтобы преобразовать реестр в открытый текст
    • Установите 'Config Folder' в папку, которую вы извлекли.
    • Установите 'Base Key' на HKLM\SYSTEM или HKLM\SOFTWARE
    • Установите для параметра Subkey Depth значение Unlimited.
    • Нажмите кнопку "Перейти"

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

Другие вопросы по теме