1 of 34

Системне програмування

Лекція № 5. Робота з реєстром операційної системи

Лектор Артамонов Є.Б.

1

2 of 34

Визначення реєстру ОС

Реєстр - база даних операційної системи, яка містить конфігураційні відомості.

2

3 of 34

Історія реєстру

  • У MS-DOS -реєстр був відсутній, основні налаштування зберігалися в файлах - config.sys і autoexec.bat.

3

4 of 34

Історія реєстру ОС

  • Windows 3.0 зберігала всі налаштування у текстовому файлі win.ini (більше 1000 рядків).

4

5 of 34

Історія реєстру ОС

  • Перший реєстр в Windows NT (1993).
  • Удосконалена версія Windows 95 (1995). Приблизна кількість записів - 10 000.
  • Перехід на сучасний формат - Windows XP (2001). Число записів - більше 100 000.

5

6 of 34

Редагування реєстру

  • Вбудований компонент операційної системи Windows для редагування реєстру викликається шляхом введення команди regedit.

6

7 of 34

Програми для редагування реєстру

  • WinTools.net
  • glary utilites
  • regedit.exe
  • regedt32.exe
  • Reg Organizer
  • Test-Run by BB
  • CCleaner
  • Ashampoo WinOptimizer
  • Wise Reg Cleaner
  • AuslogicsBoostSpeed
  • TuneUp Utilities
  • Jv16 PowerTools
  • chntpw

7

8 of 34

Структура реєстру

  • HKEY_CLASSES_ROOT. Інформація про зареєстровані в Windows типах файлів, інформація для OLE і операцій drag-and-drop
  • HKEY_CURRENT_USER. Налаштування оболонки користувача (наприклад, робочий стіл, меню «Пуск», ...). Дублює вміст підрозділу HKEY_USER \ name, де name - ім'я користувача, який перебуває в Windows (для одного користувача значення розділу беруться з підрозділу HKEY_USERS \ .DEFAULT)
  • HKEY_LOCAL_MACHINE. Драйвери, встановлене програмне забезпечення і його налаштування

8

9 of 34

Структура реєстру

  • HKEY_USERS. Налаштування оболонки Windows для всіх користувачів.
  • HKEY_CURRENT_CONFIG. Конфігурація пристроїв Plug & Play і відомості про конфігурацію комп'ютера зі змінним складом апаратних засобів
  • HKEY_DYN_DATA. Дані про стан різних пристроїв, встановлених на комп'ютері користувача. Саме відомості цієї гілки відображаються у вікні «Властивості: Система» на вкладці «Пристрої», що викликається з Панелі управління.

9

10 of 34

Синтаксис команди REG ADD

  • REG ADD <розділ> [/ v <параметр> | / Ve] [/ t <тип>] [/ s <роздільник>] [/ d <дані>] [/ f]
  • <Розділ> [\\ <комп'ютер> \] <шлях>

  • <Комп'ютер> Ім'я віддаленого комп'ютера, за замовчуванням вважається рівним імені локального комп'ютера. На віддалених комп'ютерах доступні тільки розділи HKLM і HKU.
  • <Шлях> Повний шлях до розділу реєстру у вигляді КОРІНЬ \ Підрозділ. Значення [HKLM | HKCU | HKCR | HKU | HKCC]. <Підрозділ> Повний шлях до розділу реєстру в обраному кореневому розділі.
  • / V Ім'я додається параметра в зазначеному розділі.
  • / Ve Додати порожній параметр (За замовчуванням) в зазначений розділ.
  • / T Типи даних. [REG_SZ | REG_MULTI_SZ | REG_DWORD_BIG_ENDIAN | REG_DWORD | REG_BINARY | REG_DWORD_LITTLE_ENDIAN | REG_NONE | REG_EXPAND_SZ] За замовчуванням, вважається рівним REG_SZ.
  • / S Визначає роздільник, який використовується для розділення даних в багаторядкових параметрах типу REG_MULTI_SZ. За замовчуванням вважається рівним "\ 0".
  • / D Значення, що привласнюється додає параметру реєстру.
  • / F Примусово перезаписувати існуючі записи реєстру без попередження.

10

11 of 34

Синтаксис команди REG DELETE

  • REG DELETE <розділ> [/ v <параметр> | / Ve | / Va] [/ f] REG DELETE <розділ> Ім'я розділу в форматі: [\\ Комп'ютер \] Шлях

  • <Комп'ютер> Ім'я віддаленого комп'ютера, за замовчуванням вважається рівним імені локального комп'ютера. Для віддалених комп'ютерів доступні тільки HKLM і HKU. <Шлях> Повний шлях до розділу реєстру у вигляді: Корінь \ Підрозділ <КОРІНЬ> Кореневий розділ. Значення: [HKLM | HKCU | HKCR | HKU | HKCC] <підрозділ> Повний шлях до розділу реєстру в обраному кореневому розділі.
  • <Параметр> Ім'я видаляється параметра в зазначеному розділі. Якщо опущено, із зазначеного розділу будуть видалені всі підрозділи і параметри.
  • / Ve Видаляти безіменні параметри.
  • / Va Запитувати всі параметри даного розділу.
  • / F Видаляти примусово, без додаткового попередження.

