- •Список скорочень та термінів
- •Розділ 1. Cистемний реєстр ос Windows
- •1.1. Поняття про реєстр
- •1.2. Архітектура реєстру Windows
- •1.3. Основні гілки реєстру
- •Розділ 2. Алгоритм програми
- •2.1. Загальний вигляд алгоритму програми
- •2.4. Алгоритм запуску потоку
- •2.5. Алгоритм зупинки моніторингу реєстру
- •Розділ 3. Принципи реалізації програми
- •3.1. Основні бібліотеки, використані в програмі
- •2.2. Алгоритм підпрограми запуску моніторингу реєстру
- •2.3. Алгоритм запуску моніторингу реєстру
- •3.2. Основні функції, використані в програмі
- •3.3. Класи-вийнятки
- •3.4. Клас RegistryMonitor
- •Висновки
- •Список використаних джерел
- •Додаток а. Тестування програми
- •А.1. Робота програми з обліковим записом «Admin».
- •А.2. Робота програми з обліковим записом «User»
- •А.3. Роботи програми з невірним ключем реєстру
- •Додаток б. Інструкція по роботі з розробленим додатком
3.2. Основні функції, використані в програмі
1. RegNotifyChangeKeyValue – основна функція даної програми, яка повідомляє про зміни атрибутів чи змісту вказаного файлу реєстру.
Параметри:
HKEY - дескриптор відкритого ключа реєстру:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
bWatchSubtree - якщо цей параметр дорівнює TRUE, функція повідомляє про зміни в зазначеному розділі і його підрозділі. Якщо параметр має значення FALSE, функція повідомляє про зміни тільки у вказаному ключі.
RegChangeNotifyFilter (dwNotifyFilter) – параметр вказує, які зміни мають відображатися:
RegChangeNotifyFilter.Key – вказує, які підрозділи були додані, а які видалені.
RegChangeNotifyFilter.Attribute – вказує зміни в атрибутах ключа (інформація дескриптора безпеки).
RegChangeNotifyFilter.Value – вказує на зміни значення ключа.
RegChangeNotifyFilter.Security – вказує на зміни в дескрипторі безпеки ключа.
hEvent – дескриптор події.
fAsynchronous - якщо цей параметр має значення ІСТИНА, то функція негайно повертається і відбувається повідомлення зміну події. Якщо цей параметр має значення FALSE, то функція не повертається, дескриптор подій hEvent ігнорується.
2. RegOpenKeyEx - функція, яка відкриває дескриптор вказаного ключа реєстру.
Параметри:
HKEY - дескриптор відкритого ключа реєстру:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
lpSubKey – ключ імені.
ulOptions - цей параметр зарезервований і повинен бути нульовим.
samDesired – вказує права доступу до ключів.
phkResult – покажчик на змінну, яка отримає новий дескриптор ключ, вказаний на HKEY.
3. RegCloseKeyEx - функція, яка закриває дескриптор зазначеного ключа реєстру.
Параметр: HKEY – дескриптор відкритого ключа буде закрито.
3.3. Класи-вийнятки
ArgumentNullException (аналогічно ArgumentException) – клас. Виняток ArgumentNullException використовується, якщо аргумент дорівнює null, а для даного методу таке значення аргументу неприйнятне.
InvalidOperationException – клас. Виняток InvalidOperationException використовується в тих випадках, коли помилка виклику методу не є наслідком неприпустимість аргументу, а обумовлена іншими причинами. Наприклад: - GetString, якщо набір ресурсів був закритий до виклику методу.
ObjectDisposedException – клас, який використовується, при виконанні роботи над видаленим об’єктом.
3.4. Клас RegistryMonitor
У таблиці 6 наведено основні характеристики класу RegistryMonitor [2].
Таблиця 6. Характеристика класу RegistryMonitor
Конструктори |
Події |
Методи |
RegistryMonitor(RegistryKey registryKey) |
public event EventHandler RegChanged |
public void Start() |
RegistryMonitor(string name) |
public event ErrorEventHandler Error |
public void Stop() |
RegistryMonitor(RegistryHive registryHive, string subKey) |
|
|
Основна властивість класу RegistryMonitor, це RegChangeNotifyFilter.
Клас RegistryMonitor суміщає в собі такі основні функції – RegOpenKeyEx, RegCloseKeyEx, RegNotifyChangeKeyValue.
Основне завдання, яке виконує цей клас – це робота з ключами реєстру і змінами значень реєстру. Клас RegistryMonitor виконує такі дії з ключами реєстру:
Задає параметри ключа реєстру.
Визначає, які зміни в значенні реєстру необхідно фіксувати.
Фіксує зміни значень реєстру.
Задає гілки реєстру, значення яких можуть підлягати моніторингу.
Визначає, які параметри мають гілки реєстру.
