Что такое реестр Windows и как он работает?
Здравствуйте, друзья!
Реестр Windows — это набор конфигураций, значений и свойств приложений Windows, а также операционной системы Windows, который организован и хранится в иерархическом порядке в едином репозитории.
Всякий раз, когда в системе Windows устанавливается новая программа, в реестр Windows делается запись с такими атрибутами, как размер, версия, расположение в хранилище и т. д.
Поскольку эта информация была сохранена в базе данных, не только операционная система знает об используемых ресурсах.
Другие приложения также могут извлечь выгоду из этой информации, поскольку они осведомлены о любых конфликтах, которые могут возникнуть, если определенные ресурсы или файлы будут сосуществовать.
Что такое реестр Windows и как он работает?
Реестр Windows — это действительно основа работы Windows.
Это единственная операционная система, которая использует такой подход центрального реестра.
Если бы мы визуализировали, каждая часть операционной системы должна взаимодействовать с реестром Windows прямо от последовательности загрузки до чего-то столь же простого, как переименование имени файла.
Проще говоря, это просто база данных, аналогичная базе данных каталога библиотечных карточек, где записи в реестре подобны стопке карточек, хранящейся в каталоге карточек.
Ключ реестра будет картой, а значение реестра будет важной информацией, записанной на этой карте.
Операционная система Windows использует реестр для хранения большого количества информации, которая используется для контроля и управления нашей системой и программным обеспечением.
Это может быть что угодно, от информации об оборудовании ПК до пользовательских настроек и типов файлов.
Практически любая конфигурация системы Windows включает редактирование реестра.
История реестра Windows
В начальных версиях Windows разработчикам приложений приходилось включать отдельное расширение файла .ini вместе с исполняемым файлом.
Этот файл .ini содержал все параметры, свойства и конфигурацию, необходимые для правильной работы данной исполняемой программы.
Однако это оказалось очень неэффективным из-за избыточности определенной информации, а также представляло угрозу безопасности исполняемой программы.
В результате возникла очевидная необходимость в новой реализации стандартизированных, централизованных и безопасных технологий.
С появлением Windows 3.1 простая версия этого требования была удовлетворена с помощью центральной базы данных, общей для всех приложений и системы, под названием «Windows Registry».
Однако этот инструмент был очень ограничен, поскольку приложения могли хранить только определенную информацию о конфигурации исполняемого файла.
С годами Windows 95 и Windows NT продолжили развитие на этой основе, представив централизацию как основную функцию в новой версии реестра Windows.
Тем не менее, хранение информации в реестре Windows — вариант для разработчиков программного обеспечения.
Таким образом, если разработчик программного обеспечения должен был создать переносимое приложение, ему не требуется добавлять информацию в реестр, локальное хранилище с конфигурацией, свойствами и значениями может быть создано и успешно доставлено.
Актуальность реестра Windows по отношению к другим операционным системам
Windows — единственная операционная система, которая использует такой подход центрального реестра.
Если бы мы визуализировали, каждая часть операционной системы должна взаимодействовать с реестром Windows прямо от последовательности загрузки до переименования имени файла.
Все другие операционные системы, такие как iOS, Mac OS, Android и Linux, продолжают использовать текстовые файлы как способ настройки операционной системы и изменения поведения операционной системы.
В большинстве вариантов Linux файлы конфигурации сохраняются в формате .txt, это становится проблемой, когда нам приходится работать с текстовыми файлами, поскольку все файлы .txt считаются критическими системными файлами.
Поэтому, если мы попытаемся открыть текстовые файлы в этих операционных системах, мы не сможем их просмотреть.
Эти операционные системы пытаются скрыть это в качестве меры безопасности, поскольку все системные файлы, такие как конфигурации сетевой карты, брандмауэра, операционной системы, графического пользовательского интерфейса, интерфейса видеокарт и т. д., сохраняются в формате ASCII.
Чтобы обойти эту проблему, как macOS, так и iOS применили совершенно другой подход к расширению текстового файла, внедрив расширение .plist, которое содержит всю информацию о системе, а также информацию о конфигурации приложения, но все же преимущества наличия единого реестра намного перевешивают простое изменение расширения файла.
Каковы преимущества реестра Windows?
Поскольку каждая часть операционной системы постоянно взаимодействует с реестром Windows, она должна храниться в очень быстром хранилище.
Следовательно, эта база данных была разработана для чрезвычайно быстрого чтения и записи, а также для эффективного хранения.
Если бы мы открыли и проверили размер базы данных реестра, она обычно колебалась бы между 15-20 мегабайтами, что делает ее достаточно малой, чтобы всегда загружать ее в ОЗУ (оперативную память), которая, кстати, является самым быстрым хранилищем, доступным для операционных систем.
Поскольку реестр должен быть загружен в память постоянно, если размер реестра большой, он не оставит достаточно места для всех других приложений, чтобы они могли работать без сбоев или работать вообще.
Это может отрицательно сказаться на производительности операционной системы, поэтому реестр Windows разработан с целью обеспечения высокой эффективности.
Если несколько пользователей взаимодействуют с одним и тем же устройством, и существует ряд часто используемых ими приложений, повторная установка одних и тех же приложений дважды или несколько раз будет пустой тратой довольно дорогостоящего хранилища.
Реестр Windows выделяется в этих сценариях, когда конфигурация приложения совместно используется различными пользователями.
Это не только сокращает общий объем используемой памяти, но также дает пользователям доступ для внесения изменений в конфигурацию приложения через один порт взаимодействия.
Это также экономит время, поскольку пользователю не нужно вручную переходить к каждому файлу .ini локального хранилища.
Многопользовательские сценарии очень распространены в корпоративных установках, здесь настоятельно требуется доступ с правами пользователя.
Поскольку не вся информация или ресурсы могут быть доступны всем, необходимость доступа пользователей на основе конфиденциальности была легко реализована через централизованный реестр Windows.
Здесь сетевой администратор оставляет за собой право отказать или разрешить в зависимости от проделанной работы.
Это сделало единую базу данных универсальной, а также сделало ее надежной, поскольку обновления могут выполняться одновременно с удаленным доступом ко всем реестрам нескольких устройств в сети.
Как работает реестр Windows?
Прежде чем мы начнем пачкать руки, давайте изучим основные элементы реестра Windows.
Реестр Windows состоит из двух основных элементов, называемых ключом реестра, который является объектом-контейнером, или, проще говоря, они похожи на папку, в которой хранятся файлы различных типов, и значения реестра, которые не являются объектами-контейнерами, которые похожи на файлы, которые могут быть любого формата.
Как получить доступ к реестру Windows?
Мы можем получить доступ к реестру Windows и настроить его с помощью инструмента «Редактор реестра».
Microsoft включает бесплатную утилиту для редактирования реестра вместе с каждой версией своей операционной системы Windows.
Доступ к этому редактору реестра можно получить, набрав «Regedit» в командной строке или просто набрав «Regedit» в поле поиска или запуска в меню «Пуск».
Этот редактор является порталом для доступа к реестру Windows и помогает нам исследовать реестр и вносить в него изменения.
Реестр — это общий термин, используемый различными файлами баз данных, расположенными в каталоге установки Windows.
Безопасно ли редактировать редактор реестра?
Если вы не знаете, что делаете, играть с конфигурацией реестра опасно.
Каждый раз, когда вы редактируете реестр, убедитесь, что вы следуете правильным инструкциям и изменяете только то, что вам поручено изменить.
Если вы намеренно или случайно удалите что-то в реестре Windows, это может изменить конфигурацию вашей системы, что может либо привести к синему экрану смерти, либо Windows не загрузится.
Поэтому обычно рекомендуется сделать резервную копию реестра Windows, прежде чем вносить в него какие-либо изменения.
Вы также можете создать точку восстановления системы (которая автоматически создает резервную копию реестра), которую можно использовать, если вам когда-либо понадобится изменить настройки реестра до нормального состояния.
Но если вы делаете только то, что вам говорят, то в этом не должно быть никаких проблем.
Давайте исследуем структуру реестра Windows
Пользователь находится в недоступном хранилище, доступ к которому возможен только для операционной системы.
Эти ключи загружаются в ОЗУ на этапе загрузки системы и постоянно передаются в течение определенного интервала времени или при возникновении определенного события или событий системного уровня.
Определенная часть этих ключей реестра сохраняется на жестком диске.
Эти ключи, которые хранятся на жестком диске, называют «ветвями».
Этот раздел реестра содержит разделы реестра, подразделы реестра и значения реестра.
В зависимости от уровня привилегий, предоставленных пользователю, он будет иметь доступ к определенным частям этих ключей.
Ключи, которые находятся на пике иерархии в реестре, начинающемся с HKEY, считаются ветвями.
В редакторе они расположены в левой части экрана, когда все ключи просматриваются без раскрытия.
Это ключи реестра, которые отображаются в виде папок.
Давайте исследуем структуру раздела реестра Windows и его подразделов:
Пример названия ключа:
"HKEY_LOCAL_MACHINE\SYSTEM\Input\Break\loc_0804"
Здесь «loc_0804» относится к подразделу «Прерывание» относится к подразделу «Вход», который относится к подразделу «SYSTEM» корневого ключа HKEY_LOCAL_MACHINE.
Общие корневые ключи в реестре Windows
Каждый из следующих ключей представляет собой отдельную ветку, которая содержит больше ключей в пределах ключа верхнего уровня.
1. HKEY_CLASSES_ROOT
Эта ветка реестра Windows Registry, который состоит из информации об ассоциации расширений файлов, программного идентификатора (ProgID), данных идентификатора интерфейса (IID) и идентификатора класса (CLSID).
Эта ветка реестра «HKEY_CLASSES_ROOT» является шлюзом для любых действий или событий, происходящих в операционной системе Windows.
Предположим, мы хотим получить доступ к некоторым mp3-файлам в папке «Загрузки».
Операционная система запускает через него свой запрос, чтобы предпринять необходимые действия.
В тот момент, когда вы обращаетесь к ветке «HKEY_CLASSES_ROOT», очень легко удивиться, глядя на такой огромный список файлов расширений.
Тем не менее, это те самые ключи реестра, которые обеспечивают плавную работу Windows.
Ниже приведены некоторые примеры ключей реестра ветки «HKEY_CLASSES_ROOT».
- HKEY_CLASSES_ROOT\.otf
- HKEY_CLASSES_ROOT\.htc
- HKEY_CLASSES_ROOT\.img
- HKEY_CLASSES_ROOT\.mhtml
- HKEY_CLASSES_ROOT\.png
- HKEY_CLASSES_ROOT\.dll
Каждый раз, когда мы дважды щелкаем и открываем файл, скажем, фотографию, система отправляет запрос через «HKEY_CLASSES_ROOT», где четко даются инструкции о том, что делать при запросе такого файла.
Таким образом, система открывает программу просмотра фотографий, отображающую запрошенное изображение.
В приведенном выше примере реестр вызывает ключи, хранящиеся в ключе HKEY_CLASSES_ROOT\.jpg.
Ветка «HKEY_CLASSES_ROOT» — это коллективные данные, обнаруженные как в ветке HKEY_LOCAL_MACHINE (HKEY_LOCAL_MACHINE\Software\Classes), так и в ветке HKEY_CURRENT_USER (HKEY_CURRENT_USER\Software\Classes).
Поэтому, когда раздел реестра существует в двух местах, он создает конфликты.
Таким образом, данные из HKEY_CURRENT_USER\Software\Classes используются в «HKEY_ CLASSES_ ROOT».
Доступ к нему можно получить, нажав ключ «HKEY_CLASSES» в левой части экрана.
2. HKEY_LOCAL_MACHINE
Это одна из нескольких веток реестра, в котором хранятся все параметры, относящиеся к локальному компьютеру.
Это глобальный ключ, в котором хранимая информация не может быть изменена ни одним пользователем или программой.
Из-за глобального характера этого подраздела вся информация, хранящаяся в этом хранилище, имеет форму виртуального контейнера, непрерывно работающего в ОЗУ.
Большая часть информации о конфигурации для программного обеспечения, установленного пользователями, а сама операционная система Windows занята в «HKEY_LOCAL_MACHINE».
Все обнаруженное в настоящее время оборудование хранится в ветке «HKEY_LOCAL_MACHINE».
Этот раздел реестра дополнительно разделен на 7 подразделов:
1. SAM (диспетчер учетных записей безопасности) — это файл ключа реестра, в котором хранятся пароли пользователей в защищенном формате (в хеш-значениях LM и NTLM).
Хеш-функция — это форма шифрования, используемая для защиты информации учетной записи пользователя.
Это заблокированный файл, расположенный в системе по адресу «C:\WINDOWS\system32\config», который нельзя переместить или скопировать во время работы операционной системы.
Windows использует файл ключа реестра «Security Accounts Manager» для аутентификации пользователей, когда они входят в свои учетные записи Windows.
Каждый раз, когда пользователь входит в систему, Windows использует серию хеш-алгоритмов для вычисления хеш-значения для введенного пароля.
Если хэш введенного пароля совпадает с хешем пароля внутри файла реестра SAM, пользователям будет разрешен доступ к своей учетной записи.
Это также файл, на который нацелены большинство хакеров при проведении атаки.
2. Security (недоступна, кроме администратора) — этот раздел реестра является локальным для учетной записи администратора, который вошел в текущую систему.
Если система управляется какой-либо организацией, пользователи не могут получить доступ к этому файлу, если административный доступ не был явно предоставлен пользователю.
Если бы мы открыли этот файл без прав администратора, он был бы пустым.
Теперь, если наша система подключена к административной сети, этот ключ по умолчанию будет соответствовать профилю безопасности локальной системы, установленному и активно управляемому организацией.
Этот ключ связан с SAM, поэтому после успешной аутентификации, в зависимости от уровня привилегий пользователя, применяются различные локальные и групповые политики.
3. System (критический процесс загрузки и другие функции ядра) – этот подраздел содержит важную информацию, относящуюся ко всей системе, такую как имя компьютера, установленные в настоящее время аппаратные устройства, файловая система и какие автоматические действия можно предпринять в определенном случае, скажем, синий экран смерти из-за перегрева процессора, существует логическая процедура, которую компьютер автоматически начнет выполнять в таком случае.
Этот файл доступен только пользователям с достаточными административными привилегиями.
Когда система загружается, здесь все журналы динамически сохраняются и читаются.
Различные системные параметры, такие как альтернативные конфигурации, известные как контрольные наборы.
4. Software — здесь хранятся все конфигурации стороннего программного обеспечения, такие как драйверы plug and play.
Этот подраздел содержит настройки программного обеспечения и Windows, связанные с уже существующим профилем оборудования, которые могут быть изменены различными приложениями и установщиками системы.
Разработчики программного обеспечения могут ограничивать или разрешать доступ пользователей к информации при использовании их программного обеспечения, это можно установить с помощью подраздела «Политики», который обеспечивает соблюдение общих политик использования приложений и системных служб, которые включают системные сертификаты, используемые для аутентификации, авторизации или запрета определенных систем или служб.
5. Hardware — подраздел, который создается динамически во время загрузки системы.
6. Components — общесистемную информацию о конфигурации компонентов конкретного устройства можно найти здесь.
7. BCD.dat (в папке «\boot» в системном разделе), который является важным файлом, который система читает и запускает во время загрузки системы, загружая реестр в ОЗУ.
3. HKEY_CURRENT_CONFIG
Основная причина существования этого подраздела — хранение видео, а также сетевых настроек.
Это может быть вся информация, относящаяся к видеокарте, такая как разрешение, частота обновления, соотношение сторон и т. д., а также сеть.
Это также ветка реестра, часть реестра Windows, в котором хранится информация об используемом в настоящее время профиле оборудования.
«HKEY_CURRENT_CONFIG» на самом деле является указателем на ключ «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles\Currentregistry».
Это просто указатель на текущий активный профиль оборудования, указанный в разделе «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\HardwareProfiles».
Таким образом, «HKEY_ CURRENT_CONFIG» помогает нам просматривать и изменять конфигурацию аппаратного профиля текущего пользователя, что мы можем сделать как администратор в любом из трех перечисленных выше мест, поскольку все они одинаковы.
4. HKEY_CURRENT_USER
Часть ветки реестра, которая содержит настройки хранилища, а также информацию о конфигурации Windows и программного обеспечения, относящуюся к текущему авторизованному пользователю.
Например, различные значения реестра в разделах реестра находятся в настройках пользовательского уровня управления веткой «HKEY_CURRENT_USER», таких как раскладка клавиатуры, установленные принтеры, обои рабочего стола, параметры отображения, подключенные сетевые диски и многое другое.
Многие из настроек, которые вы настраиваете в различных апплетах в Панели управления, хранятся в ветке реестра «HKEY_CURRENT_USER».
Поскольку ветка «HKEY_CURRENT_USER» зависит от пользователя, на одном компьютере ключи и значения, содержащиеся в нем, будут отличаться от пользователя к пользователю.
Это не похоже на большинство других веток реестра, которые являются глобальными, то есть в них хранится одна и та же информация для всех пользователей Windows.
Щелкнув в левой части экрана в редакторе реестра, мы получим доступ к «HKEY_CURRENT_USER».
В качестве меры безопасности информация, хранящаяся в «HKEY_CURRENT_USER», является просто указателем на ключ, расположенный под веткой «HKEY_USERS» в качестве нашего идентификатора безопасности.
Изменения, внесенные в любую из областей, вступят в силу немедленно.
5. HKEY_USERS
Он содержит подключи, соответствующие ключам «HKEY_CURRENT_USER» для каждого профиля пользователя.
Это также один из многих веток реестра, которые есть в реестре Windows.
Здесь регистрируются все пользовательские данные конфигурации, для всех, кто активно использует устройство, такая информация хранится в «HKEY_USERS».
Вся специфическая для пользователя информация, хранящаяся в системе, которая соответствует конкретному пользователю, хранится в ветке «HKEY_USERS», мы можем однозначно идентифицировать пользователей, используя идентификатор безопасности или SID, который регистрирует все изменения конфигурации, сделанные пользователем.
Все эти активные пользователи, чья учетная запись существует в ветке «HKEY_USERS» в зависимости от привилегии, предоставленной системным администратором, смогут получить доступ к общим ресурсам, таким как принтеры, локальная сеть, локальные накопители, фон рабочего стола и т. д.
Их учетная запись имеет определенные ключи реестра и соответствующие значения реестра, хранящиеся под текущим SID пользователя.
Что касается криминалистической информации, каждый SID хранит огромное количество данных о каждом пользователе, поскольку он ведет журнал всех событий и действий, предпринимаемых под учетной записью пользователя.
Это включает в себя имя пользователя, количество раз, когда пользователь входил в систему на компьютере, дату и время последнего входа в систему, дату и время последнего изменения пароля, количество неудачных попыток входа в систему и так далее.
Кроме того, он также содержит информацию реестра о том, когда Windows загружается и находится в приглашении для входа в систему.
Ключи реестра для пользователя по умолчанию хранятся в файле «ntuser.dat» в профиле, поэтому нам придется загрузить его как ветку с помощью «regedit», чтобы добавить настройки для пользователя по умолчанию.
Типы данных, которые мы можем ожидать найти в реестре Windows
Все вышеупомянутые ключи и подразделы будут иметь конфигурации, значения и свойства, сохраненные в любом из следующих типов данных, обычно это комбинация следующих типов данных, которая составляет весь наш реестр Windows.
- Строковые значения, такие как Unicode, который является отраслевым стандартом вычислительной техники для согласованного кодирования, представления и обработки текста, выраженного в большинстве мировых систем письма;
- Двоичные данные;
- Беззнаковые целые числа;
- Символические ссылки;
- Многострочные значения;
- Список ресурсов (оборудование Plug and Play);
- Дескриптор ресурса (оборудование Plug and Play);
- 64-битные целые числа.
Вывод
Реестр Windows стал не чем иным, как революцией, которая не только свела к минимуму угрозу безопасности, связанную с использованием текстовых файлов в качестве расширения файла для сохранения конфигурации системы и приложения, но также сократила количество конфигурационных или ini-файлов, которые разработчики приложений должны были поставлять вместе со своим программным продуктом.
Преимущества наличия централизованного хранилища для хранения часто используемых данных как системой, так и программным обеспечением, работающим в системе, очень очевидны.
Простота использования, а также доступ к различным настройкам и настройкам в одном центральном месте также сделали Windows предпочтительной платформой для настольных приложений различными разработчиками программного обеспечения.
Это очень очевидно, если сравнить огромный объем доступных настольных программных приложений Windows с macOS от Apple.
Подводя итог, мы обсудили, как работает реестр Windows, его файловую структуру и значение различных конфигураций разделов реестра, а также как использовать редактор реестра в полной мере.
До скорых встреч! Заходите!
Подписаться на обновления блога!
Спасибо за мануал !
Здравствуйте, Алексей!
Вам спасибо что читаете мои статьи и с наступающим вас Новым годом!
Огромное спасибо за эту грамотную экскурсию по реестру. Как же я долго ждал такого знакомства…