Донецкий техникум промышленной автоматики

Приклади моніторингу системного реєстру

  1. Вступ Більше половини всіх користувачів ПК в якийсь момент замислюються про автоматизацію налаштувань...
  2. Використання програми Process Monitor

Вступ

Більше половини всіх користувачів ПК в якийсь момент замислюються про автоматизацію налаштувань своєї операційної системи. Всім відомо, що в операційних системах Windows централізованим сховищем для більшості налаштувань самої системи і встановлених додатків є системний реєстр. У реєстрі зберігаються сотні тисяч параметрів, які відповідають за різні настройки. Знаючи, що в розділі HKEY_CURRENT_USER розташовані настройки облікового запису користувача, в HKEY_LOCAL_MACHINE - настройки комп'ютера, а розділ HKEY_CLASSES_ROOT відповідає за запуск необхідної програми при відкритті файлу за допомогою провідника, область пошуку необхідного параметра скорочується, хоча знайти потрібний параметр все одно дуже складно. Використовувати твікери реєстру не рекомендується, так як вони можуть записувати в реєстрі непотрібні розділи і параметри, а пошук в інтернеті нічого не дає. В цьому випадку вам слід скористатися програмами, призначеними для моніторингу реєстру. У цій статті мова піде про RegShot і Process Monitor - утиліті Sysinternals, призначеної для моніторингу операційної системи Windows, яка в режимі реального часу відображає активність файлової системи, реєстру, а також процесів і потоків.

Використання програми RegShot

RegShot - це невелика утиліта, призначена для фіксації змін в системному реєстрі операційних систем Windows. Ця утиліта може робити знімки системного реєстру, порівнювати два знімка і знаходити між ними все зміни. Всі настройки програми зберігаються в файлі конфігурації regshot.inf, а мовні настройки зберігаються в файлі language.inf. Основною перевагою програми є те, що вона не інтегрується в систему і не записує в реєстр ніякої інформації. Розглянемо принципи роботи цієї утиліти на простому прикладі.

У цьому прикладі спробуємо простежити за змінами, пов'язаними з однією з налаштувань браузера Internet Explorer. Для того щоб простежити за змінами, виконайте наступні дії:

  1. Завантажте програму, перейшовши за наступним засланні , Розпакуйте вміст архіву і запустіть файл regshot.exe;
  2. Перед тим як ви почнете вносити зміни в налаштування браузера, зробіть перший знімок реєстру, натиснувши на кнопку «1й знімок»;
  3. Після того як перший знімок буде зроблений, відкрийте настройки браузера ( «Сервіс»> «Властивості оглядача» або введіть inetcpl.cpl в поле пошуку меню «Пуск» або в діалозі «Виконати»). Перейдіть на вкладку «Додатково», на опції «Підкреслювати посилання» виберіть варіант на «Ніколи» і натисніть на кнопку «Застосувати»;
  4. Поверніться в програму RegShot і натисніть на кнопку «2й знімок» для створення знімка реєстру зі зміненим параметром;

    Програма RegShot дозволяє зберігати зміни реєстру в текстовий і в HTML формати. Для того щоб вибрати формат звітів, встановіть перемикач на потрібної опції в розділі «Зберегти файл звітів як:».

    В утиліті RegShot ви можете також вказати шлях для збереження файлів. Для цього введіть шлях вручну в поле «Шлях для збереження» або скористайтеся кнопкою огляд для вибору папки за допомогою діалогового вікна «Огляд папок».

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

  5. По завершенню порівняння знімків реєстру відкриється програма встановлена ​​за замовчуванням, призначена для відкриття обраного вами типу файлу. В даному випадку, так як був обраний текстовий формат, звіт відкривається в програмі «Блокнот». На наступному скріншоті виділені рядки, що відповідають за зміну цього параметра.

Після того як звіт буде сформований ви можете очистити з буфера програми 1й, 2й знімок, а також очистити обидва знімки відразу.

