Анализ реестра Windows


Оглавление

1. Что такое реестр Windows?

2. Иерархическая структура реестра

3. Что такое куст или улей реестра (hive)?

4. HKEY_CLASSES_ROOT

5. HKEY_CURRENT_USER

6. HKEY_LOCAL_MACHINE

7. HKEY_USERS

8. HKEY_CURRENT_CONFIG

9. Где реестр хранится на диске?

10. Создание новых ключей и значений

11. Меню избранного

12. Экспорт файлов реестра

13. Установка разрешений

14. Загрузка кустов реестра

15. Как получить доступ к закрытым частям реестра SAM и SECURITY

16. Утилита REG

17. Программы для извлечения информации из реестра Windows

17.1 mimikatz

17.2 RegRippy (regrip.py)

17.3 RegRipper


17.4 Registry Explorer

17.5 creddump

17.6 regipy

17.7 chntpw

17.8 Утилиты NirSoft для работы с реестром

17.9 Извлечение кустов реестра Windows из виртуальных машин

17.10 winregfs

17.11 libregf


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

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

В реестре есть две основные концепции, о которых нужно знать: ключи и значения. «Ключи реестра» — это объекты, которые в основном являются папками и даже выглядят в интерфейсе Редактора реестра точно так же как папки. «Значения реестра» немного похожи на файлы в папках, и они содержат фактические настройки.

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

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

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


Иерархическая структура реестра

Структура реестра похожа на структуру хранилища файлов.

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

Таблица «Терминология реестра»

Реестр Другие деревья Файловое хранилище
Куст (Hive) Дерево Файловая система
Ключ Узел Директория или папка
Подключ Подузел Поддиректория или подпапка
Значение Ключ Файл
Тип Тип Тип файла
Данные Значение Содержимое файла

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

Что такое куст или улей реестра (hive)?

В литературе, особенно посвящённой программам по анализу реестра, часто используются выражения «куст реестра» или «улей реестра», в английском языке это обозначается словом hive

Говоря о программах для анализа реестра, под выражением «куст реестра» обычно понимается один из файлов SOFTWARE, SAM, SECURITY, SYSTEM и так далее. То есть кустом реестра является файл, в котором хранятся ключи корневого уровня или ключи корневого уровня.

В контексте «Редактора реестра» под кустом реестра может пониматься иерархическая часть реестра, необязательно расположенная в отдельном файле.

HKEY_CLASSES_ROOT

HKEY_CLASSES_ROOT, часто сокращённо HKCR, представляет собой куст реестра в реестре Windows и содержит информацию об ассоциации расширения файла, а также данные программного идентификатора (ProgID), идентификатора класса (CLSID) и идентификатора интерфейса (IID). Этот ключ на самом деле просто ссылка на HKLM\Software\Classes.

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

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

Подразделы реестра в HKEY_CLASSES_ROOT

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

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

  • HKEY_CLASSES_ROOT\.avi
  • HKEY_CLASSES_ROOT\.bmp
  • HKEY_CLASSES_ROOT\.exe
  • HKEY_CLASSES_ROOT\.html
  • HKEY_CLASSES_ROOT\.pdf
  • HKEY_CLASSES_ROOT\AudioCD
  • HKEY_CLASSES_ROOT\dllfile

Каждый из этих разделов реестра хранит информацию о том, что Windows должна делать при двойном щелчке или двойном касании файла с этим расширением. Он может включать в себя список программ, которые можно найти в разделе «Открыть с помощью…» при щелчке/касании файла правой кнопкой мыши, а также путь к каждому из перечисленных приложений.


Например, на вашем компьютере, когда вы открываете файл с именем draft.rtf, этот файл может открываться с помощью программы WordPad. Данные реестра, которые отвечают за это, хранятся в ключе HKEY_CLASSES_ROOT\.rtf, который определяет WordPad как программу, которая должна открывать файл RTF.

HKCR и CLSID, ProgID и IID

Остальные ключи в HKEY_CLASSES_ROOT — это ключи ProgID, CLSID и IID. Вот несколько примеров каждого из них:

Ключи ProgID расположены в корне HKEY_CLASSES_ROOT вместе с описанными выше ассоциациями расширений файлов:

  • HKEY_CLASSES_ROOT\FaxServer.FaxServer
  • HKEY_CLASSES_ROOT\JPEGFilter.CoJPEGFilter
  • HKEY_CLASSES_ROOT\WindowsMail.Envelope

Все ключи CLSID находятся в подразделе CLSID:

  • HKEY_CLASSES_ROOT\CLSID\{00000106-0000-0010-8000-00AA006D2EA4}
  • HKEY_CLASSES_ROOT\CLSID\{06C792F8-6212-4F39-BF70-E8C0AC965C23}
  • HKEY_CLASSES_ROOT\CLSID\{FA10746C-9B63-4b6c-BC49-FC300EA5F256}

Все ключи IID расположены в подразделе Интерфейс:

  • HKEY_CLASSES_ROOT\Interface\{0000000d-0000-0000-C000-000000000046}
  • HKEY_CLASSES_ROOT\Interface\{00000089-0000-0010-8000-00AA006D2EA4}
  • HKEY_CLASSES_ROOT\Interface\{00000129-0000-0000-C000-000000000046}

Для чего нужны ключи ProgID, CLSID и IID, связано с некоторыми очень техническими аспектами компьютерного программирования и выходит за рамки этого обсуждения. Однако вы можете узнать больше обо всех трёх здесь, здесь и здесь соответственно.

Подробнее о HKEY_CLASSES_ROOT

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

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

Однако, поскольку куст HKEY_CLASSES_ROOT на самом деле представляет собой объединённые данные, обнаруженные как в кусте HKEY_LOCAL_MACHINE (HKEY_LOCAL_MACHINE\Software\Classes), так и в кусте HKEY_CURRENT_USER (HKEY_CURRENT_USER\Software\Classes), он также содержит информацию, специфичную для пользователя. Несмотря на то, что это так, HKEY_CLASSES_ROOT по-прежнему может просматривать любой пользователь.

Это, конечно, означает, что когда новый ключ реестра создаётся в кусте HKEY_CLASSES_ROOT, тот же самый ключ появится в HKEY_LOCAL_MACHINE\Software\Classes, а когда один из них будет удалён, тот же ключ будет удалён из другого места.

Если ключ реестра находится в обоих местах, но каким-то образом конфликтует, данные, найденные в кусте пользователя, выполнившего вход, HKEY_CURRENT_USER\Software\Classes, имеют приоритет и используются в HKEY_CLASSES_ROOT.

HKEY_CURRENT_USER

Содержит пользовательские настройки для текущего пользователя, вошедшего в систему, и обычно сокращённо записывается как HKCU. На самом деле это просто ссылка на HKEY_USERS\<SID-ДЛЯ-ТЕКУЩЕГО-ПОЛЬЗОВАТЕЛЯ>. Самый важный подключ здесь — HKCU\Software, который содержит настройки уровня пользователя для большей части вашего программного обеспечения.

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

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

Многие из параметров, которые вы настраиваете в различных апплетах на панели управления, фактически хранятся в кусте реестра HKEY_CURRENT_USER.

