Системный реестр Windows XP

Содержание

Слайд 2

Навчальні питання

(с) Гроза П.М.

Основні відомості
Логічна структура реєстру
Фізична організація реєстру
Робота з реєстром
Програмний інтерфейс

Навчальні питання (с) Гроза П.М. Основні відомості Логічна структура реєстру Фізична організація
доступу до реєстру

Слайд 3

Язык програмирования С++. Лекция и упражнения. Учебник: Перевод с анг./Стивен Прата –

Язык програмирования С++. Лекция и упражнения. Учебник: Перевод с анг./Стивен Прата –
СПб.: ООО «ДиаСофтЮП», 2005.-1104с.
Теренс Чан Системное програмирование на С++ для UNIX: пер. с англ. – К.: Издательская группа ВНV, 1997. – 592с.
Вильямс А. Системное программирование в Windows 2000 для профессионалов — СПб: Питер, 2001. —624 с: ил.
Терес Чан Системное програмирование на С++ для Unix: Пер.с англ. – К.: Издательская группа BHV, 1997. – 592c / ISDN 5-7315-0013-4
Рихтер Дж. Windows для профессионалов: создание эффективных Win32 приложений с учетом специфики 64-разрядной версии Windows/Пер, англ - 4-е изд. - СПб; Питер; М.: Издательско-торговый дом "Русская Редакция", 2001. - 752 с.; ил.
Побегайло А.П. Системное программирование в Windows. – СПб.:БХВ-Петербург, 2006. – 1056с.:ил.

Література

(с) Гроза П.М.

Слайд 4

(с) Гроза П.М.

Основні відомості

(с) Гроза П.М. Основні відомості

Слайд 5

ієрархічно побудована, централізована база даних у складі ОС сімейства Microsoft Windows, що

ієрархічно побудована, централізована база даних у складі ОС сімейства Microsoft Windows, що
містить відомості для роботи ОС з користувачами, програмними продуктами і пристроями
Містить
профілі всіх користувачів
відомості про встановлене ПЗ
відомості про типи файлів, що створюються кожною програмою
інформація про властивості папок і значки додатків
інформація про установлене устаткування і використовувані порти

Системний реєстр (registry)

(с) Гроза П.М.

Слайд 6

Замінив
більшість ini-файлів в Windows 3.x
файли конфігурації MS-DOS – приклад, аutoexec.bat і

Замінив більшість ini-файлів в Windows 3.x файли конфігурації MS-DOS – приклад, аutoexec.bat
сonfig.sys
Звернення до Реєстру
під час запуску ОС - до тисячі
під час роботи протягом одного сеансу - до 10 тисяч

Особливості використання реєстру

(с) Гроза П.М.

Слайд 7

Некоректні настройки - поява всіляких «глюків» у роботі ОС
Серйозні ушкодження – ОС

Некоректні настройки - поява всіляких «глюків» у роботі ОС Серйозні ушкодження –
завантажити неможливо
Серйозні руйнування (втрата) файлів - при завантаженні поява BSOD

Проблеми з реєстром

(с) Гроза П.М.

Слайд 8

Виправлення реєстру вручну або програмно
Відновлення з резервної копії
Обережне використання «чистильників» реєстру

Рішення проблем

Виправлення реєстру вручну або програмно Відновлення з резервної копії Обережне використання «чистильників»
з реєстром

(с) Гроза П.М.

Слайд 9

Питання

(с) Гроза П.М.

Питання (с) Гроза П.М.

Слайд 10

(с) Гроза П.М.

2. Логічна структура реєстру

(с) Гроза П.М. 2. Логічна структура реєстру

Слайд 11

Рівні
Ключі (keys)
Характеризуються іменем і містять значення або інші ключі
Значення (values)
Характеризується
іменем,

Рівні Ключі (keys) Характеризуються іменем і містять значення або інші ключі Значення
типом і даними, які воно містить
повним шляхом, що включає всі імена ключів, розташованих над ним

Логічні рівні реєстру

(с) Гроза П.М.

Слайд 12

Кореневі каталоги реєстру

(с) Гроза П.М.

Кореневі каталоги реєстру (с) Гроза П.М.

Слайд 13

HKEY_LOCAL_MACHINE\Software\Classes - настройки за замовчуванням для усіх користувачів ПК
Настройки HKEY_CURRENT_USER\Software\Classes -

