...

Что такое реестр Windows

Реестр Windows — описание, структура, как открыть

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

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

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

Реестр Windows

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

Реестр в операционных системах, место хранения

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

Реестр Windows находится в директории C/Windows/system32/config. Диск будет выбран в зависимости от того, куда у вас на компьютере установлена операционная система.

Если говорить о системе Windows 7, то реестр и его файлы находятся в специальных местах.

Реестр операционной системы может иметь отдельные файлы, это резервные копии. Резервные копии нужны для того, чтобы восстановить систему при необходимости. Эти файлы и документы находятся в следующей директории systemroot/system32/config/regback. Обычно по умолчанию резервная копия создается один раз в 10 дней. Пользователь по своему желанию может настроить этот процесс, и изменить время и периодичность запуска копирования. Надо знать, что реестр, доступный пользователю хранится в документе %userprofile%/ntuser.dat.

Реестры в операционных системах 32 и 64 разрядного типа имеют свои особенности. Операционная система 32 разрядного типа имеет единичные папки. А для второго варианта есть разделение на 32 и 64 разрядные разделы.

Открытие реестра

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

Это простой и удобный способ открытие реестра, главное следовать определенным рекомендациям. Для открытия нужно нажать вместе клавиши Win+R, или запустить утилиту «выполнить» другим удобным способом.

Далее ввести regedit и подтвердить. Действие нужно выполнять от имени администратора.

При работе с кнопкой «пуск» есть различия в работе с разными операционными системами. Вот для операционной системы Windows 8 нет обычного классического меню «Пусть». Здесь нужно получить доступ к строке поиска. В строку поиска нужно ввести regedit и запустить программу.

Нужно найти файл в системной папке C/Windows, и regedit. После нахождения программы нужно запустить.

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

У реестра Windows есть 5 ветвей. Каждая ветвь хранит сведения определенного типа. И эти разделы нельзя менять. Также их нельзя переносить, менять имя, и тем более удалять. Каждую ветвь можно описать, и указать некоторые особенности.

Hkey_classec_root (hkcr) — в этом разделе хранятся данные о разных расширениях, чтобы система работала с файлами разного типа. Если здесь не хранятся какие-то сведения, то можно внести дополнения, чтобы у системы были более широкие возможности для работы.

HKEY_CURRENT_USER (HKCU). В этой ветке хранятся сведения об учетной записи. Здесь находятся разные настройки и элементы персонализации пользователя.

HKEY_LOCAL_MACHINE (HKLM). В этой ветке находятся данные о подключенных устройствах и драйверах. Также здесь хранятся сведения о загрузке операционной системы.

HKEY_USERS (HKU). Здесь находятся данные о списке пользователей для определённых устройств.

HKEY_CURRENT_CONFIG (HKCC). Здесь хранятся данные об оборудовании для запуска операционной системы. Информация в основном это копия из других разделов.

Большинство настроек, которые приходится изменять находятся в ветвях HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE.

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

Двоичный параметр. Наиболее распространённые и используется почти во всех разделах. В редакторе реестра используется в 16 x формате.

DWord. Длина значения 4 байта. Нужен для хранения параметров драйверов и других программ.

Строка данных. По-другому называется расширяемая строка данных. Отличается от строкового параметра тем, что нет четкого фиксирования длины.

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

Строковый. Это строка с текстом, у которой чётко фиксированная длина.

Qword. Здесь информация в виде 64-разрядного целого.

Ссылка. Здесь информация символическая в формате Unicode.

Популярные вопросы

Резервная копия реестра

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

Как восстановить реестр

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

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

Слияние

В этом способе нужно открыть папку с копией реестра и с помощью нажатия на правую кнопку мыши и выбрать в меню поле «слияние». Здесь произойдет восстановление информации, нужно будет систему перезагрузить.

Проводник Windows

Импорт

Здесь требуется открыть реестр Windows, и открыть меню «файл». Далее выбирается меню «импорт», и нужно указать путь на сохранённую копию реестра.

Восстановление всей системы с помощью live cd