Подразделы реестра в HKEY_CURRENT_USER

Вот некоторые общие ключи реестра, которые вы можете найти в кусте HKEY_CURRENT_USER:

  • HKEY_CURRENT_USER\AppEvents
  • HKEY_CURRENT_USER\Console
  • HKEY_CURRENT_USER\Control Panel
  • HKEY_CURRENT_USER\Environment
  • HKEY_CURRENT_USER\EUDC
  • HKEY_CURRENT_USER\Identities
  • HKEY_CURRENT_USER\Keyboard Layout
  • HKEY_CURRENT_USER\Network
  • HKEY_CURRENT_USER\Printers
  • HKEY_CURRENT_USER\Software
  • HKEY_CURRENT_USER\System
  • HKEY_CURRENT_USER\Volatile Environment

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

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

Примеры HKCU

Ниже приводится некоторая информация о нескольких примерах ключей, найденных в кусте HKEY_CURRENT_USER:

  • HKEY_CURRENT_USER\APPEVENTS\EVENTLABELS

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

  • HKEY_CURRENT_USER\CONTROL PANEL

В разделе \Control Panel\Keyboard находятся несколько параметров клавиатуры, такие как параметры задержки клавиатуры и скорости клавиатуры, оба из которых контролируются с помощью параметров задержки повторения и частоты повторения в апплете панели управления клавиатурой.

Mouse applet — ещё один, настройки которого хранятся в HKEY_CURRENT_USER\Control Panel\Mouse key. Некоторые параметры включают DoubleClickHeight, ExtendedSounds, MouseSensitivity, MouseSpeed, MouseTrails и SwapMouseButtons.

Ещё один раздел панели управления предназначен исключительно для курсора мыши, он находится в разделе «Cursors». Здесь хранятся имя и физическое расположение файлов курсоров по умолчанию и пользовательских курсоров. Windows использует файлы неподвижных и анимированных курсоров с расширениями файлов CUR и ANI соответственно, поэтому большинство файлов курсоров, найденных здесь, указывают на файлы этих типов в папке %SystemRoot%\cursors\.

То же самое верно и для клавиши рабочего стола панели управления HKCU, которая определяет множество параметров рабочего стола в таких значениях, как WallpaperStyle, который описывает, следует ли центрировать обои или растягивать их по дисплею. Другие в том же месте включают CursorBlinkRate, ScreenSaveActive, ScreenSaveTimeOut и MenuShowDelay.

  • HKEY_CURRENT_USER\ENVIRONMENT

Ключ Environment — это то место, где находятся переменные среды, такие как PATH и TEMP. Изменения можно внести здесь или через проводник Windows, и они будут отражены в обоих местах.

  • HKEY_CURRENT_USER\SOFTWARE

В этом разделе реестра перечислено множество записей программного обеспечения для конкретных пользователей. Одним из примеров является расположение программы веб-браузера Firefox. В этом подразделе находится значение PathToExe, объясняющее, где находится firefox.exe в папке установки:

HKEY_CURRENT_USER\Software\Mozilla\Mozilla Firefox\57.0

Подробнее о HKEY_CURRENT_USER

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

Причина, по которой HKEY_CURRENT_USER существует, учитывая, что это просто ориентир для другого улья, заключается в том, что он обеспечивает более простой способ просмотра информации. Альтернативный вариант — найти идентификатор безопасности вашей учётной записи и перейти в эту область в кусте HKEY_USERS.

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

Из-за того, как это настроено, вы можете просто перейти к идентификатору безопасности другого пользователя в HKEY_USERS, чтобы увидеть всё, что они увидят в HKEY_CURRENT_USER, когда войдут в систему.

HKEY_LOCAL_MACHINE

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

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

Помимо данных о конфигурации программного обеспечения, куст HKEY_LOCAL_MACHINE также содержит много ценной информации об обнаруженном оборудовании и драйверах устройств.

В Windows 10, Windows 8, Windows 7 и Windows Vista информация о конфигурации загрузки вашего компьютера также включена в этот куст.

Подразделы реестра в HKEY_LOCAL_MACHINE

Следующие разделы реестра находятся в кусте HKEY_LOCAL_MACHINE:

  • HKEY_LOCAL_MACHINE\BCD00000000
  • HKEY_LOCAL_MACHINE\COMPONENTS
  • HKEY_LOCAL_MACHINE\DRIVERS
  • HKEY_LOCAL_MACHINE\HARDWARE
  • HKEY_LOCAL_MACHINE\SAM
  • HKEY_LOCAL_MACHINE\Schema
  • HKEY_LOCAL_MACHINE\SECURITY
  • HKEY_LOCAL_MACHINE\SOFTWARE
  • HKEY_LOCAL_MACHINE\SYSTEM

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

Подраздел HARDWARE содержит данные, относящиеся к BIOS, процессорам и другим аппаратным устройствам. Например, в HARDWARE находится DESCRIPTION > System > BIOS, где вы найдёте текущую версию BIOS и информацию о производителе материнской платы.

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

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

HKLM\SOFTWARE\Wow6432Node\ встречается в 64-битных версиях Windows, но используется 32-битными приложениями. Это эквивалент HKLM\SOFTWARE, но не совсем то же самое, поскольку он выделен с единственной целью предоставления информации 32-битным приложениям в 64-битной ОС. WoW64 показывает этот ключ 32-битным приложениям как «HKLM\SOFTWARE\».

Скрытые подразделы в HKLM

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

  • HKEY_LOCAL_MACHINE\SAM
  • HKEY_LOCAL_MACHINE\SECURITY

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

Подраздел SAM относится к информации о базах данных Security Accounts Manager (SAM) для доменов. В каждой базе данных есть псевдонимы групп, пользователи, гостевые учётные записи и учётные записи администраторов, а также имя, используемое для входа в домен, криптографические хэши пароля каждого пользователя и многое другое.

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

Чтобы увидеть содержимое ключа SAM или SECURITY, редактор реестра должен быть открыт с использованием системной учётной записи, которая имеет более широкие права, чем любой другой пользователь, даже пользователь с правами администратора. Как это сделать, будет показано ниже.

После открытия редактора реестра с соответствующими разрешениями ключи HKEY_LOCAL_MACHINE\SAM и HKEY_LOCAL_MACHINE\SECURITY могут быть исследованы, как и любой другой ключ в кусте.

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

Подробнее о HKEY_LOCAL_MACHINE

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

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

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

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

Хотя HKEY_LOCAL_MACHINE часто пишется как HKLM, это не совсем «официальная» аббревиатура. Это важно знать, потому что некоторые программы в некоторых случаях, даже инструменты, доступные непосредственно от Microsoft, не позволяют сокращать имя куста в путях реестра таким образом. Если вы получаете сообщение об ошибке при использовании «HKLM», используйте вместо него полный путь и посмотрите, исправит ли это вашу проблему.

HKEY_USERS

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

HKEY_USERS, иногда называемый HKU, является одним из многих кустов реестра в реестре Windows.

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