HKEY_LOCAL_MACHINE\Software\Classes - настройки за замовчуванням для усіх користувачів ПК Настройки HKEY_CURRENT_USER\Software\Classes -
мають пріоритет над настройками за замовчуванням і застосовуються лише до активного користувача
Щоб змінити настройки поточного користувача – внести зміни до розділу HKEY_CURRENT_USER\Software\Classes, а не до HKEY_CLASSES_ROOT

Особливості настроювань за умовчанням

(с) Гроза П.М.

Слайд 14

HKLM\SYSTEM\CurrentControlSet\Services\Cdrom\Autorun типу REG_DWORD
= 1 - вставлення нового диска у СD- дисковод приводить

HKLM\SYSTEM\CurrentControlSet\Services\Cdrom\Autorun типу REG_DWORD = 1 - вставлення нового диска у СD- дисковод
до автоматичного запуску застосування autorun.exe
HKLM\SOFTWARE\Adobe\Acrobat Reader\6.0
Ключ налагодження програмного продукту - містить значення конфігураційних параметрів версії продукту

Приклад загальносистемного налагодження

(с) Гроза П.М.

Слайд 15

Реєстр складається з 32-х і 64-х розрядних розділів
У 64-розрядній версії редактора реєстру

Реєстр складається з 32-х і 64-х розрядних розділів У 64-розрядній версії редактора
32-х розділи відображаються у вузлі HKEY_LOCAL_MACHINE\Software\WOW6432Node

64-розрядна версія ОС

(с) Гроза П.М.

Слайд 16

Типи даних для використання в реєстрі

(с) Гроза П.М.

Типи даних для використання в реєстрі (с) Гроза П.М.

Слайд 17

Імені параметра
Windows Server 2003, Windows XP та Windows Vista - 16383 знаки
Windows

Імені параметра Windows Server 2003, Windows XP та Windows Vista - 16383
2000 - 260 знаків ANSI або 16383 знаків Юнікоду
Windows Millennium Edition/Windows 98/Windows 95 - 255 знаків
Параметра
Windows NT 4.0/Windows 2000/Windows XP/Windows Server 2003/Windows Vista - уся доступна пам'ять
Windows Millennium Edition/Windows 98/Windows 95 - 16300 байт
!!!Примітка
Сукупний розмір усіх значень у розділі не перевищує 64 КБ

Максимальні розміри

(с) Гроза П.М.

Слайд 18

Питання

(с) Гроза П.М.

Питання (с) Гроза П.М.

Слайд 19

(с) Гроза П.М.

3. Фізична організація реєстру

(с) Гроза П.М. 3. Фізична організація реєстру

Слайд 20

Підмножину дерева ключів, починаючи із ключа другого рівня, називають вуликом (hive)
Вулик (кущ)

Підмножину дерева ключів, починаючи із ключа другого рівня, називають вуликом (hive) Вулик
реєстру — це група розділів, підрозділів і параметрів реєстру, з якою пов'язано групу допоміжних файлів, де містяться резервні копії всіх цих даних
Фізичні дані реєстру - відповідають каталоги
HKEY_LOCAL_MACHINE (HKLM) - інформацію про всю систему
HKEY_USERS (HKU) — дані окремих користувачів

Вулик реєстру

(с) Гроза П.М.

Слайд 21

HARDWARE
інформація про поточну апаратну конфігурацію системи
вміст формується динамічно і на диску

HARDWARE інформація про поточну апаратну конфігурацію системи вміст формується динамічно і на
не зберігається
SAM – БД облікових записів
інформація про імена і паролі користувачів для реєстрації у системі
SOFTWARE
налаштування ППЗ
SYSTEM
інформація для запуску системи - список драйверів і служб, які необхідно завантажити і їх налаштування

Важливі вулики ключа HKLM

(с) Гроза П.М.

Слайд 22

Файли вуликів HKLM - папка %SystemRoot%\System32\Config
Файли HKU - %SystemRoot%\Profiles\Username

Розміщення файлів реєстру

(с) Гроза

Файли вуликів HKLM - папка %SystemRoot%\System32\Config Файли HKU - %SystemRoot%\Profiles\Username Розміщення файлів реєстру (с) Гроза П.М.
П.М.

Слайд 23

Розширення імен файлів у папках

