Как открыть параметры реестра. Общие сведения о реестре Windows. Способы редактирования реестра

В этом уроке мы более подробно рассмотрим устройство реестра операционной системы Windows (данная информация актуальна для XP, 7, 8, 8.1, 10).

Если вы хотите узнать, что такое системный реестр, можете начать с предыдущего урока, в нём я всё подробно рассказал, . Если же вам уже знакомы основы, то приглашаю погрузиться в глубины реестра ОС Windows.

Как устроен реестр Windows

Структуру реестра можно увидеть в специальной программе «Редактор реестра» (подробные инструкции по его запуску можно найти ).

Самый простой вариант запуска: нажмите Win+R , введите команду regedit и нажмите ОК .

Редактор реестра очень похож на проводник, а структура реестра похожа на файловую систему вашего компьютера:

— слева отображаются разделы , похожие на папки, внутри них есть подразделы (совсем как подпапки);

— справа отображаются параметры (очень похожи на файлы) и их значения .

Разделы реестра Windows

Реестр Windows 10, 8, 7, XP состоит из пяти стандартных разделов – корневых ключей:

  • HKEY_ CLASSES_ ROOT – информация о зарегистрированных в Windows типах файлов
  • HKEY_ CURRENT_ USER – настройки пользователя, вошедшего в Windows
  • HKEY_ LOCAL_ MACHINE – настройки, относящиеся к компьютеру
  • HKEY_ USERS – настройки для всех пользователей
  • HKEY_ CURRENT_ CONFIG – сведения о настройках оборудования

Для простоты, их часто указывают в сокращенном обозначении (аббревиатура из первых букв): HKCR, HKCU, HKLM, HKU, HKCC .

Назначение разделов реестра

Разберемся с разделами реестра Windows 10 немного подробнее (если покажется сложным, переходите сразу к параметрам реестра):

Раздел реестра Описание
HKEY_CLASSES_ROOT
(HKCR)
Раздел хранит информацию о всех типах файлов, о которых должна знать Windows (avi, doc, jpg и все остальные). Для каждого типа указана программа, связанная с ним, закреплен значок, который отображается в проводнике, приведены команды, которые можно использовать для данных файлов (открыть, печать и т.д.) После установки различных программ, здесь регистрируются новые типы файлов (например, после установки архиватора 7-Zip появляется тип файла.7z)
Раздел является копией подраздела HKEY_LOCAL_MACHINE\Software\Classes
HKEY_CURRENT_USER
(HKCU)
Этот раздел содержит настройки пользователя, вошедшего в систему в данный момент. Здесь хранятся настройки экрана, раскладка клавиатуры, сетевые подключения, настройки программ и многое другое.
Большинство рекомендаций по настройке реестра относятся к этому разделу.
HKEY_USERS
(HKU)
Здесь находятся настройки всех пользователей операционной системы, а также настройки по умолчанию. На самом деле раздел HKEY_CURRENT_USER – это один из подразделов раздела HKEY_USERS и все изменения настроек, совершенные пользователем, сохраняются в выделенном для него подразделе.
HKEY_LOCAL_MACHINE
(HKLM)
В этом разделе хранится информация о настройках компьютера (программной и аппаратной конфигурации). Всё, что вы измените в этом разделе, будет влиять на всех пользователей ПК.
Этот раздел второй по популярности вносимых изменений.
HKEY_CURRENT_CONFIG
(HKCC)
Раздел содержит информацию о настройке оборудования для текущего сеанса (профиль оборудования). Этот раздел является копией подраздела «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles» и практически не используется при ручных изменениях.

Поздравляю, мы уже разобрались с половиной урока, и вы знаете о пяти корневых разделах реестра!

Чтобы изучить устройство реестра, осталось познакомиться с параметрами и их значениями.

Виды параметров реестра Windows

Как мы уже знаем, разделы и подразделы содержат параметры (на английском языке — value entries). Параметры могут иметь различные значения, например: путь к файлу, название программы, различные числа и т.д.

Пример структуры реестра Windows 10

Параметры реестра делятся на три основных типа (и несколько разновидностей):

  1. Строковые параметры – REG_SZ
  2. Двоичные параметры – REG_BINARY
  3. DWORD-параметры – REG_DWORD

Подробнее о параметрах реестра

Попробую кратко описать отличия параметров реестра:

Параметр Описание
Строковый параметр
REG_ SZ
Содержит строку текста, например, путь к файлу или папке («C:\Windows»).
Расширенный строковый параметр
REG_ EXPAND_ SZ
Может содержать специальные переменные, например, вместо «C:\Windows» можно указать %systemroot% (фактически, это будет тот же путь, но мы можем использовать его, если не знаем заранее, куда установлена ОС).
Многострочный параметр
REG_ MULTI_ SZ
Может содержать более одной строки, удобно, если нужно внести целый список.
Двоичный параметр
REG_ BINARY
Набор двоичных данных, которые отображаются в шестнадцатеричном формате (например, 10 82 A0 8F). Используется для хранения информации об оборудовании.
Параметр DWORD
REG_ DWORD
Это целое число, которое может быть в двоичном, десятичном или шестнадцатеричном виде (например, 0x00000020 (32) — в скобках указано десятичное значение ключа). Длина числа – 4 байта (32 бита). Часто этот параметр работает как переключатель: 1 – включено, 0 – выключено.

На самом деле, видов параметров в два раза больше, но чтобы понять принципы устройства реестра, их разбирать не обязательно (но если желание появилось, обязательно напишите в комментариях!)

Внешний вид различных параметров

Вот как отображаются все перечисленные параметры в редакторе реестра:

Виды параметров реестра в Windows 10 и 8 (пример)

То есть, все виды строковых параметров обозначаются значком с буквами «ab », а двоичные и числовые параметры обозначаются значком с цифрами «0011 ».

Ух ты, кажется, мы рассмотрели всё, что нужно!

Заключение

Итак, в этом уроке мы разобрались с устройством реестра Windows 10/8/7/XP.

Давайте повторим: реестр состоит из пяти разделов , которые могут содержать подразделы (как папки в проводнике). В разделах и подразделах находятся параметры (строковые и числовые). Изменяя значения параметров, мы можем изменять настройки операционной системы, программ и пользователя.

Не слишком сложно?

Жду ваших отзывов и вопросов в комментариях!

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

P.S. Минутка юмора

А вот что бывает, если не изучать IT-уроки 🙂

Копирование запрещено , но можно делиться ссылками.

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

Итак, если реестр – это база данных Windows, то нужен определенный инструмент для работы с данной базой. Таким инструментом в Windows является Редактор реестра. Обратите внимание, что ярлык данной программы вы не найдете на Рабочем столе, а также в меню кнопки Пуск . Обычный пользователь не должен знать о существовании данной программы. Поэтому поступим следующим образом. Нажмем кнопку Пуск и в строке поиска наберем слово regedit. Вы увидите в разделе Программы пункт regedit.exe (рис. 1.1). Это и есть файл редактора реестра Windows, которым мы будем пользоваться на протяжении всей книги.


Рис. 1.1. Поиск редактора реестра


Щелкаем на ссылке regedit.exe , чтобы запустить программу. Сначала вы увидите (при стандартных настройках безопасности) окно Контроля учетных записей пользователей UAC с предупреждением. Мы должны согласиться с сообщением, то есть нажать кнопку OK , и наконец-то увидим редактор реестра (рис. 1.2).


Рис. 1.2. Редактор реестра


ПРИМЕЧАНИЕ

Еще один способ запуска редактора реестра или любых других программ, имена исполняемых файлов которых вы знаете, заключается в использовании стандартного средства запуска программ. Выполните команду: Пуск Все программы Стандартные Выполнить. В поле Открыть появившегося окна введите regedit – и редактор реестра будет открыт.