11

12 of 34

В реєстрі відсутні багато обмежень ОС

  • Використання в імені символу “\”

12

13 of 34

В реєстрі відсутні багато обмежень ОС

  • Використання в імені спеціального символу “\0” (необхідне використання функції NtSetValueKey з ntdll.dll)
  • Код доступний за адресою: https://habr.com/ru/company/kaspersky/blog/415699/

13

14 of 34

В реєстрі відсутні багато обмежень ОС

  • Використання в імені спеціального символу “\0” . Але необхідне використання функції NtSetValueKey з ntdll.dll, інакше

  • Код доступний за адресою: https://habr.com/ru/company/kaspersky/blog/415699/

14

15 of 34

Недоліки реєстру

  • Реєстр схильний до фрагментації.
  • розмір реєстру значно збільшується в міру використання ОС.
  • Не всі налаштування системи зберігаються в реєстрі.
  • Деякі програми не можуть працювати без параметрів, занесених до реєстру.
  • Реєстр дуже схожий на віртуальну файлову систему, що працює поверх реальної файлової системи. Але при цьому реєстр дуже нестійкий до збоїв. Тому версії Windows починаючи з NT використовують логи транзакцій в якості засобу захисту від пошкоджень при оновленні реєстру (наступні версії Windows використовували логи двох рівнів).

15

16 of 34

ПРАКТИЧНЕ ВИКОРИСТАННЯ РЕЄСТРУ

16

17 of 34

Практичне використання реєстру. Для прискорення запуску

17

18 of 34

Практичне використання реєстру. Для прискорення запуску

  • Завершіть роботу з усіма відкритими документами Word і закрийте редактор.
  • Перейдіть на гілку реєстру HKEY_CURRENT_USER \ Software \ Microsoft \ Office \. Відкриється дерево реєстру:

18

19 of 34

Практичне використання реєстру. Для прискорення запуску

  • Перейдіть на ту версію пакету, в якому ви хочете прискорити роботу редактора Word, наприклад, в папку 12.0 (для Word 2007).
  • Далі по дереву перейдіть в папку \ Word \ Options. Виділіть цю папку (Options) і в меню Правка наведіть курсор миші на пункт Створити. У розкрився підміню виберіть команду Параметр DWORD. Буде створено ключ (параметр), найменування якого необхідно змінити на NoRereg.

19

20 of 34

Практичне використання реєстру. Для прискорення запуску

  • Двічі клацніть мишею по цьому ключу. Відкриється діалогове вікно Зміна параметра DWORD:

  • Замініть стандартне значення 0 на 1 і натисніть ОК для збереження змін.
  • Закрийте реєстр.

20

21 of 34

Практичне використання реєстру. Для прискорення запуску

  • Зміст reg_2007.bat

reg add HKCU\Software\Microsoft\Office\13.0\Word\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\13.0\excel\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\13.0\Outlook\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\13.0\Power Point\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\13.0\Access\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\13.0\Publisher\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\13.0\Infopath\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\11.0\Word\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\11.0\excel\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\11.0\Outlook\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\11.0\Power Point\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\11.0\Access\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\11.0\Publisher\Options /v NoReReg /t REG_DWORD /d 1

