Примеры мониторинга системного реестраИсточник: oszone
ВведениеБолее половины всех пользователей ПК в какой-то момент задумываются об автоматизации настроек своей операционной системы. Всем известно, что в операционных системах Windows централизованным хранилищем для большинства настроек самой системы и установленных приложений является системный реестр. В реестре хранятся сотни тысяч параметров, которые отвечают за различные настройки. Зная, что в разделе HKEY_CURRENT_USER расположены настройки учетной записи пользователя, в HKEY_LOCAL_MACHINE - настройки компьютера, а раздел HKEY_CLASSES_ROOT отвечает за запуск необходимой программы при открытии файла с помощью проводника, область поиска необходимого параметра сокращается, хотя найти нужный параметр все равно очень сложно. Использовать твикеры реестра не рекомендуется, так как они могут записывать в реестре ненужные разделы и параметры, а поиск в интернете ничего не дает. В этом случае вам следует воспользоваться программами, предназначенными для мониторинга реестра. В этой статье речь пойдет о RegShot и Process Monitor - утилите Sysinternals, предназначенной для мониторинга операционной системы Windows, которая в режиме реального времени отображает активность файловой системы, реестра, а также процессов и потоков. Использование программы RegShotRegShot - это небольшая утилита, предназначенная для фиксации изменений в системном реестре операционных систем Windows. Эта утилита может делать снимки системного реестра, сравнивать два снимка и находить между ними все изменения. Все настройки программы сохраняются в файле конфигурации regshot.inf, а языковые настройки хранятся в файле language.inf. Основным преимуществом программы является то, что она не интегрируется в систему и не записывает в реестр никакой информации. Рассмотрим принципы работы этой утилиты на простом примере. В этом примере попробуем проследить за изменениями, связанными с одной из настроек браузера Internet Explorer. Для того чтобы проследить за изменениями, выполните следующие действия:
После того как отчет будет сформирован вы можете очистить из буфера программы 1й, 2й снимок, а также очистить оба снимка сразу. Отчет в формате HTML выглядит аккуратней и является более удобным, так как в нем строки со старым значением выделены зеленым цветом, для лучшего восприятия. Теперь, после того как изменения видны, можно написать reg-файл, отвечающий за данную настройку. Если вы боитесь сделать в reg-файле ошибку, зайдите в редактор реестра и внесите изменения. После этого экспортируйте изменения в reg-файл и в блокноте удалите все ненужные строки. В данном случае должен получиться такой reg-файл: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main] "Anchor Underline"="no" Если вам нужно найти сразу несколько параметров реестра, отвечающих за разные настройки, лучше всего находить эти параметры поочередно. Использование программы Process MonitorЕсли утилита RegShot предназначена только для фиксации изменений в системном реестре, то утилита Process monitor от Sysinternals, которая написана на основе утилит FileMon и RegMon, предназначена для мониторинга операционной системы Windows. Она в режиме реального времени отображает активность файловой системы, реестра, а также процессов и потоков. При помощи этой утилиты вы можете выполнять следующие действия:
и многое другое. В этой части статьи я расскажу только о том, как можно следить за изменениями системного реестра при помощи этой утилиты. На примере мы попробуем проследить за изменениями в реестре при изменении браузера, используемого по умолчанию. Для этого выполните следующие действия:
Диалоговое окно фильтра позволяет указывать атрибуты, которые будут отображаться или исключаться событиями, соответствующими значениям атрибутов. В этом примере нужно воспользоваться только тремя типами атрибутов:
В этом примере будут использоваться только некоторые значения атрибута Operation. Краткое описание некоторых действий: RegCloseKey - закрывает дескриптор указанного раздела реестра; RegOpenKey - открывает дескриптор указанного раздела реестра; RegCreateKey - создает дескриптор указанного раздела реестра; RegQueryKey - возвращает значение параметров, связанных с открытым разделом реестра; RegEnumKey - перечисляет подразделы указанного открытого раздела реестра; RegDeleteKey - удаляет дескриптор указанного раздела реестра; RegSetValue - изменяет значение указанного параметра реестра; В диалоговом окне "Process Monitor Filter" для начала удалите все фильтры. Затем выполните следующие действия:
Также вместо того чтобы исключать некоторые действия, вы можете просто установить "Include" для действия "RegSetValue". После того как нужные фильтры будут выбраны, нажмите на кнопку "ОК". Во время применения фильтров вы увидите следующий диалог: Остановите мониторинг реестра до того как вам нужно будет проверять изменения. Для этого нажмите на кнопку "Capture" на панели инструментов, или воспользуйтесь комбинацией клавиш Ctrl+E. Очистите содержимое программы, нажав на кнопку "Clear" или при помощи комбинации клавиш Ctrl+X. Если у вас установлен по умолчанию браузер Internet Explorer, откройте Opera и дождитесь появления диалога с предложением сделать его по умолчанию. После появления этого диалога перейдите в Process Monitor и включите мониторинг при помощи кнопки "Capture". Снова перейдите в Opera и установите его браузером по умолчанию. После выполнения этих действий вернитесь в Process Monitor и остановите мониторинг. Окно программы Process Monitor будет выглядеть примерно следующим образом: Среди отобразившихся значений нетрудно заметить, что все изменения, которые относятся к установке браузера по умолчанию, хранятся в разделе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts. Значение измененного параметра вы можете увидеть в столбце Details или открыв диалог свойств события: В итоге получается следующий твик реестра: Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.htm\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.html\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xhtm\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xhtml\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.xht\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mht\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mhtml\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.http\UserChoice] "Progid"="Opera.HTML" [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.https\UserChoice] "Progid"="Opera.HTML" |