Запуск редактора реестра возможен при наличии соответствующих прав. Запуск программы, требующей повышения привилегий, лишний раз говорит о том, как опасна может быть программа в руках неумелых пользователей.

Теперь рассмотрим саму программу. Ее интерфейс напоминает Проводник . Слева вы видите иерархическое дерево со значками папок – это разделы реестра. Как и в случаях с обычными папками, которые могут содержать вложенные папки, разделы могут иметь вложенные подразделы. В правой части редактора мы видим названия параметров, тип параметров и их значения.

Рассмотрим элементы реестра подробнее.

Корневые разделы

Все параметры реестра Windows 7 сгруппированы в пяти основных разделах (разделы еще называют ключами), называемых корневыми:

1. HKEY_CLASSES_ROOT.

2. HKEY_CURRENT_USER.

3. HKEY_LOCAL_MACHINE.

4. HKEY_USERS.

5. HKEY_CURRENT_CONFIG.

ПРИМЕЧАНИЕ

На самом деле в реестре есть еще один раздел. Он называется HKEY_PERFOMANCE_DATA. Этот раздел хранит сведения о производительности, используется системой и не предназначен для редактирования «вручную». Доступ к нему можно получить только программно.

Все корневые разделы начинаются со слова HKEY и содержат подразделы. Корневые разделы нельзя удалить или переименовать.

Практическое занятие

Выделите мышкой любой из корневых разделов и щелкните правой кнопкой мыши для вызова контекстного меню. Убедитесь, что команды меню Удалить и Переименовать заблоки рованы.

Рассмотрим каждый корневой раздел.

HKEY_CLASSES_ROOT

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

Также раздел содержит информацию о ActiveX-элемен тах, хранит список библиотек типов и много другой системной информации. Например, в этом разделе хранится информация о том, что при двойном щелчке на файле с расширением TXT должен запуститься Блокнот .

У данного раздела имеется псевдоним HKCR , используемый в сценариях и программах. В большинстве случаев данный раздел представляет интерес только для очень опытных программистов.

HKEY_CURRENT_USER

Раздел HKEY_CURRENT_USER содержит информацию о пользователе, работающем с Windows 7 в текущем сеансе, а также о различных настройках системы, относящихся к текущему пользователю: вид Рабочего стола, настройки экрана, принтера, параметры применяемых программ.

Псевдоним у данного раздела HKCU . Данный раздел является наиболее используемым в настройках. Большинство описываемых в этой книге параметров находится именно в данном разделе.

HKEY_LOCAL_MACHINE

Раздел HKEY_LOCAL_MACHINE хранит информацию о конфигурации компьютера (программной и аппаратной), не зависящей от конкретного пользователя. Настройки в этом разделе действительны для всех пользователей данного компьютера.

В качестве псевдонима для данного раздела используется HKLM .

Интересно отметить, что подраздел HKEY_LOCAL_MACHINE\SOFTWARE\Classes является практически полной копией корневого раздела HKEY_CLASSES_ROOT .

Данный раздел является вторым по популярности при ручных настройках. Существует множество параметров, которые работают в разделах HKLM и HKCU , но тем не менее рекомендуется менять настройки для отдельного пользователя в разделе HKCU и не трогать настройки для всех пользователей без острой необходимости.

Раздел HKEY_USERS (псевдоним HKU ) содержит информацию о профилях всех пользователей данного компьютера.

Данный раздел практически никогда не используется пользователями. Следует отметить связь данного корневого раздела с разделом HKEY_CURRENT_USER , который фактически является копией подраздела корневого раздела HKEY_USERS , хранящего сведения о текущем пользователе.

Назначение этого раздела нередко интерпретируется неправильно. Разберем его составляющие чуть подробнее. В данном разделе можно увидеть несколько подразделов определенного образца (рис. 1.3).


Рис. 1.3. Подразделы раздела HKEY_USERS


HKEY_USERS\.DEFAULT

Некоторые пользователи ошибочно считают, что раздел HKEY_USERS\.DEFAULT можно использовать для импортирования параметров HKCU , рассчитывая применить их ко всем пользователям. Возможно, что в некоторых случаях это сработает. Однако HKEY_USERS\.DEFAULT скорее относится к настройкам, регулирующим процессы до входа пользователя в систему (например, раскладка клавиатуры по умолчанию).

HKEY_USERS\S-[длинный набор цифр]

Также в разделе HKEY_USERS может находиться несколько подразделов с наборами цифр. Длинный набор цифр – это SID (идентификатор безопасности). Идентификатор безопасности присваивается каждой учетной записи, поэтому количество таких подразделов зависит от количества пользователей, когда-либо входивших в систему. Чтобы узнать, свой SID в системе, можно использовать несколько способов. Например, можно запустить утилиту командной строки whoami.exe , которая входит в состав Windows 7, с параметром /use r:

whoami /user

Для выполнения этой команды сначала запустите интерпретатор командной строки командой Пуск Все программы Стандартные Выполнить , введя в поле Открыть появившегося окна команду cmd.exe или просто cmd. Откроется окно, в котором и нужно ввести вышеописанную команду, нажав после ее ввода клавишу Enter (рис. 1.4).

Также можно посмотреть раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList , который содержит список всех SID в виде подразделов. Просмотрите все подразделы и ищите в них параметр ProfilelmagePath . Ваш SID тот, в котором значение этого параметра совпадает с именем, под которым вы входите в систему (рис. 1.5).


Рис. 1.4. Использование командной строки Windows


Рис. 1.5. Просмотр параметра ProfileImagePath


HKEY_CURRENT_CONFIG

Корневой раздел HKEY_CURRENT_CONFIG (псевдоним HKCC ) хранит информацию о настройках оборудования, которое используется компьютером в текущем сеансе работы. Он также является копией подраздела HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware-Profiles . Этот раздел практически не используется разработчиками в программах и сценариях.

Итак, мы рассмотрели все виды корневых разделов. Каждых из них имеет множество вложенных разделов (подразделов). Их количество у каждого компьютера различно. Это связано с тем, что каждый пользователь устанавливает на компьютер свои любимые программы и игры. Если установка приложения происходит через специальные установочные программы – инсталляторы (Setup.exe, Install.exe и т. п.), то в реестр добавляются новые подразделы и параметры. Позже вы на учитесь находить подобные разделы и изменять их по своему желанию.

Физическое расположение реестра

Сам реестр физически состоит из нескольких файлов, расположенных в папке %SystemRoot%\System32\Config . Часть файлов для раздела HKEY_CURRENT_USER хранится в папке %SystemRoot%\Profiles\ Имя_пользователя . Данные файлы являются защищенными и не представляют практического интереса для пользователя.

Если вам пока непонятно что означает %SystemRoot% – читайте дальше – в следующем разделе мы поговорим о том, что это такое.

Типы параметров

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

REG_BINARY – двоичные данные (Binary Value) представляют собой набор двоичных данных, доступных для редактирования в шестнадцатеричном формате. Подобный тип данных используется для хранения сведений об аппаратных ресурсах.

REG_DWORD – целое число (DWORD Value) может задаваться в двоичном, десятичном и шестнадцатеричном форматах. Это один из самых применяемых типов параметров. Очень часто он работает в качестве своеобразного переключателя: 1 – включение (True)/0 – выключение (False). В реестре Windows 7 присутствует два вида DWORD: 32-битное значение и 64-битное значение.

REG_EXPAND_SZ – расширенная строка (Expandable String Value) используется для ссылок на файлы. Кроме произвольного текста значение параметра такого типа может включать в себя специальные переменные. Во время обработки системой они могут заменяться на определенные значения, например пути к папкам. В таком качестве часто используются следующие переменные:

%systemroot% – путь к каталогу в котором операционная система хранит свои файлы (например, каталог C:\Windows ).

%windir% – похоже на предыдущую переменную. Ее отличие от %systemroot% заключается в том, что переменную %systemroot% переопределить нельзя, а каталог, к которому ведет переменная %windir% , можно изменить с помощью окна Переменные среды (Панель управления Система и безопасность Система Дополнительные параметры системы вкладка Дополнительно кнопка Переменные среды ).

%systemdrive% – заменяет собой букву системного диска (как правило, диск С: ).

%userprofile% – подставляет путь к каталогу, хранящему профиль текущего пользователя.

%programfiles% – заменяет собой путь к папке, в которую Windows устанавливает все программы (как правило, C:\Program Files ).

%username% – подставляет имя текущего пользователя, работающего с системой.

computername% – подставляет имя компьютера (используется при обращении к компьютеру по сети).

REG_MULTI_SZ – многострочный текст (Multi-String Value) обычно используется для представления списков.

REG_SZ – текстовая строка (String Value). Это один из самых распространенных типов данных в реестре.

ПРИМЕЧАНИЕ

Существует еще несколько типов данных, используемых в реестре, которые нельзя создать с помощью редактора реестра. Ресурсы этих типов создают программным способом: REG_FULL_RESOURCE_DESCRIPTOR, REG_LINK, REG_NONE, REG_RESOURCE_LIST.

Основные приемы работы с редактором реестра

С помощью редактора реестра мы можем создавать новые разделы (кроме корневых), новые параметры, переименовывать уже существующие разделы и параметры, изменять значения параметров, удалять разделы (кроме корневых) и параметры. Также мы можем создавать архивные копии реестра и восстанавливать реестр из копий. При работе с редактором реестра нужно быть особенно внимательными.

ВНИМАНИЕ

У редактора нет команды отмены последнего действия и все ваши операции необратимы. Поэтому, если вы случайно удалили раздел и забыли, как он назывался, вам уже никто не поможет. Никто – кроме вас самих, если вы, прежде чем выполнять какую-либо операцию с реестром, создадите его архивную копию.

Для того чтобы создать архивную копию реестра, выполните в окне редактора реестра команду Файл Экспорт.

Появится окно для выбора параметров сохранения файла (рис. 1.6).


Рис. 1.6. Создание архивной копии реестра


В данном окне, в поле Имя файла следует указать имя файла, в который будет осуществлен экспорт реестра. В группе параметров Диапазон экспорта следует выбрать Весь реестр или Выбранная ветвь , а в окне выбора места хранения файла выбрать нужное расположение, в нашем случае это – Рабочий стол . После нажатия кнопки Сохранить реестр будет экспортирован в указанный файл.

Создавая архивную копию реестра, помните о том, что он имеет весьма значительный объем – около 100 Мбайт или даже больше. Операции экспорта реестра выполняются на современных компьютерах до нескольких минут.

На практике обычно создают архивные копии не всего реестра, а тех ветвей, которые редактируют.

Для того чтобы экспортировать только выбранный раздел реестра, достаточно щелкнуть по нему правой кнопкой мыши и выбрать из контекстного меню команду Экспортировать . Появится уже знакомое нам диалоговое окно, в котором переключатель автоматически будет стоять в позиции Выбранная ветвь и в текстовом поле будет указан полный путь к разделу.

В случае неправильного поведения системы после изменения параметров той или иной ветви вы можете быстро ее восстановить, воспользовавшись командой Файл Импорт .

Еще один способ обезопасить себя от проблем, связанных с модификацией реестра, – создание точки восстановления системы.

Для того чтобы создать точку восстановления системы, выполните команду Пуск Панель управления Система и безопасность Система Защита системы и в появившемся окне (рис. 1.7) нажмите кнопку Создать .

В появившемся после этого окне следует ввести название точки восстановления и нажать кнопку Создать .

После того как точка восстановления будет создана и вы произведете изменения в реестре, которые нужно будет отменить, вы сможете восстановить систему до нужной точки восстановления. Для этого вызовите средство Восстановление системы командой Пуск Все программы Стандартные Служебные Восстановление системы (рис. 1.8).

Окно Восстановление системы построено в виде мастера, который проведет вас по шагам, необходимым для запуска процесса восстановления.


Рис. 1.7. Создание точки восстановления системы


Рис. 1.8. Восстановление системы


ВНИМАНИЕ

Всегда перед модификацией создавайте архивные копии реестра или точку восстановления системы.

Кстати, сохраненные резервные копии реестра желательно не только держать на том же диске, на котором находится система, но и скопировать их на другие надежные носители: другой компьютер, компакт-диск, флешка.

Создание нового раздела

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

Практическое занятие

Запустите редактор реестра. В левом окне программы раскройте раздел HKEYCURRENTUSER . Далее найдите в нем подраздел Software и щелкните на нем правой кнопкой мыши для вызова контекстного меню. Выберите в меню команды Создать Раздел . По умолчанию будет создан раздел Новый раздел #1 . Сразу присвойте ему новое имя. Напечатайте новое имя для раздела, например Test , и нажмите Enter (рис. 1.9). Если вы случайно переключились на другое окно и имя созданного раздела стало недоступным для редактирования, то не пугайтесь. Щелкните для выделения созданный раздел Новый раздел #1 и в контекстном меню выберите пункт Переименовать (или нажмите клавишу F2 ). Имя раздела станет доступно для редактирования, и вы сможете его задать.


Рис. 1.9. Создание нового раздела


Создание нового параметра

Теперь давайте научимся создавать новые параметры. Прежде всего необходимо определиться, какой тип будет иметь параметр. Далее необходимо выделить соответствующий раздел и, щелкнув по нему правой кнопкой мыши, выбрать в контекстном меню пункт Создать Строковый параметр (или любой другой). Далее вам нужно выбрать нужное имя и установить желаемое значение.

Практическое занятие

Создадим два новых параметра в ранее созданном разделе Test .

Выделите раздел мышкой и нажмите правой клавишей для вызова контекстного меню. Выберите последовательно команды Создать Строковый параметр . У вас появится новый параметр Новый параметр #1 , готовый к редактированию. Введите вместо имени, предлагаемого по умолчанию, новое имя, например CatName (рис. 1.10), и нажмите клавишу Enter . Вы только что создали новый параметр, у которого еще нет значения.


Рис. 1.10. Создание нового строкового параметра


Дважды щелкните мышкой на созданном параметре (или вызовите контекстное меню и выберите команду Изменить ). У вас появится диалоговое окно, в котором вы можете присвоить новое значение для параметра. Введите какое-нибудь слово, например Рыжик , и нажмите клавишу Enter (рис. 1.11).


Рис. 1.11. Изменение значения строкового параметра


Теперь создадим еще один параметр типа DWORD . Попробуем это сделать другим способом. В правой части редактора реестра щелкните правой кнопкой мыши на свободном месте для вызова контекстного меню и выберите команды Создать Параметр DWORD (32 бита).

Будет создан новый параметр типа DWORD под именем Новый параметр #1 , готовый к редактированию. Напечатайте какое-нибудь имя, например CatAge , и нажмите клавишу Enter . Теперь необходимо присвоить значение этому параметру. Дважды щелкаем по параметру CatAge и вводим в текстовом поле Значение число 8 (рис. 1.12). Обратите внимание, что можно вводить как десятичное значение, так и шестнадцатеричное.


Рис. 1.12. Изменение значения параметра типа DWORD


В данном случае и в той и в другой системе число 8 выглядит одинаково.