Возможна такая ситуация, когда невозможно загрузить операционную систему. В этом случае есть специальный способ, когда идет загрузка через live cd. После этого нужно на зайти в корень диска, где стоит Windows. Дальше нужно действовать таким способом. На диске создать временную папку с расширением tmp. Здесь будут находиться дефектные файлы реестра. Далее нужно зайти в папку используя путь C\ Windows\ system32\ config. Все файлы из этой папки нужно перенести во временную папку. Дальше из папки восстановления, которая находится в директории C\ System volume information, там есть папки типа Restore. Нужно найти среди всех папок самую позднюю по времени создания.

В этих папках будут находиться папки с названиями rp1, rp2 и далее по возрастанию. Заходим в самую последнюю по времени создания папку, и важно чтобы в это время операционная система работала стабильно. Если это не соответствует действительности, то нужно выбрать последнее время, когда система была работоспособна. Далее заходим в папку snapshot, где находится резервные копии файла реестра. Используя определенные файлы, которые нужно скопировать и заменить аналогичные файлы реестра в директории C \Windows \system32\ config. Нужно сделать замену названию, надо Fallout, security, software, system и sam. Для активации изменений нужно перезагрузить систему.

Как почистить реестр

Часто пользователя интересует вопрос, как можно очистить реестр в Windows. Есть специальные программы или же можно вручную. Если рассматривать приложение, то популярные reg organizer, Ccleaner и Windows Cleaner. Пользователи пользуются этими программами и хвалят их, они оптимизируют работу системы.

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

Три коротких истории о реестре Windows

Реестр — это одна из самых заметных и значительных систем Windows. Вряд ли найдется человек, который не слышал о нем. Занимаясь программированием под Windows уже около 20 лет, я думал, что знаю о нем все. Но время от времени появляется что-то новое, что показывает мне, как я был неправ. Поэтому сегодня я хочу рассказать вам о необычных способах работы с реестром, которые я встречал, исследуя руткиты, и которые удивили меня.

История первая. Имена значений и ключей реестра

Все мы знаем, что в Windows существуют некоторые правила именования объектов, будь то файлы, каталоги или ключи реестра. Имена файлов не могут содержать символ “\”. Имена не могут быть пустыми. У имен есть некоторые ограничения по длине и т. д.

Невольно мы распространяем эти ограничения на все системы Windows и соблюдаем их при работе с реестром. И тут заключается наша ошибка. В реестре ограничений при создании имен на удивление мало. Например, в имени значений можно использовать символ “\”

Удивлены? Нет? Тогда что вы скажете, если я покажу вам, что в имени значения можно использовать символ “\0”? Да-да, именно нулевой символ. Тот самый, который традиционно используется для указания конца строки.

Для этого нам понадобится функция NtSetValueKey, экспортируемая из ntdll.dll