Каждый раздел реестра, расположенный в кусте HKEY_USERS, соответствует пользователю в системе и назван с идентификатором безопасности этого пользователя или SID. Разделы реестра и значения реестра, расположенные под каждым параметром управления SID, относящимся к данному пользователю, например подключённые диски, установленные принтеры, переменные среды, фон рабочего стола и многое другое, загружаются при первом входе пользователя в систему.

Подразделы реестра в HKEY_USERS

Вот пример того, что вы можете найти под этим ульем:

  • HKEY_USERS\.DEFAULT
  • HKEY_USERS\S-1-5-18
  • HKEY_USERS\S-1-5-19
  • HKEY_USERS\S-1-5-20
  • HKEY_USERS\S-1-5-21-1461214404-118510055-3688602372-1001
  • HKEY_USERS\S-1-5-21-1461214404-118510055-3688602372-1001_Classes

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

Хотя у вас, скорее всего, будут .DEFAULT, S-1-5-18, S-1-5-19 и S-1-5-20, которые соответствуют встроенным системным учётным записям, ваши ключи S-1-5-21-xxx будут уникальными для вашего компьютера, поскольку они соответствуют «реальным» учётным записям пользователей в Windows.

Подробнее о HKEY_USERS и SID

Улей HKEY_CURRENT_USER действует как своего рода ярлык для подраздела HKEY_USERS, соответствующего вашему SID.

Другими словами, когда вы вносите изменения в HKEY_CURRENT_USER, вы вносите изменения в ключи и значения под ключом в HKEY_USERS, который назван так же, как ваш SID.

Например, если ваш SID следующий:

S-1-5-21-0123456789-012345678-0123456789-1004

… HKEY_CURRENT_USER укажет на это:

HKEY_USERS\S-1-5-21-0123456789-012345678-0123456789-1004

Редактировать можно в любом месте, поскольку они являются одним и тем же.

Как найти идентификатор безопасности пользователя (SID) в Windows

Если вы хотите изменить данные реестра для пользователя, чей SID не отображается в HKEY_USERS, вы можете либо войти в систему как этот пользователь, и внести изменения, либо загрузить куст реестра этого пользователя вручную. Смотрите раздел ниже «Как загрузить куст реестра», если вам нужна помощь.

Помните, что, поскольку они одинаковы, если вы редактируете свои собственные настройки (настройки для пользователя, под которым вы в настоящее время вошли в систему), гораздо проще просто открыть HKEY_CURRENT_USER, чем определить свой собственный SID и затем вносить изменения в HKEY_USERS. Использование HKEY_USERS для доступа к папке SID для пользователя обычно полезно только в том случае, если вам нужно изменить значения реестра для пользователя, который в настоящее время не вошёл в систему.

Подключ HKEY_USERS\.DEFAULT в точности совпадает с подразделом HKEY_USERS\S-1-5-18. Любые изменения, внесённые в один, автоматически и мгновенно отражаются в другом, точно так же, как подключ SID текущего пользователя в HKEY_USERS идентичен значениям, найденным в HKEY_CURRENT_USER.

Также важно знать, что HKEY_USERS\.DEFAULT используется учётной записью LocalSystem, а не учётной записью обычного пользователя. Часто ошибочно принимают этот ключ за тот, который можно отредактировать, чтобы его изменения применялись ко всем пользователям, учитывая, что он называется «по умолчанию» (DEFAULT), но это не так.

Два других подраздела HKEY_USERS в реестре Windows, которые используются системными учётными записями, включают S-1-5-19, который предназначен для учётной записи LocalService, и S-1-5-20, который используется учётной записью NetworkService.

HKEY_CURRENT_CONFIG

Хранит всю информацию о текущей конфигурации оборудования. Он используется не очень часто, и это просто ссылка на HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current.

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

HKEY_CURRENT_CONFIG — это ярлык для улья HKEY_LOCAL_MACHINE. В частности, в раздел реестра \SYSTEM\CurrentControlSet\Hardware Profiles\Current\ этого куста. Именно там информация действительно хранится — HKEY_CURRENT_CONFIG просто предоставляет быстрый способ добраться туда.

Следовательно, HKEY_CURRENT_CONFIG действительно существует просто для удобства. Легче получить доступ к данным в другом разделе реестра — просмотреть и изменить его, просто перейдя в HKEY_CURRENT_CONFIG. Поскольку они содержат одинаковую информацию и всегда связаны друг с другом, вы можете вносить изменения в любом месте, чтобы получить одинаковые результаты.

Подразделы реестра в HKEY_CURRENT_CONFIG

Два ключа реестра, которые вы найдёте в кусте HKEY_CURRENT_CONFIG:

  • HKEY_CURRENT_CONFIG\Software
  • HKEY_CURRENT_CONFIG\System

Подробнее о HKEY_CURRENT_CONFIG

Как мы уже говорили выше, HKEY_CURRENT_CONFIG реплицирует всё, что находится в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\. Это означает, что если вы измените что-либо в первом разделе реестра, это будет отражено во втором, и наоборот.

Например, если вы добавляете, редактируете, удаляете или переименовываете что-либо в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current\Software\, а затем выйдите из редактора реестра и повторно откройте его (или обновите его с помощью клавиши F5), вы увидите что изменение произошло немедленно в ключе the HKEY_CURRENT_CONFIG\Software\.

Вы можете заметить, что внутри HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\ есть несколько ключей реестра. Это потому, что этот раздел реестра используется для хранения всех профилей оборудования для всего компьютера. Причина, по которой вы видите только один профиль оборудования в ключе HKEY_CURRENT_CONFIG, заключается в том, что он указывает только на один из этих профилей оборудования, в частности, на тот, который относится к пользователю, который в данный момент вошёл в систему.

В некоторых версиях Windows вы можете создать дополнительные профили оборудования, щёлкнув ссылку «Система» на панели управления. Щёлкните или коснитесь вкладки «Оборудование», а затем «Профили оборудования».

Где реестр хранится на диске?

Файлы реестра хранятся в нескольких местах.

Вы можете найти большинство из них в папке C:\Windows\System32\config.

Видите эти файлы SAM, SECURITY, SOFTWARE и SYSTEM? Они соответствуют тем же ключам в папке HKEY_LOCAL_MACHINE.

Данные для ветви HKEY_CURRENT_USER хранятся в вашей пользовательской папке в скрытом файле NTUSER.DAT. Этот файл свой у каждого пользователя операционной системы, то есть на одном компьютере таких файлов может быть много.

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

Универсальное обозначение расположения файла Пример расположения файла Имя файла Описание
%UserProfile% C:\Users\ИМЯ ПОЛЬЗОВАТЕЛЯ\ NTUser.dat Конфигурация профиля пользователя
%SystemRoot%\System32\Config\ C:\Windows\System32\Config\ Components
Default
SAM
Security
Software
System
Конфигурация системы

%SystemRoot%\ServiceProfiles\LocalService

%SystemRoot%\ServiceProfiles\LocalService

C:\Windows\ServiceProfiles\LocalService

C:\Windows\ServiceProfiles\LocalService

