2008-09-27 3 views

ответ

35

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

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

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

+1

Это потрясающая часть программного обеспечения. Почему не много UP? : D – BlackTea 2013-01-21 18:56:37

43

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

+5

Но как это сделать? Используя некоторые инструкции, подобные этой: http://www.howtogeek.com/school/sysinternals-pro/lesson5/all/? – 2015-09-09 08:31:03

0

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

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

8

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

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

1

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

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

11

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

Есть три класса событий WMI, касающиеся реестра:

  • RegistryTreeChangeEvent
  • RegistryKeyChangeEvent
  • RegistryValueChangeEvent

Registry Event Classes

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

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

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

Defining a Registry Class With Qualifiers

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

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

Receiving Events at All Times

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

0

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

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

2

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

Хорошая часть программного обеспечения для легкой деинтеции на основе python.

1

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