HKEY hKey = 0; RegOpenKeyA( HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", &hKey); UNICODE_STRING uName; uName.Buffer = L"Test\0Zero"; uName.MaxLen = uName.Length = 9 * sizeof(wchar_t); NTSTATUS status = 0; status = NtSetValueKey( hKey, &uName, 0, REG_SZ, (void*)lpData, DataSize); RegCloseKey(hKey); 

Для выполнения функции NtSetValueKey вам понадобятся права администратора. В результате у вас в реестре появится значение с именем Test\0Zero.

Некоторые разработчики Microsoft тоже будут удивлены, т. к. стандартный редактор реестра не может отобразить такое необычное значение реестра.

История вторая

Вторая история, которую я вам сегодня расскажу, произошла в 2013 году.

Вначале небольшое отступление. В «Лаборатории Касперского» я являюсь членом команды, которая, помимо всего прочего, создает Kaspersky Rescue Disk. Для лечения Windows из-под Linux нам необходимо самостоятельно разбирать файлы реестра. И для проверки правильности работы этого механизма мы используем множество тестов. Среди них есть один достаточно простой:

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

Неужели RegFlushKey не работает, задумался я. Но, как оказалось, прав я был лишь частично.

Фокус оказался в том, что в Windows 8.1 компания Microsoft изменила механизм сохранения изменений в реестр. Раньше все изменения реестра накапливались в памяти, а потом, при закрытии ключа, при выполнении RegFlushKey или по истечении некоторого времени система сохраняла изменения в файл куста реестра. В Windows 8.1 изменения вместо файла куста реестра сохраняются в одноименные файлы с расширениями .LOG, .LOG1 и .LOG2, а мой код эти файлы в те времена игнорировал.

В этих файлах изменения накапливаются около часа. И лишь после этого Windows начинает задачу интеграции изменений в основной файл. Эта задача называется Reconciliation, и она запускается либо раз в 40 минут, либо при завершении работы Windows. Вызов функции RegFlushKey к запуску задачи Reconciliation не приводит. Для принудительного запуска задачи интеграции изменений нужно вызвать ZwSetSystemInformation с недокументированным аргументом SystemRegistryReconciliationInformation.

ZwSetSystemInformation( 0x9b, //SystemRegistryReconciliationInformation NULL, 0); 

Для выполнения функции ZwSetSystemInformation вам понадобятся права администратора. А архитектура исполняемого файла должна совпадать с архитектурой системы. Вызвать эту функцию из 32-битной программы в 64-битной Windows не получится.

История третья

Некоторое время назад мы обнаружили руткит, который прописывал в реестре запуск своего драйвера. Наши продукты удаляли соответствующие ключи реестра, но после перезагрузки ключи оказывались на своих местах. Похоже, он ставит свои callback-функции на изменения реестра и после наших изменений восстанавливает свои ключи, подумал я. Но оказалось, что нет. Точнее — да. Callback-функции руткит ставил, но к задаче восстановления ключей они не имели никакого отношения. Все было сделано проще и изящнее.

Драйвер руткита при запуске переименовывал файл куста реестра SYSTEM в HARDWARE. Создавал свой файл SYSTEM и периодически сохранял в него с помощью функции RegSaveKey ветку HKLM/System. При сохранении он восстанавливал свои ключи. При перезагрузке Windows система загружала файл SYSTEM и запускала драйвер руткита. Красиво? Красиво.

Wanted

P.S. У нас тут ищут разработчика-исследователя в команду, которая пилит анти-спамовый движок, а еще нужен инженер по тестированию.

Реестр Windows: что это такое, как создавать разделы и параметры

RegEdit

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

Что такое реестр Windows

Реестр Windows – это не что иное, как совокупность различных конфигураций и настроек системы.

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

Компоненты реестра Windows

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

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

Windows Registry Root Keys

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

  • HKEY_CLASSES_ROOT (HKCR): этот ключ используется для связывания и внедрения объектов (Object Linking and Embedding, OLE) и ассоциации типов файлов. Это ключ, где Windows связывает файлы с их соответствующими программами, чтобы пользователь мог открывать и взаимодействовать с ними.
  • HKEY_CURRENT_USER (HKCU): этот раздел реестра Виндовс хранит все данные, настройки на уровне пользователя и конфигурации, связанные с вошедшим в систему пользователем. Не только Windows, но и другие программы хранят здесь данные, относящиеся к текущему пользователю.
  • HKEY_LOCAL_MACHINE (HKLM): независимо от статуса пользователя, этот ключ содержит все системные разделы, в том числе любые аппаратные настройки, параметры программного обеспечения и т.д. Поскольку HKLM содержит большую часть всей системной информации, он является одним из самых открытых корневых ключей Windows.
  • HKEY_USERS (HKU): как следует из названия, этот корневой ключ содержит параметры всех пользователей, включая вошедших и вышедших из системы, так что не путайте этот ключ с HKCU.
  • HKEY_CURRENT_CONFIG (HKCC): проще говоря, это псевдо корневой ключ, поскольку он является прямой ссылкой на текущие параметры профиля оборудования в корневом ключе HKLM.

Параметры разделов

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

Windows Registry Values

А вообще есть четыре основных типа данных, используемых в редакторе реестра Windows любой версии – 7,8 или 10:

  • Строковый параметр: состоит из простого читаемого текста и является одним из наиболее часто используемых параметров в реестре Windows.
  • Двоичный параметр: как следует из названия, этот параметр содержит только двоичные данные (0, 1). Часто используется для включения или выключения определенной функции.
  • ПараметрDWORD (32 бита): похож на двоичный параметр, но способен хранить любое целое число в диапазоне от 32 бит. Предназначен для работы с 32-битными системами, но также используется в 64-битных системах в целях обеспечения обратной совместимости.
  • ПараметрQWORD (64 бита): этот параметр почти как DWORD, но способен нести любое целое число в диапазоне от 64 бит. Можно сказать, что QWORD предназначен для работы с 64-битными системами.

Как открыть редактор реестра Windows

Этот способ открытия реестра будет работать независимо от установленной версии Windows – 7,8 или 10:

Нажмите клавишу + клавишу R, чтобы открыть окно «Выполнить». Введите regedit или regedit.exe и нажмите Enter или OK. Если появится окно контроля учетных записей (UAC), нажмите «Да».

Основной исполняемый файл редактора реестра находится в каталоге C:\Windows. Так что можно открыть эту папку и запустить файл regedit.exe напрямую, или можно просто создать ярлык regedit.exe в удобном для вас месте.

Редактор реестра: для 64-разрядных и 32-разрядных Windows

Реестр в 64-битных версиях Windows состоит из 32-битных и 64-битных разделов. Многие из 32-битных разделов имеют те же самые названия, что и их 64-битные аналоги, и наоборот.

64-разрядная версия (используется по умолчанию) (regedit.exe) отображает как 64-битные, так и 32-битные разделы. В 64-разрядной версии редактора реестра 32-битные ключи отображаются в следующем разделе реестра:

HKEY_LOCAL_MACHINE\Software\WOW6432Node

Просматривать и редактировать 64-битные и 32-битные разделы и параметры можно с помощью 64-разрядной версии редактора. Для просмотра или редактирования 64-битных ключей необходимо использовать 64-разрядную версию редактора реестра (regedit.exe). Редактировать и просматривать 32-битные ключи и значения можно также с помощью 32-разрядной версии (%systemroot\%Syswow64). Чтобы открыть 32-разрядную версию редактора реестра, выполните следующие действия:

  • Откройте диалог «Выполнить».
  • Введите %systemroot%\syswow64\regedit и нажмите OK.

Примечание

Перед открытием 32-разрядной версии нужно закрыть 64-разрядную версию редактора реестра (и наоборот). Однако можно открыть второй экземпляр редактора реестра. Например, если 64-битная версия редактора уже запущена, введите команду %systemroot%\syswow64\regedit -m, чтобы запустить 32-разрядную версию редактора.

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

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

Windows Registry Backup

Чтобы создать резервную копию, в окне редактора нажмите «Файл -> Экспорт», введите имя файла и сохраните его в надежном месте.

Чтобы создать новый раздел, щелкните правой кнопкой мыши на ключе корневого уровня и выберите «Создать -> Раздел». Новый раздел будет выглядеть как папка, и по умолчанию будет называться что-то вроде «Новый раздел #1». Разумеется, раздел можно всегда переименовать. Такая же процедура применяется всякий раз, когда нужно создать новый подраздел.

Windows Registry New Key

Чтобы создать новый параметр, щелкните правой кнопкой мыши в пустой области правой панели редактора и выберите нужный параметр. Созданному параметру нужно присвоить название; название полностью зависит от конкретных требований.

Windows Registry New Value

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

Windows Registry Value Data

Права доступа к разделам реестра

По аналогии с правами и разрешениями на определенные объекты в файловой системе NTFS, такая же защита предусмотрена и для разделов реестра.

Еще со времен Windows Vista большое количество ОС-специфических ключей реестра, хранящих настройки Windows, находятся под защитой Windows Resource Protection, поэтому нельзя просто взять и удалить или изменить их. Вы не сможете сделать этого, не став их владельцем и не установив разрешения (права доступа) на них. К счастью, операционная система позволяет и это, но ручной способ чересчур муторный, поэтому лучше использовать простую утилиту RegOwnershipEx , которая автоматизирует весь этот процесс.

RegOwnershipEx

На этом все! Надеюсь, написанное выше помогло вам лучше понять реестр Windows и его основные компоненты. Обменивайтесь мнениями и опытом в комментариях ниже!

При подготовке материала использовались источники:
https://windowscomp.ru/nastroika-softa/24-reestr-windows-opisanie-struktura-kak-otkryt.html
https://habr.com/ru/companies/kaspersky/articles/415699/
https://windowstips.ru/reestr-windows-chto-eto-takoe-kak-sozdavat-razdely-i-parametry