Реестр — это очень критичное место в операционной системе, в которой хранится практически все — настройки системы, программ, железа.

Работать с реестром приходится как при лечении заражения, так и при устранении последствий заражения. По этому важно уметь работать с реестром, понимать что это и как оно работает — неумелые манипуляции с реестром способны полностью вывести операционную систему из строя.

Начнем.

Реестр системы хранится в виде бинарных файлов. Редактировать реестр можно, например, запустив редактор реестра (если он не отключен администратором или вирусом). Для этого идем в меню Пуск, выполнить, набираем regedit, жмем Enter

Работаем с реестром Windows.

Перед нами редактор реестра. На скрине HKEY_CLASSES_ROOT, HKEY_CURRENT_USER — это кусты (или ульи — hive) реестра. Каждый куст реестра имеет свое назначение и применение.


  • HKEY_CURRENT_USER Данный раздел является корневым для данных конфигурации пользователя, вошедшего в систему в настоящий момент. Здесь хранятся папки пользователя, цвета экрана и параметры панели управления. Эти сведения сопоставлены с профилем пользователя. Вместо полного имени раздела иногда используется аббревиатура HKCU.
  • HKEY_USERS Данный раздел содержит все активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER является подразделом раздела HKEY_USERS. Вместо полного имени раздела иногда используется аббревиатура HKU.
  • HKEY_LOCAL_MACHINE Раздел содержит параметры конфигурации, относящиеся к данному компьютеру (для всех пользователей). Вместо полного имени раздела иногда используется аббревиатура HKLM.
  • HKEY_CLASSES_ROOT Является подразделом HKEY_LOCAL_MACHINE\Software. Хранящиеся здесь сведения обеспечивают выполнение необходимой программы при открытии файла с использованием проводника. Вместо полного имени раздела иногда используется аббревиатура HKCR. Начиная с Windows 2000, эти сведения хранятся как в HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER. Раздел HKEY_LOCAL_MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes, переопределяют принятые по умолчанию и относятся только к текущему пользователю.

    здел HKEY_CLASSES_ROOT включает в себя данные из обоих источников. Кроме того, раздел HKEY_CLASSES_ROOT предоставляет эти объединенные данные программам, разработанным для более ранних версий Windows. Изменения настроек текущего пользователя выполняются в разделе HKEY_CURRENT_USER\Software\Classes. Модификация параметров по умолчанию должна производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes. Данные из разделов, добавленных в HKEY_CLASSES_ROOT, будут сохранены системой в разделе HKEY_LOCAL_MACHINE\Software\Classes. Если изменяется параметр в одном из подразделов раздела HKEY_CLASSES_ROOT и такой подраздел уже существует в HKEY_CURRENT_USER\Software\Classes, то для хранения информации будет использован раздел HKEY_CURRENT_USER\Software\Classes, а не HKEY_LOCAL_MACHINE\Software\Classes.
  • HKEY_CURRENT_CONFIG Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.


Все вышеизложенное относится к 32-х битным (x86) операционным системам

В 64-х битной операционной системе (x64) чуть сложнее. В реестре хранятся одновременно как 64-х битные значения, так и 32-х битные, для обеспечения обратной совместимости со старыми версиями программ. В этом случае, старые, 32-х битные разделы отображаются в разделе

HKEY_LOCAL_MACHINE\Software\WOW6432Node


Работаем с реестром Windows.

При необходимости, можно запустить и старую, 32-х битную версию редактора реестра. Для этого при вызове редактора реестра вместо
regeditиспользуем

%systemroot%\syswow64\regedit


Реестр: что где лежит.

Windows XP/Vista

После установки Windows на диске в каталоге %SystemRoot%\System32\Config\ (например, C:\Windows\System32\Config\) хранятся следующие файлы:

  • system
  • software
  • sam
  • security
  • default

(Все файлы (имена файлов) без расширений. Копия этих файлов хранится в каталоге C:\Windows\Repair\)
Кроме того, файлы, используемые при построении «рабочей версии» реестра, могут храниться в каталогах:

%SystemDrive%\Documents and Settings\\ — файл «Ntuser.dat»
%SystemDrive%\Documents and Settings\\Local Settings\Application Data\Microsoft\Windows\ — файл «UsrClass.dat»

Кроме этого, могут появляться и другие файлы реестра: userdiff (и userdiff.LOG), TempKey.LOG, и, возможно, другие.
Можно провести некое примерное соответствие файлов и веток реестра, но оно не такое простое, полное и однозначное. Однако примерно можно сказать следующее:


  • Ветка реестра «HKEY_LOCAL_MACHINE\Software» формируется из файла «%SystemRoot%\system32\config\software».
  • Ветка реестра «HKEY_LOCAL_MACHINE\System\» формируется из файла «%SystemRoot%\system32\config\system».
  • Ветка реестра «HKEY_LOCAL_MACHINE\SAM\» формируется из файла «%SystemRoot%\system32\config\SAM».
  • Ветка реестра «HKEY_LOCAL_MACHINE\SECURITY\» формируется из файла «%SystemRoot%\system32\config\SECURITY».
  • Ветка реестра «HKEY_LOCAL_MACHINE\HARDWARE\» формируется в зависимости от оборудования(динамически).
  • Ветка реестра «HKEY_USERS\<SID_пользователя>» формируется из файлов «%USERPROFILE%\ntuser.dat»
  • Ветка реестра «HKEY_USERS\DEFAULT» формируется из файлов «%SystemRoot%\system32\config\default»

Windows 7

В Windows 7, согласно сведениям из HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\hivelist файлы реестра хранятся в следующих местах:

  • Ветка реестра «HKEY_LOCAL_MACHINE\HARDWARE» формируется в зависимости от оборудования (динамически);
  • Ветка реестра «HKEY_LOCAL_MACHINE\BCD00000000» формируется из файла «%SystemRoot%\Boot\BCD»

  • Ветка реестра «HKEY_LOCAL_MACHINE\SYSTEM» формируется из файла «%SystemRoot%\System32\config\SYSTEM»
  • Ветка реестра «HKEY_LOCAL_MACHINE\SOFTWARE» формируется из файла «%SystemRoot%\System32\config\SOFTWARE»
  • Ветка реестра «HKEY_LOCAL_MACHINE\SECURITY» формируется из файла «%SystemRoot%\System32\config\SECURITY»
  • Ветка реестра «HKEY_LOCAL_MACHINE\SAM» формируется из файла «%SystemRoot%\System32\config\SAM»
  • Ветка реестра «HKEY_USERS\.DEFAULT» формируется из файла «%SystemRoot%\System32\config\DEFAULT»
  • Ветка реестра «HKEY_USERS\S-1-5-18» формируется из файла «%SystemRoot%\System32\config\systemprofile\NTUSER .DAT» (относится к учетной записи system)
  • Ветка реестра «HKEY_USERS\S-1-5-19» формируется из файла «%SystemRoot%\ServiceProfiles\LocalService\NTUSER. DAT» (относится к учетной записи LocalService)
  • Ветка реестра «HKEY_USERS\S-1-5-20» формируется из файла «%SystemRoot%\ServiceProfiles\NetworkService\NTUSE R.DAT» (относится к учетной записи NetworkService)
  • Ветка реестра «HKEY_USERS\<SID_пользователя>» формируется из файла «%USERPROFILE%\NTUSER.DAT»
  • Ветка реестра «HKEY_USERS\<SID_пользователя>_Classes» формируется из файла «%USERPROFILE%\AppData\Local\Microsoft\Windows\Usr Class.dat»

Резервные копии файлов реестра DEFAULT, SAM, SECURITY, SOFTWARE и SYSTEM находятся в папке «%SystemRoot%\System32\config\RegBack». Само резервное копирование производится силами Планировщика задач в 0 ч. 00 мин. каждые 10 дней по заданию «RegIdleBackup», расположенному в иерархии задач по пути «\Microsoft\Windows\Registry».