NTUser.dat Конфигурации профиля пользователя, используемые Windows
%SystemDrive%\Boot
или
%SystemDrive%\EFI\Microsoft\Boot
C:\Boot\
или
C:\EFI\Microsoft\Boot
BCD Данные конфигурации загрузки
%UserProfile%
%SystemRoot%\System32\Config\
%SystemRoot%\System32\Config\Txr
и т.д.
C:\Users\Username\
C:\Windows\System32\Config\
C:\Windows\System32\Config\Txr
и т.д.
  Файлы реестра транзакций можно найти в основных папках куста реестра.

Есть несколько типов файлов реестра

Первичные файлы реестра обычно не имеют расширения (за исключением NTUser.dat), но есть и другие файлы. Они прикрепляют расширение ко всему имени файла, включая исходное расширение. Таблица 4 показывает большинство из этих типов файлов.

Расширение файла Пример имён файлов Цель
нет System
NTUser.dat
Резервная копия куста, созданная в Configuration Manager
ALT System.alt Резервное копирование системного ключа, создаваемых в Configuration Manager
BLF NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}.TM.blf Файлы транзакций TxR1
LOG, LOGn System.log, System.log1 и т.д.
NTUser.dat.log, NTUser.dat.log1 и т.д.
Журнал транзакций изменений ключа и значения, создаваемых Configuration Manager
REGTRANS-MS NTUSER.DAT{016888bd-6c6f-11de-8d1d-001e0bcde3ec}
.TMContainer00000000000000000001
.regtrans-ms
Файлы транзакций TxR1
REG нет стандартных имён Файлы записей регистрации созданные RegEdit и другими программами.
SAV System.sav Файл начальной установки SYSTEM для Windows Vista и 7. Резервная копия конфигурации системы Windows 2000, XP, 2003 в конце запуска текстового режима перед запуском графического режима. Если графический режим не работает, перезапуск загружает файл .sav, чтобы пропустить текстовый режим.

1 Начиная с Vista, Transactional Registry (TxR) выполняет обновления транзакций, которыми управляет Transaction Manager (TM) режима ядра Windows. Это обеспечивает атомарные транзакции, при которых все обновления выполняются вместе или не выполняются вовсе. Диспетчер транзакций использует общую файловую систему ведения журнала и хранит файлы реестра в папке %SystemRoot%\System32\Config\ (например, C:\Windows\System32\Config\) и во вложенной папке Txr, а также в других папках реестра.

Создание новых ключей и значений

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

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

  • Строковый параметр (REG_SZ) — содержит всё, что вписывается в обычную строку. В подавляющем большинстве случаев вы можете редактировать строки, читаемые человеком, не нарушая при этом ничего.
  • Двоичный параметр (REG_BINARY) — это значение содержит произвольные двоичные данные, и вы почти никогда не захотите пытаться редактировать один из этих ключей.
  • Параметр DWORD (32 бита) (REG_DWORD) — они почти всегда используются для обычного целочисленного значения, будь то просто 0 или 1, или числа от 0 до 4 294 967 295.
  • Параметр QWORD (64-битное) (REG_QWORD) — они не очень часто используются для работы с реестром, но в основном это 64-битное целочисленное значение.
  • Мультистроковый параметр (REG_MULTI_SZ) — эти значения довольно необычны, но работают в основном как окно блокнота. Вы можете ввести многострочную текстовую информацию в такое поле.
  • Расширяемый строковый парамер (REG_EXPAND_SZ) — эти переменные имеют строку, которая может содержать переменные среды и часто используется для системных путей. Таким образом, строка может быть %SystemDrive%\Windows, которая разворачивается в C:\Windows. Это означает, что, когда вы найдёте значение в реестре, которое настроено на этот тип, вы можете изменить или вставить переменные среды, и они будут «расширены» перед использованием строки.

Интересный факт: DWORD — это сокращение от «двойного слова», потому что «слово» — это термин для единицы данных по умолчанию, используемой процессором, и когда была создана Windows, это было 16 бит. Таким образом, «слово» — это 16 бит, а «двойное слово» — 32 бита. Хотя все современные процессоры являются 64-битными, реестр по-прежнему использует старый формат для совместимости.

Меню избранного

Одна из действительно полезных функций, которую, кажется, никто не замечает, — это меню «Избранное», которое отлично подходит, если вы хотите регулярно проверять место в реестре. Что действительно забавно, так это то, что вы можете экспортировать список избранного и использовать его снова на другом компьютере, без необходимости настраивать на новой машине заново. То есть вы можете перенести список избранного с самыми востребованными местами реестра на любую систему.

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


Экспорт файлов реестра

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

После того, как вы получили экспортированный файл реестра, вы можете дважды щёлкнуть по нему, чтобы ввести информацию обратно в реестр, или вы можете выбрать «Изменить», чтобы просмотреть содержимое в Блокноте.

Формат файла для реестра довольно прост — слева имена значений, а справа фактические значения.

Установка разрешений

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

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

Загрузка кустов реестра

Вы можете использовать функцию Файл → Загрузить куст для загрузки реестра из автономной системы. Возможно, вы устраняете неполадки на другом компьютере и хотите узнать, что происходит в реестре системы, которая не загружается. Итак, вы загружаете систему с аварийного диска или, может быть, с Live CD с Linux, а затем копируете файлы реестра на свой флэш-накопитель.

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

Как получить доступ к закрытым частям реестра SAM и SECURITY

Как уже было сказано, разделы реестра

  • HKEY_LOCAL_MACHINE\SAM
  • HKEY_LOCAL_MACHINE\SECURITY

не показываются в программе «Редактор реестра»:

Чтобы их увидеть необходимо открыть программу regedit с правами уровня аккаунта System. Дело в том, что права Администратора не являются самыми высокими в Windows. Наивысшие права у System.

Открыть любую программу с правами System можно с помощью утилиты PsExec. Эта утилита входит в PSTools от SysInternals. Если коротко, это официальная утилита Microsoft. Подробности и ссылку на скачивания вы найдёте в статье «Что такое инструменты SysInternals и как их использовать?».

После того как скачали и распаковали архив PSTools, необходимо в командной строке перейти в папку с программой. Помните, что запустить программу с правами аккаунта System можно только если командная строка открыта с правами администратора! Для этого нажмите Win+x и выберите «Windows PowerShell (администратор)».

С помощью cd перейдите в папку с распакованными утилитами SysInternals, например:

cd C:\Users\MiAl\Downloads\PSTools\

Теперь запустите программу PsExec с ключами -s и -i:

.\PsExec64.exe -s -i regedit.exe

В результате вы сможете увидеть и отредактировать содержимое кустов реестра HKEY_LOCAL_MACHINE\SAM и HKEY_LOCAL_MACHINE\SECURITY. Помните, что редактирование данных кустов может привести к полной неработоспособности системы, в результате чего она не будет загружаться!

Утилита REG

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

Рассмотрим возможности REG более подробно.

Общий вид команды:

REG <операция> [Список параметров]

Среди операций могут быть:

  • QUERY
  • ADD
  • DELETE
  • COPY
  • SAVE
  • LOAD
  • UNLOAD
  • RESTORE
  • COMPARE
  • EXPORT
  • IMPORT
  • FLAGS

REG SAVE — сохранение куста реестра в файл

Использование:

REG SAVE <имя_раздела> <имя_файла> [/y] [/reg:32 | /reg:64]