Звіт в форматі HTML виглядає акуратніше і є більш зручним, так як в ньому рядки зі старим значенням виділені зеленим кольором, для кращого сприйняття.

Тепер, після того як зміни видно, можна написати reg-файл, який відповідає за дану настройку. Якщо ви боїтеся зробити в reg-файл помилку, зайдіть в редактор реєстру і внесіть зміни. Після цього експортуйте зміни в reg-файл і в блокноті видаліть всі непотрібні рядки.

В даному випадку повинен вийти такий reg-файл:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERSoftwareMicrosoftInternet ExplorerMain] "Anchor Underline" = "no"

Якщо вам потрібно знайти відразу кілька параметрів реєстру, що відповідають за різні настройки, найкраще знаходити ці параметри по черзі.

Використання програми Process Monitor

Якщо утиліта RegShot призначена тільки для фіксації змін в системному реєстрі, то утиліта Process monitor від Sysinternals, яка написана на основі утиліт FileMon і RegMon, призначена для моніторингу операційної системи Windows, яка в режимі реального часу відображає активність файлової системи, реєстру, а також процесів і потоків. За допомогою цієї утиліти ви можете виконувати наступні дії:

  • відслідковувати запуск і завершення роботи процесів і потоків, включаючи інформацію про код завершення;
  • збирати дані про параметри операцій введення і виведення;
  • встановлювати фільтри для відображення лише потрібної інформації;
  • записувати в журнал всі операції під час завантаження системи.

і багато іншого.

У цій частині статті я розповім тільки про те, як можна стежити за змінами системного реєстру за допомогою цієї утиліти. На прикладі ми спробуємо простежити за змінами в реєстрі при зміні браузера, який використовується за умовчанням. Для цього виконайте такі дії:

  1. Завантажте програму ProcessMonitor з сайту Sysinternals.com , Розпакуйте вміст архіву і запустіть файл Procmon.exe. Для роботи утиліти Process Monitor необхідно зайти під обліковим записом, що входить в групу "Адміністратори";
  2. Перед запуском цієї утиліти в перший раз відобразиться діалогове вікно з ліцензійною угодою. Прочитайте його і натисніть на кнопку «Agree»;
  3. Якщо необхідно контролю облікових записів користувачів надайте підтвердження.
  4. У вікні Process Monitor ви можете побачити всі зміни системи в режимі реального часу. Ви можете перетягувати колонки, змінити їх порядок і налаштувати відображення стовпців утиліти. Для цього в меню «Options» виберіть команду «Select Columns» або натисніть правою кнопкою миші на будь-якому місці заголовка стовпців і в контекстному меню виберіть команду «Select Columns». В рамках цієї статті я не буду акцентувати увагу на значенні обираних стовпців.
  5. За замовчуванням, утиліта Process Monitor стежить за системними файлами, реєстром, процесами, мережевою активністю, а також за подіями профілювання. Так як в цьому прикладі потрібно простежити тільки за системним реєстром, залиште активної тільки кнопку «Show Registry Activity», як показано на наступному скріншоті:
  6. Навіть після того, як ви залишите тільки моніторинг системного реєстру, вам буде важко розібратися у всіх створюваних записах. Для полегшення пошуку потрібного параметра реєстру і його значення, вам потрібно налаштувати фільтр. Щоб відкрити діалогове вікно фільтра, виконайте одну з таких дій:
    • В меню «Filter» виберіть команду «Filter»;
    • Скористайтеся комбінацією клавіш Ctrl + L;
    • Натисніть на кнопку «Filter» на панелі інструментів програми.

Діалогове вікно фільтра дозволяє вказувати атрибути, які будуть відображатися або виключатися подіями, відповідними значеннями атрибутів. У цьому прикладі потрібно скористатися тільки трьома типами атрибутів:

  • EventClass - тип події, що охоплює один з основних класів подій (FileSystem, Network, Process, Profiling або Registry);
  • Operation - дії, які виконує система;
  • Process Name - ім'я процесу, за яким необхідно стежити.