reg add HKCU\Software\Microsoft\Office\11.0\Infopath\Options /v NoReReg /t REG_DWORD /d 1

21

22 of 34

Налаштування пріоритетів процесів

  • Приклад зміни пріоритету при запуску:
  • cmd /c start /realtime
  • За рахунок зміни реєстру можна вийти на інший рівень управління процесами:

  • Більш детально: https://habr.com/ru/post/317802/

22

23 of 34

Примусовий запис даних до реєстру

  • За умовчанням дані записуються в файли з розширенням .LOG, .LOG1 и .LOG2, де накопичуються близько години, а потім викликає команду Reconciliation (інтеграція). Але для цих файлів функція RegFlushKey ігнорується і необхідно використовувати ZwSetSystemInformation з недокументованим ключем:
  • ZwSetSystemInformation(
  • 0x9b, //SystemRegistryReconciliationInformation
  • NULL,
  • 0);

23

24 of 34

Приховування ключів реєстру

  • Цілі приховування ключів реєстру від програм, що працюють з неактивним реєстром, при збереженні можливості звичайної роботи з цими ключами стандартними засобами операційної системи Windows:
    • приховування внесених до реєстру змін від криміналістичного дослідження;
    • приховування внесених до реєстру змін від передзавантажувального контролю цілісності.

24

25 of 34

Приховування ключів реєстру

  • Стандартні засоби Зовнішні програми

25

26 of 34

Боротьба з вірусами

  • 1. Безфайлові віруси. Приклад: DarkWatchman є двокомпонентним – це і JS-троян, і C#-кейлоггер, останній із яких ховається від виявлення у реєстрі. Обидва компоненти надзвичайно легкі. JS-код займає лише 32Кб, а кейлоггер 8.5Кб. (більш детально: https://habr.com/ru/company/ruvds/news/t/596203/).

26

27 of 34

Боротьба з вірусами

  • 2. Чистка реєстру після видалення вірусів. (більш детально: https://htfi.ru/windows_10/kak_najti_virus_v_reestre_windows_10.html).

27

28 of 34

Боротьба з вірусами

  • 3. Боротьба з winlogon-вірусами.

28

29 of 34

Боротьба з вірусами

  • Виконайте наступні дії:
    • Перезавантажте комп'ютер.
    • Зайдіть у систему в безпечному режимі, вибравши його в меню, яке викликається клавішею F8 під час старту.
    • Відкрийте каталог із виявленим шкідливим файлом та видаліть його.
    • Натисніть Win+R і наберіть regedit, щоб запустити редактор реєстру.
    • Відкрийте гілку HCU→Software→MicroSof→Windows→CurrentVersion→Run та знищіть запис “Firewall auto setup”=”%windir%\winlogon.exe”.
    • Натисніть Ctrl+F, щоб відкрити вікно пошуку і спробуйте знайти всі записи з ім'ям winlog, а потім знищіть їх.

29

30 of 34

Боротьба з вірусами

  • 4. Вірус-хитрун відновлював свій драйвер через запуск в реєстрі. Коригування ключів ні до чого не призводило.
  • Аналіз виявив, що драйвер руткіта під час запуску перейменував файл куща реєстру SYSTEM в HARDWARE. Створював свій файл SYSTEM і періодично зберігав у нього за допомогою функції RegSaveKey гілку HKLM/System. За збереження він відновлював свої ключі. При перезавантаженні Windows система завантажувала файл SYSTEM і запускала драйвер руткіту.

30

31 of 34

Використані матеріали

31

32 of 34

Додатковий матеріал

32

33 of 34

Домашнє завдання

  • Проробити по 5-7 команд редагування реєстру, які дозволять або спростити те, що робилось через стандартний інтерфейс, або виконають дію, яка недоступна в стандартних налаштуваннях.

33

34 of 34

Дякую за увагу!!!�Зустрінемось на наступній лекції!!!

Знайти лектора можна в аудиторії 5-211

або

за e-mail-ом: eart@ukr.net

або

@YevhenArtamonov

або

Матеріали лекцій та лабораторних на сайті: eart.ho.ua

(розділ Викладач, підрозділ Матеріали для завантаження)�або на GoogleDrive

34