(с) Гроза П.М.

Розширення імен файлів у папках (с) Гроза П.М.

Слайд 24

Питання

(с) Гроза П.М.

Питання (с) Гроза П.М.

Слайд 25

(с) Гроза П.М.

4. Робота з реєстром

(с) Гроза П.М. 4. Робота з реєстром

Слайд 26

Резервне копіювання реєстру
2. Редагування реєстру
3. Використання інтерфейсу користувача Windows
4. Використання редактора реєстру

Дії

Резервне копіювання реєстру 2. Редагування реєстру 3. Використання інтерфейсу користувача Windows 4.
з реєстром

(с) Гроза П.М.

Слайд 27

Перед редагування створіть резервну копію всього реєстру
Використовується програма архівації
Стан системи охоплює
реєстр
базу

Перед редагування створіть резервну копію всього реєстру Використовується програма архівації Стан системи
даних реєстрації класів COM
завантажувальні файли

1. Резервне копіювання реєстру

(с) Гроза П.М.

Слайд 28

для внесення змін до реєстру
Адміністратор може використовувати
редактор реєстру (Regedit.exe або Regedt32.exe)
засоби "Групову

для внесення змін до реєстру Адміністратор може використовувати редактор реєстру (Regedit.exe або
політику"
"Системну політику"
файли реєстру (.reg)
Сценарії

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

(с) Гроза П.М.

Слайд 29

для зміни параметрів системи
Для усунення проблему з продуктом
необхідне редагування реєстру
використовується база знань

для зміни параметрів системи Для усунення проблему з продуктом необхідне редагування реєстру
Microsoft Knowledge Base

3. Використання інтерфейсу користувача Windows

(с) Гроза П.М.

Слайд 30

Дії
пошук піддерева, розділу, підрозділуабо параметрів
додати підрозділ або параметр
змінити параметр
видалити підрозділ або параметр
перейменувати

Дії пошук піддерева, розділу, підрозділуабо параметрів додати підрозділ або параметр змінити параметр
підрозділ або параметр
При доступі до реєстру з віддаленого комп'ютера видимі розділи
HKEY_USERS
HKEY_LOCAL_MACHINE

4. Використання редактора реєстру

(с) Гроза П.М.

Слайд 31

Питання

(с) Гроза П.М.

Питання (с) Гроза П.М.

Слайд 32

(с) Гроза П.М.

5. Програмний інтерфейс доступу до реєстру

(с) Гроза П.М. 5. Програмний інтерфейс доступу до реєстру

Слайд 33

Зчитування інформації з реєстру
Створення нового ключа - RegCreateKeyEx( );
Створення нового значення

Зчитування інформації з реєстру Створення нового ключа - RegCreateKeyEx( ); Створення нового
- RegSetValueEx( );

Можливості

(с) Гроза П.М.

Слайд 34

Виконання послідовно дій
1) Відкрити ключ зі значення - RegOpenKeyEx( );
2) Отримати дані

Виконання послідовно дій 1) Відкрити ключ зі значення - RegOpenKeyEx( ); 2)
- RegQueryValueEx( );
3) Закрити ключ- RegCloseKey(hk);

1. Зчитування інформації з реєстру

(с) Гроза П.М.

Слайд 35

Опис
HKEY hk;
RegOpenKeyEx(
HKEY_LOCAL_MACHINE, // HKEY_CURRENT_USER тощо
"SYSTEM\CurrentControlSet\Services\Cdrom",
0,
KEY_READ,
&hk );
hk - покажчик на