У цьому прикладі будуть використовуватися тільки деякі значення атрибута Operation. Короткий опис деяких дій:

RegCloseKey - закриває дескриптор зазначеного розділу реєстру;

RegOpenKey - відкриває дескриптор зазначеного розділу реєстру;

RegCreateKey - створює дескриптор зазначеного розділу реєстру;

RegQueryKey - повертає значення параметрів, пов'язаних з відкритим розділом реєстру;

RegEnumKey - перераховує підрозділи вказаного відкритого розділу реєстру;

RegDeleteKey - видаляє дескриптор зазначеного розділу реєстру;

RegSetValue - змінює значення зазначеного параметра реєстру;

У діалоговому вікні «Process Monitor Filter» для початку видаліть всі фільтри. Потім виконайте наступні дії:

  • З першого списку виберіть атрибут «EventClass». У другому списку залиште значення «is». У третьому списку виберіть значення «File System», а потім виберіть «Exclude». Натисніть на кнопку «Add» .Повторіте ці дії для класів «Network», «Process» і «Profiling».
  • З першого списку виберіть атрибут «Process Name». У другому списку залиште значення «is». У третьому списку введіть ім'я процесів, за якими потрібно простежити. У цьому прикладі ми будемо стежити за процесами iexplore.exe і opera.exe.
  • З першого списку виберіть атрибут «Operation». У другому списку залиште значення «is». У третьому списку виберіть значення, які відображені на наступному скріншоті.

У третьому списку виберіть значення, які відображені на наступному скріншоті

Також замість того щоб виключати деякі дії, ви можете просто встановити «Include» для дії «RegSetValue».

Також замість того щоб виключати деякі дії, ви можете просто встановити «Include» для дії «RegSetValue»

Після того як потрібні фільтри будуть вибрані, натисніть на кнопку «ОК». Під час застосування фільтрів ви побачите наступний діалог:

Під час застосування фільтрів ви побачите наступний діалог:

Зупиніть моніторинг реєстру до того як вам потрібно буде перевіряти зміни. Для цього натисніть на кнопку «Capture» на панелі інструментів, або скористайтеся комбінацією клавіш Ctrl + E. Очистіть вміст програми, натиснувши на кнопку «Clear» або за допомогою комбінації клавіш Ctrl + X.

Якщо у вас встановлений за замовчуванням браузер Internet Explorer, відкрийте Opera і дочекайтеся появи діалогу з пропозицією зробити його за замовчуванням. Після появи цього діалогу перейдіть в Process Monitor і включіть моніторинг за допомогою кнопки «Capture». Знову перейдіть в Opera і встановіть його браузером за замовчуванням.

Після виконання цих дій поверніться в Process Monitor і зупиніть моніторинг. Вікно програми Process Monitor буде виглядати приблизно так:

Вікно програми Process Monitor буде виглядати приблизно так:

Серед відобразилися значень неважко помітити, що всі зміни, які відносяться до установки браузера за замовчуванням, зберігаються в розділі HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts. Значення зміненого параметра ви можете побачити в стовпці Details або відкривши діалог властивостей події:

Значення зміненого параметра ви можете побачити в стовпці Details або відкривши діалог властивостей події:

У підсумку виходить наступний Твік реєстру:

Windows Registry Editor Version 5.00 [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.htmUserChoice] "Progid" = "Opera.HTML" [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.htmlUserChoice] "Progid" = "Opera.HTML" [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.xhtmUserChoice] "Progid" = "Opera.HTML" [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts. xhtmlUserChoice] "Progid" = "Opera.HTML" [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.xhtUserChoice] "Progid" = "Opera.HTML" [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.mhtUserChoice] "Progid" = "Opera.HTML" [HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.mhtmlUserChoice] "Progid" = "Opera .HTML "[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.httpUserChoice]" Progid "=" Opera.HTML "[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.htt psUserChoice] "Progid" = "Opera.HTML"