Работа с редактором реестра

Взгляните на редактор реестра — он разбит на две части


Работаем с реестром Windows.

Левая часть (выделена синим) — это раздел реестра. Права часть (зеленая зона) редактора реестра отвечает за параметр реестра.

Она состоит из трех полей:

  • Имя — имя параметра реестра
  • Тип — тип параметра реестра
  • Значение — значение параметра реестра

Тип параметра реестра бывает следующим

  • REG_BINARY (Двоичный параметр) — Необработанные двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.
  • REG_DWORD (Параметр DWORD) — Данные представлены в виде значения, длина которого составляет 4 байта (32-разрядное целое). Этот тип данных используется для хранения параметров драйверов устройств и служб. Значение отображается в окне редактора реестра в двоичном, шестнадцатеричном или десятичном формате. Эквивалентами типа DWORD являются DWORD_LITTLE_ENDIAN (самый младший байт хранится в памяти в первом числе) и REG_DWORD_BIG_ENDIAN (самый младший байт хранится в памяти в последнем числе).

  • REG_EXPAND_SZ (Расширяемая строка данных) — Строка данных переменной длины. Этот тип данных включает переменные, обрабатываемые при использовании данных программой или службой.
  • REG_MULTI_SZ (Многострочный параметр) — Многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами.
  • REG_SZ (Строковый параметр) — Текстовая строка фиксированной длины.
  • REG_RESOURCE_LIST (Двоичный параметр) — Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются драйвером устройства или управляемым им физическим устройством. Обнаруженные данные система сохраняет в разделе \ResourceMap. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате.
  • REG_RESOURCE_REQUIREMENTS_LIST (Двоичный параметр) — Последовательность вложенных массивов. Служит для хранения списка драйверов аппаратных ресурсов, которые могут быть использованы определенным драйвером устройства или управляемым им физическим устройством. Часть этого списка система записывает в раздел \ResourceMap. Данные определяются системой. В окне редактора реестра они отображаются в виде двоичного параметра в шестнадцатеричном формате.

  • REG_FULL_RESOURCE_DESCRIPTOR (Двоичный параметр) -Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются физическим устройством. Обнаруженные данные система сохраняет в разделе \HardwareDescription. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате.
  • REG_NONE — Данные, не имеющие определенного типа. Такие данные записываются в реестр системой или приложением. В окне редактора реестра отображаются в виде двоичного параметра в шестнадцатеричном формате.
  • REG_LINK (Ссылка) — Символическая ссылка в формате Юникод.
  • REG_QWORD (Параметр QWORD) — Данные, представленные в виде 64-разрядного целого. Начиная с Windows 2000, такие данные отображаются в окне редактора реестра в виде двоичного параметра.

По клику правой кнопкой мыши на параметре реестра я могу переименовать/изменить/удалить параметр

Работаем с реестром Windows.

По клику правой кнопкой мыши в свободной области редактора реестра я могу либо создатьраздел реестра либо создать параметр реестра с нужным мне типом

Работаем с реестром Windows.

При клике правой кнопкой по разделу реестра, я, кроме того, что создать раздел реестра, создать нужный мне параметр реестра, могу еще удалить/переименовать раздел реестра.


Работаем с реестром Windows.

Дополнительно я могу экспортировать раздел реестра — сохранить содержимое раздела реестра в виде текстового файла и установить разрешения доступа к разделу реестра (по аналогии с файловой системой NTFS).

Работаем с реестром Windows.

У раздела реестра HKEY_LOCAL_MACHINE есть одна особенность: через меню файл я могу загрузить и выгрузить куст реестра. Это очень важный момент — я могу загрузить куст реестра, взятый из резервной копии или вообще с другого компьютера и работать с ним. А после чего могу его выгрузить (сохранить).

Работаем с реестром Windows.

Источники
Реестр Windows
Сведения о реестре Windows для опытных пользователей