Опции:

  имя_раздела   КОРЕНЬ\<подраздел>
    КОРЕНЬ      [ HKLM | HKCU | HKCR | HKU | HKCC ]
    подраздел   Полное имя подраздела реестра в одном из выбранных корневых
                файлов.

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

  /y            Выполнение замены существующего файла без запроса
                подтверждения.

  /reg:32       Указывает, что к разделу реестра следует обращаться с помощью
                представления для 32-разрядных приложений.

  /reg:64       Указывает, что к разделу реестра следует обращаться с помощью
                представления для 64-разрядных приложений.

Пример. Сохранение куста MyApp в файл AppBkUp.hiv текущей папки:

REG SAVE HKLM\Software\MyCo\MyApp AppBkUp.hiv

REG QUER — отображение значения параметра реестра

Использование:

REG QUERY имя_раздела [/v [имя_параметра] | /ve] [/s]
          [/f данные [/k] [/d] [/c] [/e]] [/t тип] [/z] [/se разделитель]
          [/reg:32 | /reg:64]

Опции:

  имя_раздела [\\компьютер\]полное_имя_раздела
              компьютер          — имя удаленного компьютера, по умолчанию
                                   используется текущий компьютер.
                                   На удаленных компьютерах доступны только
                                   разделы HKLM и HKU
              полное_имя_раздела — путь в форме корневой_раздел\подраздел
                 корневой раздел — [ HKLM | HKCU | HKCR | HKU | HKCC ]
                 подраздел       — полное имя раздела реестра в указанном
                                   корневом_разделе

  /v          Запросы требуемых параметров в указанном разделе реестра.
              Если не указано, запрашиваются все параметры раздела.

              Аргумент этого параметра может быть необязательным, только если
              задан параметр /f. Это указывает на поиск только в именах
              параметров реестра.

  /ve         Запросы параметра по умолчанию или с пустым именем (по
              умолчанию).

  /s          Запрос всех вложенных подразделов и их параметров (аналогично
              команде dir /s).

  /se         Указание разделителя (длиной в 1 знак) в строке данных для
              REG_MULTI_SZ. По умолчанию в качестве разделителя используется
              "\0".

  /f          Данные или шаблон для поиска.
           Если строка содержит пробелы, заключайте ее в кавычки.
              Значение по умолчанию: "*".

  /k          Указывает на поиск только в именах разделов.

  /d          Указывает на поиск только в данных.

  /c          Указывает на учет регистра знаков при поиске.
                По умолчанию при поиске регистр знаков не учитывается.

  /e          Указывает на возврат только точных совпадений.
                По умолчанию возвращаются все совпадения.

  /t          Указывает тип данных параметра реестра.
              Допустимые типы:
                REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ,
                REG_DWORD, REG_QWORD, REG_BINARY, REG_NONE
              По умолчанию будут использоваться все типы.

  /z          Подробности: отображение числового кода типа имени значения.

  /reg:32  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 32-разрядных приложений.

  /reg:64  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 64-разрядных приложений.

Примеры:

Отображение значения параметра реестра Version:

REG QUERY HKLM\Software\Microsoft\ResKit /v Version

Отображение всех подразделов и их параметров в разделе реестра Setup удаленного компьютера ABC:

REG QUERY \\ABC\HKLM\Software\Microsoft\ResKit\Nt\Setup /s

Отображение всех подразделов и параметров со знаком "#" в качестве разделителя для всех параметров типа REG_MULTI_SZ:

REG QUERY HKLM\Software\Microsoft\ResKit\Nt\Setup /se #

Отображение раздела, параметра и данных с учетом реестра букв для точных совпадений с "SYSTEM" типа REG_SZ из корневого раздела HKLM:

REG QUERY HKLM /f SYSTEM /t REG_SZ /c /e

Отображение раздела, параметра и данных для совпадений с "0F" типа REG_BINARY среди данных в корневом разделе HKCU:

REG QUERY HKCU /f 0F /d /t REG_BINARY

Отображение параметра и данных для пустого значения (по умолчанию) в разделе HKLM\SOFTWARE:

REG QUERY HKLM\SOFTWARE /ve

REG ADD — добавление разделов и параметров в реестр

Использование:

REG ADD <имя_раздела> [/v <имя_параметра> | /ve] [/t <тип>] [/s <разделитель>]
        [/d <данные>] [/f]
        [/reg:32 | /reg:64]

Опции:

  имя_раздела  [\\<компьютер>\]<раздел>

       Компьютер — имя удаленного компьютера. Если оно опущено, то по
                   умолчанию используется локальный компьютер. На удаленном
                   компьютере доступны только корневые разделы HKLM и HKU.

       Раздел —    КОРЕНЬ\<подраздел>

       КОРЕНЬ —    [ HKLM | HKCU | HKCR | HKU | HKCC ]

       Подраздел — полное имя подраздела реестра в указанном корневом разделе.

  /v   Имя параметра, добавляемого в выбранный раздел.

  /ve  Добавление параметра с пустым именем (по умолчанию) в этот раздел.

  /t   Тип данных
       [ REG_SZ    | REG_MULTI_SZ | REG_EXPAND_SZ |
         REG_DWORD | REG_QWORD    | REG_BINARY    | REG_NONE ]
        Если не указывается, то по умолчанию используется REG_SZ.

  /s   Символ, используемый в качестве разделителя данных для параметров
       типа REG_MULTI_SZ. Если не указан, то в качестве разделителя
       используется "\0".

  /d       Значение, присваиваемое добавляемому параметру реестра.

  /f       Принудительно перезаписывает существующую запись реестра без
           запроса подтверждения.

  /reg:32  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 32-разрядных приложений.

  /reg:64  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 64-разрядных приложений.

Примеры:

Добавляет раздел HKLM\Software\MyCo на удаленном компьютере ABC:

REG ADD \\ABC\HKLM\Software\MyCo

Добавляет параметр (имя: Data, тип: REG_BINARY, данные: fe340ead):

REG ADD HKLM\Software\MyCo /v Data /t REG_BINARY /d fe340ead

Добавляет параметр (имя: MRU, тип: REG_MULTI_SZ, данные: fax\0mail\0\0):

REG ADD HKLM\Software\MyCo /v MRU /t REG_MULTI_SZ /d fax\0mail

Добавляет параметр (имя: Path, тип: REG_EXPAND_SZ, данные: %systemroot%) Примечание. В расширяемой строке используйте знак вставки ( ^ ):

REG ADD HKLM\Software\MyCo /v Path /t REG_EXPAND_SZ /d ^%systemroot^%

REG DELETE — удаление раздела или параметра реестра

Использование:

REG DELETE <имя_раздела> [/v <имя_параметра> | /ve | /va] [/f]
           [/reg:32 | /reg:64]