Опис HKEY hk; RegOpenKeyEx( HKEY_LOCAL_MACHINE, // HKEY_CURRENT_USER тощо "SYSTEM\CurrentControlSet\Services\Cdrom", 0, KEY_READ, &hk
змінну для дескриптора ключа реєстру

Функція RegOpenKeyEx( );

(с) Гроза П.М.

Слайд 36

Опис
DWORD vsize, autorun;
RegQueryValueEx(
hk, // RegOpenKeyEx(.... ,&hk); RegQueryValueEx( ); - передається відкритий дескриптор
"Autorun",

Опис DWORD vsize, autorun; RegQueryValueEx( hk, // RegOpenKeyEx(.... ,&hk); RegQueryValueEx( ); -
NULL,
NULL,
(LPBYTE) &autorun, // autorun містить 0 або 1
&vsize);

Функція RegQueryValueEx( );

(с) Гроза П.М.

Слайд 37

char myval[] = "my new data";
HKEY hknew;
RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\myapp", 0, NULL, 0,0, NULL,

char myval[] = "my new data"; HKEY hknew; RegCreateKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\myapp", 0, NULL,
&hknew, &res);
RegSetValueEx(hknew, "myval",0, REG_SZ, (LPBYTE)myval, sizeof(myval));
RegCloseKey(hk);

Приклад використання функцій

(с) Гроза П.М.

Слайд 38

// Функція QueryKey()
#include
#include
#include
#define MAX_VALUE_NAME 80
VOID QueryKey(HKEY hKey)
{
CHAR achKey[MAX_PATH];

// Функція QueryKey() #include #include #include #define MAX_VALUE_NAME 80 VOID QueryKey(HKEY hKey)
CHAR achClass[MAX_PATH] = "";
DWORD cchClassName = MAXPATH;
DWORD cSubKeys;
DWORD cbMaxSubKey;
DWORD cchMaxClass;
DWORD cValues;
DWORD cchMaxValue;
DWORD cbMaxValueData;
DWORD cbSecurityDescriptor;
FILETIME ftLastWriteTime;
DWORD i, j;
DWORD retCode, retValue;
CHAR achValue[MAX_VALUE_NAME];
DWORD cchValue = MA X_ VALUE_ NA M E;
CHAR achBuff[80]; 
RegQueryInfoKey(hKeyachClass, &cchClassName, NULL , &cSubKays, &cbMaxSubKey, AcchMaxClass, &cValues, &cchMaxValue, &cbMaxValueData, &cbSecurityDescriptor, &ftLastWritolimo);
for (i = 0, retCode = ERROR_SUCCESS; retCode == ERROR_SUCCESS; i++) {
retCode = RegEnumKey(hKey i, acliKey, MAX_PATH);
if (retCode == (DWORD)ERROR_SUCCESS) printf ("%s\n", achKey);
}
if (cValues) for (j = 0, retValue = ERROR_SUCCESS; j < cValues; j++)
{
cchValue = MAX_VALUE_NAME;
achValue[0] = '\0';
DWORD dwType;
BYTE bcData[80];
retValue = RegEnumValue(hKey j, achValue, &cchValue, NULL, &dwType, (PBYTE)achBuff, (DWORD*)bcData);
if (retValue != (DWORD) ERROR_SUCCESS) continue;
switch (dwType) {
case REG_DWORD:
printf ("\t\t%s = %d\n", achValue, *(DWORD*)achBuff);
break;
case REG_SZ;
achBuff [*(DWORD*)bcData]=0;
}
printf ("\t\t%s = %s\n", achValue, achBuff);
break;
}

Програма для визначення списку драйверів

(с) Гроза П.М.

Слайд 39

// Функція main()
int main() {
HKEY hkResult;
LONG res1;
LONG res

// Функція main() int main() { HKEY hkResult; LONG res1; LONG res
= RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SYSTEM WCurrentControlSetWServices'', 0, KEYREAD, &hkResult);
if (res != ERROR_SUCCESS) {
printf ("Open Registry ErrorW);
return 1;
}
char buffer[256];
char path[256] = "SYSTEMWCurrentControlSet\\Services\\";
DWORD dwLen = strlen (path);
DWORD dwSize;
HKEY hkSubKey;
for (DWORD dwlndex = 0; ; dwlndex++) {
dwSize - sizeof (buffer);
res = RegEnumKeyEx(hkResult, dwlndex, buffer, &dwSize, 0, 0, 0, 0);
printf ("%s\n", buffer);
if (buffer[0]=='{') continue;
strcpy (path + dwLen, buffer);
res1 = RegOpenKeyEx(HKEY_LOCA L_ MA CHINE, path, 0, KEY_READ, &hkSubKey);
QueryKey(hkSubKey);
res1 = RegCloseKey(hkSubKey);
if (ERROR_NO_MORE_ITEMS == res) break;
}
QueryKey (hkResult);
*res = RegCloseKey(hkResult );
return 0;
}

Програма для визначення списку драйверів

(с) Гроза П.М.

Имя файла: Системный-реестр-Windows-XP-.pptx
Количество просмотров: 341
Количество скачиваний: 0