Итак, в результате наших действий в разделе Test появилось два новых параметра, CatName и CatAge , с установленными значениями, которые указывают имя кота и его возраст (рис. 1.13).


Рис. 1.13. Новый раздел с двумя созданными параметрами


Экспорт раздела

Как правило, параметры экспортируют перед внесением изменений в реестр (резервное копирование) либо для того, чтобы создать REG-файл для последующего импорта в реестр другого компьютера или при автоматической установке системы.

Выше, говоря о создании архивной копии реестра, мы уже затрагивали вопросы экспорта реестра целиком или его отдельных ветвей. Сейчас пришло время попрактиковаться в этом занятии, используя наш сквозной пример.

Практическое занятие

Попробуйте экспортировать только что созданный раздел Test . Найдите и выделите его мышкой в левом окне редактора реестра. Щелкните правой кнопкой мыши для вызова контекстного меню и выберите команду Экспортировать . В открывшемся диалоговом окне укажите имя файла, например cat.reg , для записи настроек раздела и сохраните его на Рабочем столе (рис. 1.14).

Удаление раздела

Удалить раздел не слишком сложно. Просто выделяем нужный раздел и нажимаем клавишу Delete . Также можно удалить при помощи контекстного меню (команда Удалить ) или через меню Правка Удалить .

Практическое занятие

Удалите созданный ранее раздел Test . Для этого выделите его, нажмите клавишу Delete на клавиатуре или выполните команду контекстного меню раздела Правка Удалить . Прежде чем удалить раздел, система запросит у вас подтверждение операции (рис. 1.15).


Рис. 1.14. Экспорт выбранного раздела реестра


Рис. 1.15. Запрос подтверждения на удаление раздела реестра


Ответьте на вопрос, нажав кнопку Да , и раздел будет удален.

Еще раз обращаем ваше внимание на то, что после ошибочного удаления отменить операцию можно только в том случае, если вы заранее позаботились об архивировании реестра или о создании точки восстановления системы.

Импорт параметров

Чтобы восстановить в реестре сохраненные данные, используется операция импорта параметров. Для этого в меню редактора реестра выберите команды Файл Импорт... и в диалоговом окне выбора файлов укажите REG-файл для импорта.

Практическое занятие

Откройте меню Файл Импорт… и в диалоговом окне найдите файл cat.reg , который был экспортирован в предыдущем примере. В результате появится окно с сообщением, что содержащиеся в файле настройки раздела и параметры успешно добавлены в реестр (рис. 1.16). В этом можно убедиться. Если сразу не видно никаких изменений, то попробуйте нажать клавишу F5 или выбрать меню Вид Обновить .


Рис. 1.16. Импортирование настроек реестра


Для того чтобы импортировать REG-файл в реестр, можно просто сделать на нем двойной щелчок мышью. Например, когда мы сделали двойной щелчок мышью на файле cat.reg , который незадолго до этого был выгружен из реестра на Рабочий стол, система вывела предупреждение как на рис. 1.17.


Рис. 1.17. Предупреждение при импорте файла в реестр


Ответив Да на вопрос, вы импортируете файл в реестр.

REG-файл можно импортировать в реестр из командной строки при помощи команды

REGEDIT <имя_файла>

Наберите в командной строке (предполагается, что у вас на диске D: уже есть файл test.reg )

REGEDIT D:\test.reg

На экране появится серия диалоговых окон с предупреждениями, и файл будет импортирован в реестр.

Редактор реестра позволяет распечатать выбранный раздел на принтере или в файл при помощи команды Файл Печать...

Избранное

В редакторе реестра есть очень полезное, ускоряющее работу меню. Оно называется Избранное . C его помощью можно быстро добавить в список нужный раздел, с которым придется часто работать.

Стоит отметить еще такую интересную деталь: при следующем запуске редактора реестра он всегда открывается на том разделе, работа с которым происходила в последний раз.

Практическое занятие

Давайте занесем в Избранное созданный нами раздел Test . Выделите его в редакторе реестра и выберите меню Избранное Добавить в избранное... Откроется диалоговое окно Добавление в папку „Избранное“ (рис. 1.18). При желании можно изменить имя по умолчанию для сохранения и щелкнуть на кнопке ОК , чтобы подтвердить наше действие. Теперь щелкните на любом другом разделе и закройте редактор. Откройте редактор реестра снова. В меню Избранное найдите строку Test (или строку с тем именем, под которым раздел был сохранен) и щелкните на ней. Вы сразу перейдете в нужный раздел.


Рис. 1.18. Сохранение раздела в папке Избранное

Сегодня мы попробуем залезть в реестр Windows с черного хода, без использования штатных WinAPI-функций, для этого предназначенных. Что нам это даст в итоге? Возможность писать и читать из реестра напрямую, в обход ограничений, установленных разработчиками антивирусных решений!

Забегая вперед, отмечу: тема эта интересна, но тут целый набор серьезных проблем. Хотя кто сказал, что нам это не по плечу? 🙂

Что такое реестр, или немного лирики

С точки зрения операционной системы Windows, реестр - это уникальная кладовка. В этой своеобразно выстроенной иерархической базе данных хранятся настройки, данные, регистрационная информация и прочая хрень почти обо всем в системе, начиная с программ и заканчивая настройками конкретного пользователя. В реестре хранится практически все. Несмотря на то что некоторые программы предпочитают хранить свои настройки в ini-конфигах (особенно программы, написанные для Win 3.11. – Прим. ред.), сама Windows всю нужную информацию о самой себе считывает из реестра. Справедливости ради отметим, что в *nix-like операционных системах до сих пор господствует система хранения настроек во всевозможных конфигах.

Новичков - системных администраторов при начале работы с реестром старшие товарищи пугают, что неправильная настройка и изменение параметров реестра могут напрочь завалить систему с последующей ее переустановкой. И это действительно так.

К примеру, так называемые точки восстановления - это копии реестра. Они широко применяются пользователями при возникновении различных проблем как с операционной системой, так и с программным и аппаратным обеспечением.

Надо сказать, что 99% информации о реестре Windows - это описание основных ключей плюс советы, как с ними работать. Но как работает с реестром сама операционная система? И сможем ли мы эмулировать ее действия? Давай немного порассуждаем.

Ну и что?

Реестр - одновременно и сильная и слабая сторона Windows. Сильная сторона реестра в том, что для разработчиков программного обеспечения отпадает необходимость манипулировать туевой хучей конфигов, как это, например, реализовано в никсах. Удобен реестр и для создателей COM-компонентов - система автоматом регистрирует такой компонент в реестре и облегчает задачу по его дальнейшему использованию.

Слабость реестра в том, что доступ к модификации чувствительных областей реестра позволяет управлять Windows любой программе, написанной каким-нибудь новоявленным малварщиком. Вспомни хотя бы самую знаменитую ветку реестра Windows, позволяющую запускать программы на старте ОС:).

Если в Windows 98 реестр могли починять все, кому это взбредет в голову, то начиная с Windows XP доступ к реестру имеют только пользователи с учетной записью администратора. В Vista+ доступ к реестру находится под защитой UAC. Оно и понятно.

Надо признать, что с выходом Win7 концепции безопасности при работе с реестром были пересмотрены в лучшую сторону. Например, под защитой находится ключевая ветвь реестра HKEY_LOCAL_MACHINE. В общем случае попытка что-то записать в нее будет перенаправлена в соответствующую ветку HKEY_CURRENT_USER для текущего пользователя.

Интерфейс

Для работы с реестром напрямую Windows предлагает программисту целый набор WinAPI, которые должны быть знакомы любому системному разработчику, - это Reg*-функции, такие как RegOpenKey, RegQueryValue и так далее. В ядре Win это NtOpenKey, NtQueryValueKey и целый ряд других. Описывать их особого смысла нет - всю документацию по надлежащему использованию этих функций можно найти в MSDN.