Опции:

  имя_раздела  [\\<компьютер>\]<раздел>
    компьютер  Имя удаленного компьютера; если оно опущено, по умолчанию
               используется локальный компьютер. На удаленном компьютере можно
               использовать только корневые разделы HKLM и HKU.
    раздел     КОРЕНЬ\подраздел
    КОРЕНЬ     [ HKLM | HKCU | HKCR | HKU | HKCC ]
    подраздел  Полное имя подраздела реестра в одном из выбранных корневых
               разделов.

 имя_параметра Имя параметра, удаляемого из выбранного раздела. Если оно
               опущено, удаляются все подразделы и значения указанного раздела.

  /ve          Удаляет пустое имя параметра (по умолчанию).

  /va          Удаляет все параметры в указанном разделе.

  /f           Выполняет принудительное удаление без запроса подтверждения.

  /reg:32      Указывает, что к разделу реестра следует обращаться с помощью
               представления для 32-разрядных приложений.

  /reg:64      Указывает, что к разделу реестра следует обращаться с помощью
               представления для 64-разрядных приложений.

Примеры:

Удаляет раздел реестра Timeout и все его подразделы и параметры:

REG DELETE HKLM\Software\MyCo\MyApp\Timeout

Удаляет параметр реестра MTU из раздела MyCo на компьютере ZODIAC:

REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU

REG COPY — копирование подразделов и параметров

Использование:

REG COPY <раздел1> <раздел2> [/s] [/f] [/reg:32 | /reg:64]

Опции:

  раздел       Имя раздела в формате: [\\Компьютер\]Путь
    компьютер  Имя удаленного компьютера: если оно опущено, то по умолчанию
               считается равным имени локального компьютера. Для удаленных
               компьютеров доступны только HKLM и HKU.
    путь       Полный путь к разделу реестра в виде: КОРЕНЬ\Подраздел.
    КОРЕНЬ     Корневой раздел. Значения: [ HKLM | HKCU | HKCR | HKU | HKCC ].
    подраздел  Полный путь к разделу реестра в выбранном корневом разделе.

  /s           Копирование всех подразделов и параметров.

  /f           Принудительное копирование без дополнительного предупреждения.

  /reg:32      Указывает, что к разделу реестра следует обращаться с помощью
               представления для 32-разрядных приложений.

  /reg:64      Указывает, что к разделу реестра следует обращаться с помощью
               представления для 64-разрядных приложений.

Примеры:

Копирует все подразделы и параметры раздела MyApp в раздел SaveMyApp:

REG COPY HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp /s

Копирует все параметры раздела MyCo с компьютера ZODIAC в раздел MyCo1 на локальном компьютере:

REG COPY \\ZODIAC\HKLM\Software\MyCo HKLM\Software\MyCo1

REG RESTORE — восстановление раздела из файла (с заменой)

Использование:

REG RESTORE <имя_раздела> <имя_файла> [/reg:32 | /reg:64]

Опции:

  имя_раздела   ROOTKEY\SubKey (только локальный компьютер)
   ROOTKEY      [ HKLM | HKCU | HKCR | HKU | HKCC ]
   SubKey       Полное имя подраздела реестра, в который восстанавливается файл
                куста. Замена существующих параметров разделов и подразделов.

 имя_файла      Имя файла куста, подлежащего восстановлению. Чтобы создать
                данный файл, необходимо использовать REG SAVE.

  /reg:32       Указывает, что к разделу реестра следует обращаться с помощью
                представления для 32-разрядных приложений.

  /reg:64       Указывает, что к разделу реестра следует обращаться с помощью
                представления для 64-разрядных приложений.

Примеры. Восстановление файла NTRKBkUp.hiv заменой раздела ResKit:

REG RESTORE HKLM\Software\Microsoft\ResKit NTRKBkUp.hiv

REG LOAD — загрузка файла в раздел

Использование:

REG LOAD <имя_раздела> <имя_файла> [/reg:32 | /reg:64]

Опции:

  имя_раздела    КОРЕНЬ\<подраздел> (только локальный компьютер)
    КОРЕНЬ       [ HKLM | HKU]
    подраздел    Имя подраздела реестра, в который загружается файл куста.
                 Создание нового раздела.

  имя_файла      Имя файла куста, подлежащего загрузке.
                 Чтобы создать данный файл, необходимо использовать REG SAVE.

  /reg:32     Указывает, что к разделу реестра следует обращаться с помощью
              представления для 32-разрядных приложений.

  /reg:64     Указывает, что к разделу реестра следует обращаться с помощью
              представления для 64-разрядных приложений.

Примеры. Загрузка файла TempHive.hiv в раздел HKLM\TempHive:

REG LOAD HKLM\TempHive TempHive.hiv

REG UNLOAD — выгрузка куста реестра

Использование:

REG UNLOAD <имя_раздела>

Опции:

  имя_раздела    КОРЕНЬ\<подраздел> (только локальный компьютер)
    КОРЕНЬ       [ HKLM | HKU]
    подраздел    Имя подраздела куста, в который выгружается файл.

Примеры. Выгрузка куста реестра TempHive в HKLM:

REG UNLOAD HKLM\TempHive

REG COMPARE — сравнение разделов и значений

Использование:

REG COMPARE <имя_раздела_1> <имя_раздела_2> [/v <имя_параметра> | /ve]
            [вывод] [/s]
            [/reg:32 | /reg:64]

Опции:

  имя_раздела      [\\<компьютер>\]<раздел>
    компьютер      Имя удаленного компьютера, если оно опущено, по умолчанию
                   используется локальный компьютер. На удаленном компьютере
                   можно использовать только корневые разделы HKLM и HKU.
    имя_раздела    КОРЕНЬ\<подраздел>
                   Если имя раздела 1 не указано, то имя раздела 2 равно имени
                   раздела 1.
    КОРЕНЬ         [ HKLM | HKCU | HKCR | HKU | HKCC ]
    подраздел      Полное имя подраздела реестра в одном из выбранных корневых
                   разделов.

  имя_параметра    Имя параметра в выбранном разделе, подлежащее сравнению.
                   Если опущено, то сравниваются все параметры в разделе.

  /ve              Сравнение параметров раздела с пустым именем (по умолчанию).

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

  /reg:32    Указывает, что к разделу реестра следует обращаться с помощью
             представления для 32-разрядных приложений.

  /reg:64    Указывает, что к разделу реестра следует обращаться с помощью
             представления для 64-разрядных приложений.

  Вывод            [/oa | /od | /os | /on]
                   Если опущен, то выводятся только различия.
    /oa            Вывод всех различий и совпадений.
    /od            Вывод только различий.
    /os            Вывод только совпадений.
    /on            Без вывода.

Код возврата:

  0 - Успешно, сравниваемые данные идентичны
  1 - При обработке произошла ошибка
  2 - Успешно, сравниваемые данные отличаются

Примечание:
  Символы в начале каждой строки читаются следующим образом:
  = данные FullKey1 равны данным FullKey2
  < относится к данным FullKey1, если они отличаются от данных FullKey2
  > относится к данным FullKey2, если они отличаются от данных FullKey1

Примеры:

Сравнивает все значения в разделе MyApp со значениями раздела SaveMyApp:

REG COMPARE HKLM\Software\MyCo\MyApp HKLM\Software\MyCo\SaveMyApp

Сравнивает значения Version в разделах MyCo и MyCo1:

REG COMPARE HKLM\Software\MyCo HKLM\Software\MyCo1 /v Version

Сравнивает все подразделы и значения параметров в разделе HKLM\Software\MyCo реестра на компьютере ZODIAC с аналогичным разделом на текущем компьютере:

REG COMPARE \\ZODIAC\HKLM\Software\MyCo \\. /s

REG EXPORT — экспорт всех подразделов и параметров раздела

Использование:

REG EXPORT <имя_раздела> <имя_файла> [/y] [/reg:32 | /reg:64]

Опции:

  имя_раздела    КОРЕНЬ\<подраздел> (только локальный компьютер).
    КОРЕНЬ       [ HKLM | HKCU | HKCR | HKU | HKCC ]
    подраздел    Полное имя подраздела реестра в одном из выбранных корневых
                 разделов.

  имя_файла      Имя диска, на который экспортируется файл

  /y             Выполнение замены существующего файла без запроса
                 подтверждения.

  /reg:32  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 32-разрядных приложений.

  /reg:64  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 64-разрядных приложений.

Пример. Экспорт всех подразделов и параметров раздела MyApp в файл AppBkUp.reg:

REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg

REG IMPORT — импорт записей реестра из файла

Использование:

REG IMPORT <имя_файла> [/reg:32 | /reg:64]

Опции:

  имя_файла    Имя диска, с которого импортируется файл
               (только локальный компьютер).

  /reg:32   Указывает, что к разделу реестра следует обращаться с помощью
            представления для 32-разрядных приложений.

  /reg:64   Указывает, что к разделу реестра следует обращаться с помощью
            представления для 64-разрядных приложений.

Пример. Импорт записей реестра из файла AppBkUp.reg:

REG IMPORT AppBkUp.reg

REG FLAGS — отображает и устанавливает текущие флаги раздела

Использование:

REG FLAGS имя_раздела [QUERY |
                       SET [DONT_VIRTUALIZE] [DONT_SILENT_FAIL] [RECURSE_FLAG]]
                      [/reg:32 | /reg:64]

Опции:

  имя_раздела    "HKLM\Software"[\подраздел] (ограничено этими разделами
                 только на локальном компьютере).
    Подраздел   Полное имя раздела реестра в узле HKLM\Software.
  DONT_VIRTUALIZE DONT_SILENT_FAIL RECURSE_FLAG
    Используется вместе с параметром SET; флаги, указанные в командной строке,
    будут установлены, не указанные — удалены.

  /reg:32  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 32-разрядных приложений.

  /reg:64  Указывает, что к разделу реестра следует обращаться с помощью
           представления для 64-разрядных приложений.

Примеры:

Отображает текущие флаги раздела MyApp:

REG FLAGS HKLM\Software\MyCo\MyApp QUERY

Устанавливает флаг DONT_VIRTUALIZE (и удаляет флаги DONT_SILENT_FAIL и RECURSE_FLAG) для раздела MyApp и всех его подразделов:

REG FLAGS HKLM\Software\MyCo\MyApp SET DONT_VIRTUALIZE /s

Программы для извлечения информации из реестра Windows

mimikatz

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

Инструкции:

Из полученных хешей может быть взломан пароль пользователя.

 

RegRippy (regrip.py)

RegRippy — это платформа для чтения и извлечения полезных данных для судебной экспертизы из кустов реестра Windows.

Установка в Kali Linux

sudo apt install python3-pip
sudo pip3 install regrippy

Установка в BlackArch

sudo pacman -R regrippy python-enum-compat python-python-registry python-unicodecsv
sudo pip3 install regrippy

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

Пример команды, которая получает имя компьютера (compname), которому принадлежит куст реестра, расположенный по пути /mnt/disk_d/Share/config/SYSTEM (—system /mnt/disk_d/Share/config/SYSTEM):

regrip.py compname --system /mnt/disk_d/Share/config/SYSTEM

Пример вывода:

HACKWARE-MIAL

Пример команды, которая выводит информацию о пользователе, выполнившем последний вход (lastloggedon) используя куст реестра SOFTWARE (—software /mnt/disk_d/Share/config/SOFTWARE):

regrip.py lastloggedon --software /mnt/disk_d/Share/config/SOFTWARE

Пример вывода:

LastLoggedOnSAMUser      .\MiAl
LastLoggedOnUser     .\MiAl
LastLoggedOnUserSID      S-1-5-21-1461214404-118510055-3688602372-1001

RegRipper

RegRipper — это инструмент с открытым исходным кодом, написанный на Perl, для извлечения/анализа информации (ключей, значений, данных) из реестра и представления её для анализа.

RegRipper состоит из двух основных инструментов, каждый из которых обеспечивает схожие возможности. Графический интерфейс RegRipper позволяет аналитику выбрать куст реестра для анализа, выходной файл для результатов и профиль (список подключаемых модулей) для работы с кустом. Когда аналитик запускает инструмент в отношении куста реестра, результаты попадают в файл, указанный аналитиком. Если аналитик решит проанализировать куст System, он также может отправить результаты в system.txt. Инструмент с графическим интерфейсом пользователя также создаст журнал своей активности в том же каталоге, что и выходной файл, используя то же имя файла, но с расширением .log (то есть, если выходные данные записываются в system.txt, журнал будет записан в system.log).

RegRipper также включает инструмент командной строки (CLI) под названием rip. Rip может быть направлен для анализа куста и может запускать либо профиль (список плагинов), либо отдельный плагин для этого куста, с отправкой результатов в STDOUT. Rip можно включать в пакетные файлы, используя операторы перенаправления для отправки вывода в файл. Rip не ведёт журнал своей деятельности.

Установка и запуск в Linux

Скачайте необходимые файлы:

git clone https://github.com/keydet89/RegRipper3.0
cd RegRipper3.0

Запускать проще всего с Wine, поэтому начните с его установки по Полному руководство по Wine: от установки до примеров использования.

Затем выполните:

wine rr.exe

Установка в Windows

Скачайте и распакуйте архив по ссылке: https://github.com/keydet89/RegRipper3.0/archive/master.zip

Чтобы открыть графический интерфейс, дважды кликните файл rr.exe.

Если вы хотите воспользоваться утилитой с интерфейсом командной строки, то откройте PowerShell или CMD, перейдите в папку с распакованным архивом и запустите файл

rip.exe

Запуск программы с графическим интерфейсом в Linux:

wine rr.exe

Выберите ветвь реестра для анализа и имя файла для сохранения отчёта.

Затем нажмите кнопку «Rip!».

Дождитесь завершения работы.

Откройте файл с отчётом.

Registry Explorer

Registry Explorer — это инструмент на основе графического интерфейса, используемый для просмотра содержимого автономных кустов реестра. Он может загружать несколько кустов сразу, выполнять поиск по всем загруженным кустам с использованием строк или регулярных выражений, выполняет экспорт данных, вы можете установить закладки на выбранные фрагменты, сохранить сделанные изменения в проект и многое другое.

Установка Registry Explorer в Windows