Здесь стоит отметить вот что. Антивирусы и проактивки для контроля за пользовательскими действиями устанавливали перехваты на упомянутые функции, как в ядре, так и в юзермоде.

С выходом Win7 x64 ситуация изменилась, и я уже об этом как-то писал. Разработчики Windows решили отказаться от возможности перехватывать потенциально опасные функции в ядре Win. Теперь переменная KeServiceDescriptorTable в x64 больше экспортируется, да и переписать нужный участок кода не выйдет - PatchGuard не даст. Есть, конечно, садомазохистские решения по обходу этих ограничений - но там гемора будет больше, чем профита. Тем более что Microsoft предлагает удобные колбеки ObRegisterCallbacks для контроля за реестром.

INFO

Информации в Сети о структурах, описывающих основные файлы реестра, очень мало. И почти все они на английском. Начальные знания можно найти . Кроме этого, хорошо про реестр написано в библии системщика «Внутреннее устройство Windows» от товарищей М. Руссиновича и Д. Соломона.

А теперь - о самом интересом

Но что же такое реестр на самом деле? Если заглянуть в папку WINDOWSsystem32config, то можно увидеть там несколько файлов: system, software, security, SAM и несколько других.

Это файлы реестра.

Однако несправедливо будет говорить о реестре просто как о некоем сочетании файлов, загруженных в память. Многое из того, что содержит реестр, носит динамический характер, то есть ряд значений высчитывается на этапе загрузки самой системы, в первую очередь это касается определенных параметров железа. Например, таков подраздел реестра HKEY_DYN_DATA, данные которого при загрузке операционной системы размещаются в оперативной памяти и находятся там вплоть до завершения работы операционной системы. То же, кстати, можно сказать и о ключевом подразделе HKEY_LOCAL_MACHINE, который не имеет своего соответствующего файла на диске, но фактически формируется из других файлов реестра, таких как software, system и прочие.

Таким образом, реестр изнутри можно весьма приблизительно назвать «виртуальным сочетанием файлов реестра». После старта системы эти файлы находятся как в файле подкачки (paged pool), так и в невыгружаемой памяти (nonpaged).

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

Для того чтобы научиться работать с реестром напрямую, без знаний его внутренней структуры не обойтись никак. В целом Microsoft никогда не раскрывала тайны внутренней структуры файлов, составляющих реестр, поскольку это угрожает безопасности. По моим наблюдениям, все имеющиеся описания файлов реестра и его структуры (а их, кстати совсем чуть-чуть) - результаты изысканий пионэров-исследователей. Наиболее законченное, на мой взгляд, такое «исследование» можно , принадлежит оно товарищу Питеру Норрису.

Не будем вдаваться сейчас в подробности организации и структуры реестра, дело это долгое, нудное и в рамки статьи точно не вписывается. Здесь важно уяснить, что реестр - иерархическая древоподобная структура, иногда также говорят, что она похожа на пчелиные соты.

И что со всем этим теперь делать?

Сразу огорчу: запросто пошаманить напрямую с реестром в юзермоде не получится, система не даст этого сделать, как это обычно бывает с файлами, занятыми другими процессами. Если попытаться извернуться, то можно только прочесть такой «занятый» файл, и то если угадать с флагами, с которыми он был открыт. К сожалению, записать в интересующий нас «файл реестра» информацию не выйдет. Кстати, фича с записью нужной информации в реестр может прокатить, если писать в реестровские *.BAK-файлы, они точно доступны под запись.

Итак, следи за рукой:).

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

Теоретически так сделать можно, для этого нужно, во-первых, уметь работать с «занятыми» файлами (способы ищи в Сети) и, во-вторых, как я уже говорил выше, надо знать внутреннюю структуру файлов реестра. Метод этот довольно топорный, но, несмотря на свою бредовость, он вполне жизнеспособен, хотя его и трудно реализовать на практике (попробуй поэкспериментировать с ним самостоятельно).

Здесь же я предложу два способа, которые помогут тебе распилить реестр на мелкие кусочки.

Первый способ заключается в том, что для конфигурационного менеджера (Configuration Manager, часть операционной системы, если ты не в курсе) реестр есть не более чем набор строго определенных структур в операционной памяти, с которыми, как оказывается, очень даже легко работать. Какие это структуры, спросишь ты? HBASE_BLOCK, HHIVE, HBIN, HCELL, HMAP_ENTRY, HMAP_DIRECTORY, куча CM_* структур, используемых конфиг-менеджером для управления реестром. С точки зрения операционной системы, реестр - это просто набор регламентированных структур в оперативной памяти. К примеру, сигнатура «regf», определяющая «файл реестра», есть заранее определенная константа:

Define HBASE_BLOCK_SIGNATURE 0x66676572 typedef struct _HBASE_BLOCK { ULONG Signature; //0x66676572 ULONG Sequence1; ULONG Sequence2; LARGE_INTEGER TimeStamp; .... }

То есть смысл всего этого моего монолога в том, что существует шикарная возможность манипуляции с реестром на уровне операционной системы, но при этом не используя ее штатные средства. Как это возможно? Мы просто сэмулируем действия самой операционной системы, точно так, как она сама работает с реестром! Важно, как я уже говорил, понять, что для самой ОС реестр не более чем набор соответствующих структур в памяти.

Если у нас будет доступ к файлам реестра на уровне ядра, то чем мы хуже самой ОС, чтобы установить свой порядок?

И тут на сцене появляется наиболее интересный вопрос - как найти эти самые структуры в памяти? Верно, штатных средств системы для решения этого вопроса нет, поэтому придется выкручиваться по-хитрому.

Зная, как выглядят структуры, нужно вспомнить, что каждый файл, улей реестра, имеет свою константную сигнатуру. Например, «regf» - это 0x66676572. Для улья сигнатура будет равна 0xBEE0BEE0. Имея доступ к памяти из ядра, мы можем довольно легко найти эти сигнатуры в памяти, просто просканив ее. Еще можно просканить память в поисках сигнатуры «CM10» - именно она присваивается конфиг-менеджером блоку подкачиваемой памяти, который выделяется под структуру CMHIVE. Полагаю, найдя в памяти интересующий нас элемент, ты придумаешь, что делать с ним дальше:).

Как, к примеру, изменить значение ячейки реестра? Значение хранится в поле CM_KEY_VALUE->Data, поэтому, если у тебя возникнет задача изменить какое-либо поле в конкретном ключе реестра, ищи значение именно там:

Typedef struct _CM_KEY_VALUE { WORD Signature; // #define CM_KEY_VALUE_SIGNATURE 0x6B76 WORD NameLength; ULONG DataLength; ULONG Data; //<---------- данные ячейки будут здесь ULONG Type; WORD Flags; WORD Spare; WCHAR Name; } CM_KEY_VALUE, *PCM_KEY_VALUE;

Второй вариант является своеобразной модификацией первого. Если знаешь, существует одна особенность при работе с реестром - все изменения, то есть «создание новых ключей / запись / удаление ключей», как правило, вступают в силу после перезагрузки системы (ну или после перезагрузки эксплорера, это такой хак-метод). До этого все изменения находятся словно в подвешенном, «dirty»-состоянии. Мало того, система при обращении с реестром общается с ним через кеш файловой системы. Это понятно - обращений к реестру может быть сотни в секунду, соответственно, полагаться при этом на быстродействие файловой системы неразумно, тут никакое быстродействие не спасет. Поэтому система и работает с реестром, что называется, виртуально, через кеш файловой системы. И тут, чтобы вытащить кишки реестра на свет, надо залезть в кеш! Как это делается, уже описывалось в тырнетах, в том числе и в .

Pro & Cons, или вместо заключения

Что сказать в итоге? Предложенная читателю в статье вариация на тему прямого контроля за реестром носит исключительно экспериментальный характер. Не спорю, она тяжеловата для практической реализации, и многие скажут, что уж лучше использовать нормальные WinAPI-функции, предназначенные для работы с реестром, - и будут в чем-то правы. Однако реализованная die_hard на деле либа, основанная на приведенных в статье принципах, будет обладать поистине термоядерной силой, неподвластной ни аверам, ни самой операционной системе.

Засим закончу. Удачного компилирования и да пребудет с тобой Сила!

WWW

Обязательна к прочтению статья Марка Руссиновича о реестре «Inside the Registry», нашелся даже русский перевод . Замечательная тулза для сбора информации о реестре: http://goo.gl/iSSVy .

Чтобы понять что такое реестр Windows представьте себе человеческий мозг, который хранит все ключевые сведения и код, позволяющие различным частям компьютера, операционной системы и программного обеспечения, общаться друг с другом. Включая подробную информацию о аппаратных средствах, протоколах связи, установленном программном обеспечении, файлах конфигурации и, конечно же, внутренней работы самой Windows.

Неважно, какую версию Windows вы используете, вы будете иметь не один, а несколько файлов реестра, так как Windows разбивает реестр на несколько основных файлов, содержащих всю необходимую информацию о работе компьютера, его аппаратной части, файлах каждого отдельного пользователя, программном обеспечении, параметрах и настройках.

Файлы реестра баз данных, которые операционная система загружает в память компьютера при запуске компьютера или входе пользователя, часто достаточно большие и сложные. Но без этих файлов настроек и параметров, компьютер не сможет работать вообще.

Реестр напоминает мозг и по другим причинам. Он так же способен к самовосстановлению, но только в ограниченной степени. В то время как человеческий организм полон, необходимых для ремонта и восстановления поврежденных клеток и тканей, строительных блоков, в случае реестра, если части баз данных, содержащих информацию, необходимую для загрузки или восстановления системы повреждены, о самостоятельном ремонте не может быть и речи.

Однако к счастью, вы можете восстанавливать и ремонтировать реестр извне, даже сбросить его до более раннего состояния или вовсе стереть и начать все с нуля.

Раньше, в старых версиях Windows, была необходимость вручную открывать в папке программы или драйвера.ini файл и вносить в него свои необходимые изменения настройки параметров. У каждой программы и драйвера оборудования был свой.ini файл и каждый из них, для каждого отдельного ПК, требовал индивидуальной настройки.

А так как между разными ПК всегда были незначительные различия, импортированный с одного компьютера на другой.ini файл вряд ли будет работать.

С помощью реестра Microsoft урегулировал этот хаос, и эффектно вытащил все эти индивидуальные.ini файлы в единую, управляемую базу данных.

Реестр был впервые введен в Windows 95 и Windows NT, а в качестве основного компонента операционной системы не очень изменился и до сих пор. Причиной этого стала совместимость с имеющимся аппаратным и программным обеспечением, что имеет решающее значение для бизнес-пользователей ПК. Изменение реестра слишком много сломает или потребуют сложной машины виртуализации, которая, по крайней мере, создаст значительные проблемы в безопасности.

Со временем реестр, с такими функциями, как контроль учетных записей (UAC), предотвращающим проникновение вредоносных программ глубоко в структуру папок где их никогда не найдешь, стал более устойчивым и безопасным.

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

Файлы реестра Windows

Если вы используете современную версию Windows, я имею в виду ОС Windows 7, Windows 8 или 8.1 и Windows 10, то реестр, его структура, работа и возможность редактирования, там одинакова. Основные компоненты операционной системы меняются не очень часто.

В Windows есть несколько хранилищ файлов реестра, одно для относящихся ко всем пользователям ПК настроек, таких как оборудование и общие параметры операционной системы, и несколько других для каждого отдельного пользователя.

Главная файлы реестра находятся в каталоге %systemroot%\System 32\Config\ и состоят из следующего:

  • SAM (Security Accounts Manager)
  • SECURITY
  • SOFTWARE
  • SYSTEM
  • DEFAULT
  • USERDIFF (used only for OS upgrades)

Кроме того, каждый пользователь имеет свои собственные файлы реестра:

  • %userprofile%\ntuser.dat
  • %userprofile%\AppData\Local\Microsoft\Windows\UsrClass.dat

Первый из этих файлов, файл ntuser.dat содержит основное программное обеспечение пользователя, настройки и параметры его конфигурации. Второй, UsrClass.dat, содержит дополнительные параметры, такие как взаимосвязь пользовательских файлов и информация о COM (модель составных объектов).

Файлы реестра в двоичном формате и не могут быть прочитаны без специального программного обеспечения. Это их отличает от.REG файлов, которые для просмотра и редактирования администраторами можно экспортировать из редактора реестра Windows.

Ключи и значения реестра

Реестр, если смотреть в целом, разделен на пять основных разделов или групп. Это помогает организовать различные ключи и папки в реестре, сделать их легко управляемыми.

Когда вы изменяете или создаете элементы в реестре вы создаете ключи и значения, но кФайлы реестра Windowsаковы между ними различия?

Примечание. Ключи реестра представляют собой контейнеры, которые содержат значения для программного и аппаратного обеспечения или операционной системы Windows. Ключи могут рассматриваться в качестве папки, в которой значения - отдельные файлы. Вы можете перемещаться по ключам с помощью иерархии типов папки. Значения - это своеобразные гайки и болты реестра. Это параметры, целые числа и строки, содержащие данные и информацию, которая поможет загрузить Windows, и эффективно работать с вашим оборудованием и приложениями.

HKEY_CLASSES_ROOT (HKCR)

Этот раздел хранит информацию о зарегистрированных приложениях OLE-объектах ID классов и ассоциации файлов. Иногда вы можете увидеть его сокращенно, раздел HKCR. Он добавляет дубликаты ключей в уже существующий подраздел HKEY_CURRENT_USER\Software\Classes, и Windows будет использовать подраздел HKEY_CURRENT_USER\Software\Classes как основной.

HKEY_CURRENT_USER (HKCU)

Этот раздел содержит параметры конфигурации профиля пользователя, в том числе расположение на диске пользовательских папок, настройки панели управления, и конкретные параметры конфигурации приложений.

HKEY_LOCAL_MACHINE (HKLM)

Этот раздел содержит все характерные для ПК, на котором установлена Windows настройки. Он содержит файлы SAM, SECURITY, SYSTEM и SOFTWARE. Пятый файл, HARDWARE, каждый раз при запуске компьютера создается заново и содержит информацию об обнаруженном оборудовании.

А также этот раздел содержит находящиеся в

%systemroot%\System 32\config\ файлы COMPONENTS и BCD, в которых хранится относящаяся к конфигурации загрузки данных на ПК информация.

В разделе реестра HKEY_LOCAL_MACHINE лишь несколько подразделов заслуживают внимания, так как этот набор файлов реестра наиболее часто изменяется и редактируется пользователями.

SAM

Раздел ключей Security Accounts Manager, как правило, отображается пустым, если пользователь не имеет соответствующих прав администратора. Он содержит сведения о безопасности для всех подключенных доменов ПК, в том числе локального домена, который также называют SAM.

База данных SAM содержит используемое для входа в домен имя пользователя, UID (уникальный идентификатор) домена, криптографический хэш-код пароля пользователя, местоположение пользователя в реестре и на сервере, различные другие требующиеся при соединении параметры и флаги.

SECURITY

Этот подраздел также пуст для большинства пользователей, конечно если они не имеют соответствующих административных разрешений. При подключении к домену, он связан с базой данных Server Registry Hive, который содержит все, применимые к текущему пользователю и установленным приложениям, политики безопасности.

SYSTEM

Этот подраздел содержит информацию об установке Windows, настройки и данные о подключенных в данный момент устройствах, и содержащих системные файлы дисках.

SOFTWARE

Этот раздел содержит параметры для текущей установки Windows, установленных программ и приложений и ключи поставщиков программного обеспечения, включает подразделы для расширений файлов, MIME типы и объектные идентификаторы класса и интерфейса (такие как ActiveX).

HKEY_USERS (HKU)

HKEY_CURRENT_CONFIG (HKCC)

Ключи HKCC содержат информацию, собранную во время загрузки компьютера и Windows. Эта информация относится только к текущей сессии и удаляется при выключении компьютера.

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

HKEY_PERFORMANCE_DATA

Этот раздел при использовании редактора реестра Windows невидим. Он содержит среду выполнения и данные о производительности, ядрах Windows, драйверах, приложениях и сервисах. Они удаляются при выключении компьютера и восстанавливаются при следующей загрузке.

Типы значений реестра

При создании нового параметра реестра вам будут представлены следующие опции:

  • REG_BINARY: этот тип ключей хранит необработанные двоичные данные.
  • REG_DWORD: 32-разрядное целое число переменной длины.
  • DWORDS: обычно используется для определения параметров настройки драйверов устройств и настройки программного обеспечения.
  • REG_SZ: строковое значение фиксированной длины.
  • REG_EXPAND_SZ: расширяемая длина строкового значения, также используется для переменные среды.
  • REG_MULTI_SZ: мульти-строка, которая может содержать список значений, обычно через запятую или пробел.
  • REG_RESOURCE_LIST: список ресурсов, вложенных массивов, используемых драйверов устройств.
  • REG_RESOURCE_REQUIRMENTS_LIST: список ресурсов оборудования, используемые драйвера устройств.
  • REG_FULL_RESOURCE_DESCRIPTOR: вложенные, используемые для хранения списков ресурсов физических устройств, массивы.
  • REG_LINK: символьная ссылка (ЮНИКОД) в следующий ключ реестра, что определяет корневой ключ и путь к целевому ключу.
  • REG_NONE: данные, не имеющие определенного типа.
  • REG_QWORD: переменные 64-битной длины.

Примечание . Между реестрами 32-разрядной (x86) и 64-разрядной (x64) ОС Windows существует некоторое различие. 64-разрядный параметр qword не поддерживается в 32-разрядных версиях операционной системы Windows. Кроме того, реестр работает с 32-разрядными и 64-разрядными ключами настолько умным образом, что файловая система обрабатывает несколько версий одних и тех же dll файлов, но сохраняет совместимость, которую вы можете найти в секции реестра HKEY_LOCAL_MACHINE\Software\WOW6432Node.

.REG-файлы

REG-файлы отличаются от файлов реестра по нескольким важным направлениям. Во-первых, хотя они хранят ключи и значения реестра, они предназначены для резервного копирования и переноса между ПК, и установке Windows из этих значений и ключей. Кроме того, .REG-файлы, в отличие от файлов базы данных реестра, которые содержат двоичную систему, хранятся в текстовом формате ASCII.

REG-файлы открываются автоматически (или, по крайней мере, должны если все правильно установлено и организовано) при двойном нажатии в редакторе реестра Windows.

Вы можете.REG-файлами, в самом редакторе реестра, экспортировать весь реестр или отдельные его ключи.

А также вы можете вручную редактировать содержимое.REG файла в Windows блокноте или любом другом текстовом файловом редакторе. Щелкните правой кнопкой мыши по.REG файлу в проводнике, в появившемся контекстном меню откройте опцию «редактировать».

В примере на рисунке указан ключ HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics, и он здесь выделен потому, что включает в себя дополнение к конфигурации по умолчанию.

В конце ключа находится раздел под названием «MinWidth», который имеет численное значение 54. Этот ключ изменяет поведение значков на панели задач Windows (не группировать), так, чтобы значки программ, при запуске нескольких экземпляров, отображались раздельно, но без их подписей.

В целом, хотя реестр Windows - это огромный раздутый бегемот с тысячами сложных двоичных, шестнадцатеричных и ASCII значений и кодов, он довольно прост в работе.

Реестр представляет из себя важнейший компонент операционных систем семейства Windows. Он достаточно сложен для понимания обычному пользователю. Что же представляет из себя реестр Windows? Реестр – это централизованная база данных, хранящая все настройки операционный системы и работающих в ней приложений. Реестр содержит информацию обо всех аппаратных устройствах, сведения о расширениях имен файлов, всех системных компонентов и работающих в системе приложениях, сетевые параметры, информацию безопасности и т.д.

Таким образом, если на компьютере под управлением Windows имеется программный или аппаратный компонент, влияющий на его работы, то вся информация об этом компоненте хранится в реестре Windows. На схеме ниже показана упрощенная модель, демонстрирующая системные компоненты и их взаимодействие с реестром.

Рассмотрим более подробно, каким образом компоненты Windows 7 взаимодействуют с системным реестром:

  1. Программа Windows Setup (программа установки) – при первом запуске собирает информацию о системе и создает реестр на основе полученных данных. При установке драйверов или приложений, программа-установщик читает из реестра информацию и добавляют туда свои конфигурационные данные. Наличие реестра позволяет всем программа получать доступ к централизованной базе данных и взаимодействовать друг с другом. Помимо этого, хранимая в реестре информация позволяет корректно удалить приложение, при этом не затрагивая такие важные компоненты как, например, библиотеки DLL.
  2. Среда восстановления Windows (WinRE) – набор средств, предназначенных для диагностики поврежденной системы и восстановления ее после серьезных ошибок. WinRE активно работает с реестром, и одна из выполняемых задач – это восстановление поврежденного реестра.
  3. Менеджер загрузки Windows (Windows Boot Manager) – Диспетчер загрузки получает доступ к базе данных BCD (Boot Configuration Data), которая хранится в реестре. После чтения конфигурационных данных менеджер загрузки передает управление Загрузчику Windows – файлу winload.exe, который, в первую очередь, читает необходимые данные из реестра, а затем загружает в память ядро операционной системы (%system32%\ntoskrnl.exe) и уровень аппаратных абстракций (%system%\hall.dll), а также все драйверы начальной загрузки и DLL режима ядра. Вот почему в случае отсутствия или повреждения файлов реестр операционная система просто не загрузится.
  4. Диспетчер PnP – отвечает за обнаружение устройство по двум параметрам: идентификатору поставщика (vendor ID, VID) и идентификатору устройства (device ID, DID). Когда диспетчер PnP определяет уникальную комбинацию VID и DID, он запрашивает информацию о шине, на которой обнаружено устройство и проверяет установлен ли драйвер для этого устройства. В случае, если драйвер не установлен подсистема PnP должна найти подходящий INF-файл для инсталяции драйвера и начать его установку.
  5. Диспетчер питания (Power Manager) – тесно взаимодействует с диспетчером PnP, приложениями, поддерживает разнообразные схемы управления электропитанием и управляется групповыми политиками, а вся эта информация хранится в реестре.
  6. Драйверы устройств – обмениваются с реестром параметрами загрузки и конфигурационными данными. Драйвер должен сообщить об используемых им системных ресурсах. Сами приложения и драйверы устройств могут считывать эту информацию из реестра, предоставляя пользователям удобные средства для установки и конфигурирования.
  7. Административные средства – административные средства Windows, в том числе утилиты из Панели управления и программы из группы Администрирование представляет собой наиболее удобные и безопасные средства модификации реестра.
  8. Пользовательские профили (user profiles) – вся информация, относящаяся к конкретной учетной записи пользователя и ассоциированными с ней правами, хранится в реестре. Групповые политики также хранятся в реестре.
  9. Аппаратные профили (hardware profiles) – представляет собой набор инструкций, с помощью которых можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера.
  10. Файловые системы – начиная с Windows Vista как файловые системы, так и реестр основаны на транзакциях. На практике это означает, что если набор операций над файлами и реестром помечен как транзакция, то в случае неудачи хоть одной из этих операций всю транзакцию можно “откатить” в исходное положение.
  11. Подсистема безопасности Windows 7 – подсистема безопасности со всеми ее функциональными возможностями, включая контроль учетных записей (User Account Control, UAC), также реализована на базе реестра и используется для его же защиты. Принцип действия UAC заключается в ограничении привилегий, предоставляемых запускаемым приложениям, уровнем привилегий обычного пользователя. Иными словами, даже если пользователь, запускающий приложение, и обладает административными правами, запускаемые им приложения таких привилегий не имеют, если только пользователь явно не запускает их от имени администратора. Таким образом, с повышенным уровнем привилегий запускаются лишь приложения, которым пользователь доверяет.
  12. Сетевые компоненты Windows – включают драйверы сетевых адаптеров, параметры настройки сетевых протоколов и сервисов, а также параметры сетевой безопасности и средства защиты сети от атак. Все это также хранится в реестре. Например, база данных Брандмауэра Windows (Windows Firewall) находится в реестре. Многие брандмауэры сторонних производителей также создают в реестре свои ключи, и, следовательно, успешная атака на реестр открывает путь к вторжению извне.

Файловая система на жестком диске имеет много чего общего с логической структурой реестра. Реестр содержит ключи (keys) и параметры (values), которые соответствуют каталогам и файлам на жестком диске. Ключи реестра могут содержать в себе вложенные ключи (подкаталоги). Параметры реестра (также как и файлы) хранят данные. Ключи, находящиеся на самом верхнем уровне иерархии, называются корневыми ключами (root keys). Схема именования ключей и параметров реестра похожа на пути в файловой системе. Типичный путь к вложенному ключу реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet. Реестр Windows 7 содержит пять корневых ключей: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG.

Чтобы зайти в реестр Windows 7 , нажмите сочетание клавиш win + R (появится окно “Выполнить”), после чего введите и нажмите Enter .

Появиться окно редактора реестра.

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

Дескриптор (handle) – это значение, применяемое для уникального описания ресурса, к которому программа может получить доступ.

Описание корневых ключей показано в таблице ниже.

Имя корневого ключа Описание
HKEY_LOCAL_MACHINE Содержит глобальную информацию об аппаратных средствах и операционной системе, в том числе: тип шины, системная память, драйверы устройств и управляющие данные, используемые при запуске системы. Информация, содержащаяся в составе этого ключа, действует применительно ко всем пользователям, регистрирующимся в системе. На верхнем уровне иерархии реестра для этого ключа имеются три псевдонима: HKEY_CLASSES_ROOT, HKEY_CURRENT_CONFIG и HKEY_DYN_DATA.
HKEY_CLASSES_ROOT Содержит ассоциации между приложениями и типами файлов (по расширению имени файла). Кроме того, этот ключ хранит информацию OLE , ассоциированную с объектами COM, а также данные по ассоциациям файлов и классов.
HKEY_CURRENT_CONFIG Содержит конфигурационные данные для текущего аппаратного профиля. Аппаратные профили (Hardware profiles) представляют собой наборы изменений, внесенных в стандартную конфигурацию сервисов и устройств, установленную данными ключей Software и System коревого ключа HKEY_LOCAL_MACHINE. В ключе HKEY_CURRENT_CONFIG отображаются только изменения.
HKEY_CURRENT_USER Содержит профиль пользователя, в данный момент зарегистрированного в системе, включая переменные окружения, настройку рабочего стола, параметры настройки сети, принтеров и приложений. Этот ключи представляет собой ссылку на ключ HKEY_USERS\user_SID, где user_SID – идентификатор безопасности (Security ID) пользователя, зарегистрированного в системе на текущий момент.
HKEY_USERS Содержит все активно загруженные пользовательские профили, включая HKEY_CURRENT_USER, а также пользовательский профиль по умолчанию (.DEFAULT). Пользователи, получающие удаленный доступ к серверу, не имеют профилей, содержащихся под этим ключом, – их профили загружаются в реестры на собственных компьютерах.

Данные реестра поддерживаются в виде параметров, расположенных под ключами реестра. Каждый параметр характеризуется именем, типом данных и собственно значением. Три части параметра реестра всегда располагаются в порядке, показанной на рисунке ниже:

В таблице ниже перечислены основные типы данных, определенные и используемые в Windows 7.

Имя корневого ключа Описание
REG_BINARY Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном виде.
REG_DWORD Данные представлены в виде значения, длина которого составляет 4 байта. Этот тип данных используют многие параметры драйверов устройств и сервисов. Редакторы реестра могут отображать такие данные в двоичном, шестнадцатиричном и десятичном формате.
REG_EXPAND_SZ Расширяемая строка данных, представляет из себя текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения.
REG_MULTI_SZ Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк, обычно имеют этот тип данных.
REG_SZ Текстовая строка в формате, удобном для восприятия человеком. Данный тип присваивается значениям, представляющим собой описания компонентов.
REG_DWORD_ 32-разрядное число, представляет из себя эквивалент REG_DWORD. Самый младший байт хранится в памяти первым в числе.
REG_DWORD_ 32-разрядное число, представляет из себя эквивалент REG_DWORD. Самый старший байт хранится в памяти первым в числе.
REG_LINK Символическая ссылка UNICODE. Этот тип данных предназначен для внутреннего использования. Типа данных REG_LINK позволяет одному элементу реестра ссылаться на другой ключ или параметр.
REG_NONE Не имеет определенного типа данных.
REG_QWORD 64-разрядное значение
REG_QWORD_
LITTLE_ENDIAN
64-разрядное число, представляет из себя эквивалент REG_QWORD. Самый младший байт хранится в памяти первым в числе.
REG_QWORD_
BIG_ENDIAN
64-разрядное число, представляет из себя эквивалент REG_QWORD. Самый старший байт хранится в памяти первым в числе.
REG_RESOURCE_LIST Список аппаратных ресурсов, применяется в ветви HKEY_LOCAL_MACHINE\HARDWARE
REG_FULL_RESOURCE_ Дескриптор (описатель) аппаратного ресурса, применяется в ветви HKEY_LOCAL_MACHINE\HARDWARE
REG__RESOURCE_ Список необходимых аппаратных ресурсов, применяется в ветви HKEY_LOCAL_MACHINE\HARDWARE

Реестр подразделяется на составные части, которые разработчики назвали ульями (hives), по аналогии с ячеистой структурой пчелиного улья. Улей представляет собой дискретную структуру ключей, вложенных ключей и параметров, берущую начало в вершине иерархии реестра. Отличие ульев от других групп ключей состоит в том, то они являются постоянными компонентами реестра. Ульи не создаются динамически при запуске системы и не удаляются при ее остановке.

Данные ульев реестра, определяющие общесистемные параметры конфигурации, хранятся в файлах, которые размещаются в каталогах %SystemDrive%\Boot\BCD и %SystemRoot%\System32\Config. Ульи реестра, задающие пользовательскую конфигурационную информацию хранятся в %SystemRoot%\Users\Username.

Поддержите проект

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

У вас есть возможность поддержать проект и внести любую сумму, которую посчитаете нужной.