Программа предназначена для работы на Windows и требует полное окружение рабочей среды Microsoft .net framework версии 4.6 или выше (можно скачать по ссылке https://www.microsoft.com/en-us/download/details.aspx?id=49982).

Со страницы https://ericzimmerman.github.io/ скачайте архив «Registry Explorer/RECmd». Распакуйте его в любую папку, программа является портативной и не требует установки.

Для запуска графического интерфейса дважды кликните файл RegistryExplorer.exe.

creddump

creddump — это инструмент Python для извлечения различных учётных данных и секретов из кустов реестра Windows. В настоящее время он извлекает:

  • LM и NT хеши (защищены SYSKEY)
  • Кешированные пароли домена
  • Секреты LSA

Программа предустановлена в Kali Linux.

Установка в BlackArch:

sudo pacman -S creddump

Пример команды, которая выводит хеши локальных паролей, кусты реестра расположены в файлах /mnt/disk_d/Share/config/SYSTEM и /mnt/disk_d/Share/config/SAM:

python2 ./pwdump.py /mnt/disk_d/Share/config/SYSTEM /mnt/disk_d/Share/config/SAM

Пример вывода:

Администратор:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Гость:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
MiAl:1001:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Tester:1002:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

regipy

Regipy — это библиотека Python для анализа автономных кустов реестра.

Программа может:

  • Выгрузить весь куст реестра в json
  • Завершить транзакций в кусте реестра в соответствии с журналами
  • Сравнить кусты реестра
  • Выполнить извлечение информации с помощью плагинов

Установка в Kali Linux

sudo apt install python3-pip
sudo pip3 install regipy

Установка в BlackArch

sudo pacman -S regipy

Запуск плагинов для извлечения информации из куста SYSTEM и сохранение результатов в файл plugins_output.json:

registry-plugins-run ~/Documents/TestEvidence/Registry/SYSTEM -o /tmp/plugins_output.json

Тип куста будет определён автоматически, и будут запущены соответствующие плагины.

chntpw

chntpw — эта небольшая программа позволяет просматривать информацию и изменять пароли пользователей в файле базы данных пользователей Windows NT/2000. Старые пароли не нужно знать, поскольку они будут перезаписаны. Кроме того, она также содержит простой редактор реестра (запись данных того же размера) и шестнадцатеричный редактор, который позволяет вам возиться с битами и байтами в файле по своему усмотрению.

Установка chntpw

Программа предустановлена в Kali Linux.

Установка в BlackArch

sudo pacman -S chntpw

Примеры команд:

Сброс пароля пользователя ShareOverlord (-u ShareOverlord), когда куст реестра расположен по пути /mnt/windows/Windows/System32/config/SAM:

sudo /usr/sbin/chntpw /mnt/windows/Windows/System32/config/SAM -u ShareOverlord

Разблокировка пользователя Администратор:

sudo /usr/sbin/chntpw /mnt/windows/Windows/System32/config/SAM -u Администратор

Инструкция: Как сбросить пароль Windows

Утилиты NirSoft для работы с реестром

Подробности о программах данного автора смотрите в статье «Утилиты NirSoft для извлечения информации из Windows», для работы с реестром обратите внимание на такие утилиты как:

  • RegScanner
  • OfflineRegistryFinder
  • OfflineRegistryView
  • RegistryChangesView
  • RegFromApp
  • RegDllView
  • ActiveXHelper
  • RegFileExport

Извлечение кустов реестра Windows из виртуальных машин

С помощью утилиты virt-win-reg, входящий в пакет libguestfs, можно извлекать кусты реестра Windows напрямую из виртуальных дисков даже не запуская виртуальные машины. Подробности о libguestfs смотрите в разделе «Доступ к содержимому образов виртуальных машин и их изменение».

Программа virt-win-reg позволяет извлекать кусты реестра Windows, в том числе те, которые доступны только для учётной записи System.

Общий вид команды:

virt-win-reg '/ПУТЬ/ДО/ВИРТУАЛЬНОГО/ДИСКА' 'ИМЯ\КУСТА'

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

Например, команда для извлечения куста HKEY_LOCAL_MACHINE\SYSTEM из операционной системы Windows, чей виртуальный диск расположен в /mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi и сохранение полученных данных в файл SYSTEM.reg:

virt-win-reg '/mnt/disk_d/Виртуальные машины/Windows 10 (en).vdi' 'HKEY_LOCAL_MACHINE\SYSTEM' > SYSTEM.reg

Ещё один пример, извлечение куста реестра HKEY_LOCAL_MACHINE\SAM из образа диска /mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi и сохранение данных в файл SAM.reg:

virt-win-reg '/mnt/disk_d/Виртуальные машины/Windows Server 2019.vdi' 'HKEY_LOCAL_MACHINE\SAM' > SAM.reg

winregfs

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

Также включён инструмент под названием «fsck.winregfs», который выполняет базовую проверку целостности куста реестра.

Установка в Kali Linux

sudo apt install winregfs

Установка в BlackArch

sudo pacman -S winregfs

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

mkdir /tmp/reg
mount.winregfs /mnt/disk_d/Share/config/SOFTWARE /tmp/reg

Теперь вы можете увидеть всё, что есть в этом улье, в директории "/tmp/reg":

ls /tmp/reg

Пример вывода:

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

ls -l /tmp/reg/Microsoft/Windows/CurrentVersion/Run

Пример вывода:

Вы хотите увидеть, что содержат эти значения.

for X in /tmp/reg/Microsoft/Windows/CurrentVersion/Run/*; do echo -en "$X\n "; cat "$X"; echo; done

Пример вывода:

libregf

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

Установка в Kali Linux

sudo apt install libregf-utils

Установка в BlackArch

sudo pacman -S git autoconf automake libtool pkg-config
git clone https://github.com/libyal/libregf
cd libregf/
./synclibs.sh
./autogen.sh
./configure
make
sudo make install

Для монтирования файла REGF (куст реестра Windows) /mnt/disk_d/Share/config/SOFTWARE в директорию /tmp/reg:

mkdir /tmp/reg
regfmount /mnt/disk_d/Share/config/SOFTWARE /tmp/reg

Эта команда откроет каталоги и файлы, содержащие элементы, содержащиеся в файле REGF.

Теперь вы можете увидеть всё, что есть в этом улье, в директории "/tmp/reg":

ls /tmp/reg

Пример вывода:

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

ls -l '/tmp/reg/Microsoft/Windows/CurrentVersion/Run/(values)/'

Пример вывода:

Вы хотите увидеть, что содержат эти значения.

for X in '/tmp/reg/Microsoft/Windows/CurrentVersion/Run/(values)/'*; do echo -en "$X\n "; cat "$X"; echo; done

Пример вывода:


Рекомендуется Вам:

One Comment to Анализ реестра Windows

  1. Андрей:

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

    Система выводит на экран надпись о том, что осуществить вход в нее не представляется возможным, так как служба профилей пользователей препятствует входу в систему windows 8. Пробовал восстановить, результат тотже. Вошёл в систему через командную строку, имя и пароль использовал теже. В реестре почему то нет записей пользователя S-1-5-21-xxx, только S-1-5-18, 19 , 20. Как я понял в реестре   HKEY_CURRENT_USER есть данные о пользователе, как их оттуда вытащить и создать записи в S-1-5-21 какой программой можно воспользоваться или создать эти записи вручную? Спасибо.  

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *