О чём эта статья.
Итак, сегодня разговор пойдёт о теме , казалось бы, не очень важной, но, по сути, очень нужной каждому пользователю Windows (а таких подавляющее большинство) – о том, что такое реестр, из чего состоит, зачем он нужен и как его сохранить в своих закромах. Итак, что же такое вообще реестр? Если говорить по сути – это огромная, иерархически построенная база данных, работающая от запросов пользователя. Эта база данных нужна для систематизации данных о системе, а также оптимизации доступа к ним. Реестр содержит множество разноплановой информации как об обычных настройках операционной системы, так и об различных тонких настройках – в том числе, настройках безопасности и работы с низкоуровневыми программами, а также драйверами.
Реестр не является какой-то внешней программой, он – часть операционной системы. Ntdetect ищет при загрузке системы именно файлы реестра и подгружает оттуда параметры этой самой загрузки . знание ключей реестра и знание их значимости необходимо для эффективно управления системой. А также хотя бы для элементарной диагностики «почему это работает не так». Реестр является древовидной системой каталогов значений/ключей. Которые отвечают за определенные настройки. Причем следует учитывать, что разные ключи могут иметь различный тип – от логического до строкового.
Показательная анатомия.
Итак, стоит рассказать, из чего физически состоит реестр и как он работает. Сразу стоит оговориться. Что в том виде, в каком реестр представляется пользователю он нигде не хранится и для его редактирования необходимы специальные программы – редакторы реестра. Стандартные regedit.exe и regedit32.exe вполне подойдут. В процессе настройки и установки системы формируется некоторая часть данных реестра, а также в процессе работы системы – другая. В результате при загрузке системы формируется виртуальный объект REGISTRY\, который и является реестром. Для редактирования, просмотра и изучения реестра стандартными средствами Windows (программы regedit.exe и regedt32.exe) доступны именно ветки реестра. После редактирования реестра и/или внесения в него изменений эти изменения сразу записываются в файлы, являющиеся составными частями реестра. Таковыми являются, в Windows 95 и Windows 98 user.dat и system.dat; в Windows ME — user.dat, classes.dat и system.dat. В более поздних версиях системы появилось куда большое количество необходимых файлов.
О недостатках и как на этих недостатках зарабатывают мошенники.
На самом деле система достаточно сложна, однако достаточно надежна. Из-за чрезмерной сложности возникают сложности с фрагментацией реестра, следовательно – со скоростью его работы. Также реестр имеет свойство чрезмерно «толстеть» в результате накопления данных за долгое время работы, что также осложняет его функционирование. Эта проблема решается с помощью специальных программ по оптимизации и чистке реестра. Самостоятельно занимаясь этим вопросом следует помнить, что не стоит удалять что-то из реестра, если не знаешь о его назначении – так можно серьезно повредить систему, а то и вообще вывести ее из строя. Кроме того на этих проблемах стараются неслабо навариться мошенники – сеть полна предложениями «скачать программу по оптимизации реестра, после установки которой компьютер будет работать быстрее на 30%». Обычно за таким предложением следует форма по отправке СМС, которое подтверждает предыдущие подозрения. Не стоит обращать внимания на подобные вещи, а тем более верить им – тогда не потеряете ни денег, ни нервов.
Основные ветки реестра, их значение и назначение.
HKEY_CLASSES_ROOT — это ссылка на раздел HKEY_LOCAL_MACHINE\ Software\Classes. Хранящиеся здесь сведения обеспечивают запуск необходимой программы при открытии файла с помощью проводника. Этот раздел содержит связи между приложениями и типами файлов, а также информацию об OLE.
HKEY_USERS — этот раздел содержит настройки для всех пользователей компьютера.
HKEY_CURRENT_USER – данная ветка является ссылкой на конкретный внутренний подраздел HKEY_USERS. Все настройки выставляются в соответсвии с тем, какой из пользователей находится в данный момент в системе (т.е. какая сессия активна).
HKEY_LOCAL_MACHINE – содержит практически настройки и параметры, принадлежащие данному компьютеру, в том числе аппаратные настройки, конфигурация аппаратного обеспечения и профилей пользователей.
HKEY_CURRENT_CONFIG – по сути, всего лишь ссылка на HKEY_LOCAL_MACHINE\ SYSTEM \CurrentControlSet\ Hardware Profiles\Current. Там находятся все входящие настройки аппаратной части, необходимой для запуска системы.
Написанные выше основные стандартные разделы нельзя удалить или переименовать. Некоторые разделы реестра являются энергозависимыми (volatile) и не хранятся в каком-либо файле. ОС создает и управляет этими разделами полностью в оперативной памяти, не сохраняя их на жёсткий диск, поэтому они являются временными по своей природе. Система создает энергозависимые разделы каждый раз при начальной загрузке. Например, HKEY_LOCAL_MACHINE \HARDWARE — раздел реестра, который хранит информацию по аппаратным устройствам и назначенным для них ресурсам. Назначение ресурса и аппаратное обнаружение происходят каждый раз при загрузке системы, поэтому логично и естественно, что этим данным не требуется постоянное хранение на жёстком диске.
Как сохранить «уже нажитое».
Иногда бывает полезно сделать бэкап (резервную копию) системного реестра – из-за опасений его повреждения . Это может произойти в результате неудачных экспериментов с реестром, неправильной установки драйверов и еще многих десятков причин. Да и иметь ее «на всякий случай» тоже не помешает. Для того, чтобы не делать это всякий раз вручную, можно использовать одну из многих программ-автобекаперов, например, Comodo Backup.
Для уж особой нажежности можно забекапить и джобы самого самого комодо – для этого можно написать системный скрипт (bat-файл, который поможет в этом случае). Для того чтобы он работал, достаточно, набрать нижеприведенный код в «блокноте», а после сохранить файл с расширением .bat. Если нужно сохранить настройки, хранящиеся в реестре, делаем батник, экспортирующий их в регфайл(ы), прописываем его в графе run befor start of backup и включаем его в архив. Код получится таким:
@echo off
del CmdBackUp1.reg
del CmdBackUp2.reg
regedit /e C:\BAT\CmdBackUp1.reg «HKEY_CURRENT_USER\Software\ComodoGroup\Comodo BackUp»
regedit /e C:\BAT\CmdBackUp2.reg «HKEY_LOCAL_MACHINE\SOFTWARE\ComodoGroup\Comodo Backup\Backup»
Таким образом, в данной статье мы рассмотрели основные ветки и особенности реестра Windows, а также решили проблему бекапа . Эти знания не будут лишними ни для кого, однако надеемся, чтобы всякий созданный вами бэкап был лишь страховкой, но никак не последним шансом=)
Реестр Windows (англ. Windows Registry), или системный реестр — иерархически построенная база данных параметров и настроек в большинстве операционных систем семейства Microsoft Windows [2].
В реестре хранятся данные, которые необходимы для правильного функционирования Windows. К ним относятся профили всех пользователей, сведения об установленном программном обеспечении и типах документов, которые могут быть созданы каждой программой, информация о свойствах папок и значках приложений, а также установленном оборудовании и используемых портах [1].
Открытие реестра¶
Поскольку файлов в реестре несколько, его нельзя открыть, например, в текстовом редакторе и внести какие-либо коррективы. Для работы с ним требуется специальная программа – редактор реестра, который является встроенным компонентом операционной системы Windows и вызывается путем ввода команды Regedit
[4].
Существует несколько способов открыть редактор реестра.
Способ №1 – Открытие через утилиту «Выполнить»:
- Выбрать Пуск → Выполнить, либо нажать сочетание клавиш
Win+R
(Win
— клавиша, междуCtrl
иAlt
в нижнем ряду клавиатуры, обычно на ней изображен значок Microsoft Windows ; - В открывшимся окне ввести команду
regedit
; - Нажать клавишу
ОК
.
Рис. 1 – Открытие через утилиту «Выполнить»
Способ №2 – Открытие через поиск по меню «Пуск»:
- Открыть меню Пуск;
- Ввести в строке поиска
regedit
и запустить найденный файл, который отобразится в верхней части Пуска.
Рис. 2 – Открытие через поиск по меню «Пуск»
С другими способами можно ознакомиться в статье Три способа открыть редактор реестра Windows.
Структура реестра¶
Реестр имеет иерархическую структуру, которая напоминает файловую систему жесткого диска – с его каталогами, подкаталогами и файлами. Но называются элементы реестра по-другому: верхний уровень иерархии составляют разделы, каждый из которых может содержать вложенные подразделы, а также параметры. Именно в параметрах хранится основное содержимое реестра, разделы служат лишь для группировки схожих по назначению параметров [4].
Рис. 3 – Редактор реестра
Далее приведен краткий перечень и краткое описание стандартных разделов реестра. Максимальная длина имени раздела составляет 255 символов.
HKEY_CURRENT_USER
Данный раздел является корневым для данных конфигурации пользователя, вошедшего в систему в настоящий момент. Здесь хранятся папки пользователя, цвета экрана и параметры панели управления. Эти сведения сопоставлены с профилем пользователя. Вместо полного имени раздела иногда используется аббревиатура HKCU
.
HKEY_USERS
Данный раздел содержит все активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER
является подразделом раздела HKEY_USERS
. Вместо полного имени раздела иногда используется аббревиатура HKU
.
HKEY_LOCAL_MACHINE
Раздел содержит параметры конфигурации, относящиеся к данному компьютеру (для всех пользователей). Наиболее интересным является подраздел Software
, который включает в себя настройки всех установленных в системе приложений. Вместо полного имени раздела иногда используется аббревиатура HKLM
.
HKEY_CLASSES_ROOT
Является подразделом HKEY_LOCAL_MACHINE\Software
. Хранящиеся здесь сведения обеспечивают выполнение необходимой программы при открытии файла с использованием проводника. Вместо полного имени раздела иногда используется аббревиатура HKCR
. Начиная с Windows 2000, эти сведения хранятся как в HKEY_LOCAL_MACHINE
, так и в HKEY_CURRENT_USER
.
Раздел HKEY_LOCAL_MACHINE\Software\Classes
содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes
, переопределяют принятые по умолчанию и относятся только к текущему пользователю.
Раздел HKEY_CLASSES_ROOT
включает в себя данные из обоих источников. Кроме того, раздел HKEY_CLASSES_ROOT
предоставляет эти объединенные данные программам, разработанным для более ранних версий Windows. Изменения настроек текущего пользователя выполняются в разделе HKEY_CURRENT_USER\Software\Classes
. Модификация параметров по умолчанию должна производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes
. Данные из разделов, добавленных в HKEY_CLASSES_ROOT
, будут сохранены системой в разделе HKEY_LOCAL_MACHINE\Software\Classes
. Если изменяется параметр в одном из подразделов раздела HKEY_CLASSES_ROOT
и такой подраздел уже существует в HKEY_CURRENT_USER\Software\Classes
, то для хранения информации будет использован раздел HKEY_CURRENT_USER\Software\Classes
, а не HKEY_LOCAL_MACHINE\Software\Classes
.
HKEY_CURRENT_CONFIG
Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.
Примечание
Реестр 64-разрядных версий Windows подразделяется на 32- и 64-разрядные разделы. Большинство 32-разрядных разделов имеют те же имена, что и их аналоги в 64-разрядном разделе, и наоборот. По умолчанию редактор реестра 64-разрядных версий Windows отображает 32-разрядные разделы в следующем узле: HKEY_LOCAL_MACHINE\Software\WOW6432Node
Файлы реестра на жестком диске¶
Основные файлы, отвечающие за формирование реестра хранятся в папке %SystemRoot%\System32\Config\
. Обычно это C:\Windows\System32\Config\
и в зависимости от версии ОС их состав может несколько различаться.
Файл, хранящий личные настройки пользователя, «скрыт» в папке соответствующей учетной записи, например, в C:\Documents and Settings\Dmitry
. Также файлы, отвечающие за пользовательские настройки, могут храниться в:
C:\Documents and Settings\%Username%\(Ntuser.dat)
;C:\Documents and Settings\%Username%\Local Settings\Application Data\Microsoft\Windows\ (UsrClass.dat)
.
Еще есть резервные копии файлов реестра, созданные системой, хранятся они в
C:\Windows\System32\config\RegBack
– для Windows 7 и Server 2008;C:\Windows\repair
– для XP и Server 2003.
Примечание
По умолчанию операционная система делает резервные копии этих файлов раз в 10 дней с помощью планировщика задач.
Вспомогательные файлы для всех кустов за исключением HKEY_CURRENT_USER
хранятся в системах Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003 и Windows Vista в папке %SystemRoot%\System32\Config
.
Вспомогательные файлы для куста HKEY_CURRENT_USER
хранятся в папке %SystemRoot%\Profiles\Имя_пользователя
. Расширения имен файлов в этих папках указывают на тип содержащихся в них данных. Отсутствие расширения также иногда может указывать на тип содержащихся в файле данных.
Примечание
Куст (дерево) реестра (англ. hive) — это группа разделов, подразделов и параметров реестра с набором вспомогательных файлов, содержащих резервные копии этих данных.
Таблица 1 — Соответствие кустов реестра и вспомогательных файлов¶
Куст реестра | Вспомогательные файлы |
---|---|
HKEY_LOCAL_MACHINE\SAM |
Sam , Sam.log , Sam.sav |
HKEY_LOCAL_MACHINE\Security |
Security , Security.log , Security.sav |
HKEY_LOCAL_MACHINE\Software |
Software , Software.log , Software.sav |
HKEY_LOCAL_MACHINE\System |
System , System.alt , System.log , System.sav |
HKEY_CURRENT_CONFIG |
System , System.alt , System.log , System.sav , Ntuser.dat , Ntuser.dat.log |
HKEY_USERS\DEFAULT |
Default , Default.log , Default.sav |
Примечание
Например, кусту HKEY_LOCAL_MACHINE\Software
соответствует на жестком диске файл C:\Windows\System32\config\SOFTWARE
.
Рис. 4 – Файлы реестра на жестком диске
Время на прочтение7 мин
Количество просмотров23K
Всем привет, Хабровчане!
Думаю ни у кого не возникает сомнений в важности грамотной работы специалистов ИБ и ИТ служб, учитывая события недавних дней с ТК СДЭК, а также другие крупные взломы/утечки, которых было немало за последние пару, тройку лет. Обеспечение грамотной работы включает в себя обычно комплекс мероприятий, да и в целом в работе служб ИБ есть множество направлений, где одним из интереснейших направлений, без которого, на мой взгляд, трудно обойтись, является компьютерная криминалистика (Forensic или форенсика).
Если говорить простым языком, то форенсика позволяет понять кто/что делал/делало в определённое время в компьютерной системе, а её методы можно применять как на этапе расследования уже случившегося инцидента, так и для целей мониторинга, предотвращения будущих инцидентов. Внутри направление форенсики тоже делится на отдельные поднаправления в зависимости от того, что мы исследуем. Можно выделить форенсику настольных ОС, мобильных ОС, форенсику компьютерных сетей и форенсику умных устройств IOT.
Мой интерес и выбор когда-то пал на семейство настольных ОС Windows поскольку в корпоративных инфраструктурах эта система очень распространена. Поэтому в данной статье хочу поделиться некоторыми наработками, связанными с форенсикой реестра ОС Windows 8-11 и показать какие сведения из него полезны для ИБ служб при мониторинге или расследовании, а также где в нём их искать.
Прежде чем перейти к рассмотрению полезных сведений из реестра давайте чуть-чуть поговорим о том, что представляет из себя сам реестр непосредственно.
Структурно реестр Windows это иерархическая организация (в документации MS применяется термин «system-defined database»), в которой размещены для хранения параметры системы/программ/железа, но здесь также можно найти много интересного и для ИБшника. В этой иерархии можно выделить следующие части:
-
Разделы/они же Ветки реестра (Hives).
-
Ключи реестра (Keys).
-
Вложенные ключи реестра (Sub-Keys).
-
Параметры ключей и их значения (Values).
Кроме того Hives (ветки) реестра делятся на несколько групп и хранятся в виде файлов на системном диске (в основном в директории %systemdrive%\Windows\System32\config) вместе с ними находятся файлы транзакций .log (.log1, .log2 и т.д.) и файлы .sav для сохранения копий веток (здесь я просто упоминаю эти файлы, но на самом деле они достойны отдельной статьи и их разбора):
Ветка реестра |
Связанные файлы на диске |
HKEY_CLASSES_ROOT он же HKCR |
System, System.alt, System.log, System.sav |
HKEY_CURRENT_USER он же HKCU |
Ntuser.dat, Ntuser.dat.log (эти файлы лежат в папке пользователя), UsrClass.dat (находится в папке AppData\Local\Microsoft\Windows, которая внутри юзерской папки) |
HKEY_LOCAL_MACHINE он же HKLM |
Security, Security.log, Security.sav, Software, Software.log, Software.sav, System, System.alt, System.log, System.sav |
HKEY_USERS он же HKU |
Default, Default.log, Default.sav |
Для работы с реестром можно использовать стандартные средства самой системы. Это графическое приложение — %systemdrive%\Windows\regedit.exe или консольная утилита %systemdrive%\Windows\System32\reg.exe. Однако, это может быть не так уж удобно если требуется быстро интерпретировать данные, поэтому для более удобной работы могу порекомендовать использовать программу Eric’a Zimmerman’a — «Registry Explorer».
Параметры в реестре могут принимать следующие типы значений:
Наименование значения |
Описание |
REG_SZ |
Null-terminated строка в ASCII или Unicode |
REG_MULTI_SZ |
Последовательность из Null-terminated строк, например String\0String2\0String3\0LastStr\0\0 |
REG_DWORD |
Число длиной 32 бита |
REG_BINARY |
Бинарные данные |
REG_QWORD |
Число длиной 64 бита |
REG_EXPAND_SZ |
Null-terminated строка в ASCII или Unicode, которая представляет переменную окружения, например %PATH% |
Теперь имея общие представления о реестре перейдём к рассмотрению артефактов, т.е. интересных нам данных, их полезных значений, а также «пути» до них в реестре, где их можно достать «руками». Дополнительно следует учитывать, что у каждого ключа реестра есть штамп времени, когда крайний раз был изменен один из его параметров. Сами параметры, к сожалению, штампов времени не имеют (если они сами напрямую не содержат их в качестве значения), однако значения времени модификации ключей уже позволяют хотя бы на уровне гипотезы сузить временной разброс, когда происходило то или иное с набором параметров ключа. Штамп времени для ключа можно получить, например, после его экспорта в текстовый файл средствами regedit или через PowerShell.
Артефакт Last Visited MRU представляет из себя параметры вложенного ключа HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU и LastVisitedPidlMRULegacy. Эти значения описывают приложения, которые использовали стандартный диалог Windows для открытия, либо сохранения файлов. Если нажать правой кнопкой мыши по файлу в проводнике и выбрать «Открыть с помощью…», то предположительно для этой опции создаётся параметр со значением «OpenWith.exe». Если в приложении сохранение файла осуществляется в обход стандартного диалога Windows, то параметр в ключе реестра создан не будет. Этот артефакт позволяет узнать следующее:
-
На хосте точно запускалась та или иная программа определённым пользователем.
-
С помощью программы, возможно, по сети могли получить и сохранить файл, если у программы есть подобный функционал.
-
По какому конкретно пути был открыт файл (возможно для модификации) или сохранён. Название файла, к сожалению, получить нельзя.
Артефакт User Assist располагается в параметрах вложенного ключа реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist. В нём нас будет интересовать ещё два вложенных ключа:
-
{CEBFF5CD-ACE2-4F4F-9178-9926F41749EA}\Count
-
{F4E57C4B-2036-45F0-A9AB-443BCFE33D9F}\Count
Они содержат информацию об открывавшихся пользователем программах и ярлыках. Параметры записаны с помощью сдвига ROT-13 (каждая буква алфавита сдвинута на 13 символов вправо от изначальной позиции в алфавите), которое не работает для кириллицы, она отображается как есть. Это позволяет узнать следующее:
-
Конкретный пользователь на хосте запускал ту или иную программу.
-
Путь до запускавшегося исполняемого файла, при чём часть этого пути может быть задана как GUID значение в фугируных скобках, это отображение «известных» директорий, список у Microsoft опубликован здесь.
В операционных системах Windows 10 (до версии 1803), есть аналогичный UserAssist ключ в реестре, показывающий, что пользователь открывал определённые программы. Этот ключ называется RecentApps, он расположен в: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\RecentApps. Различие с UserAssist в большей полноте предоставляемых данных, для RecentApps кроме имени самого приложения ещё можно получить время, когда последний раз выполнялось это приложение в формате UTC, и количество запусков этого приложения (соответственно это будут значения параметров AppID, LastAccessTime, LaunchCount).
Артефакты использования офисного пакета MS Office могут быть полезны чтобы понять какие документы офиса мог открывать пользователь. Это пригодится например, если произошёл иницидент с заражением ВПО, т.к. документы могли содержать вредоносное активное содержимое, которое и могло выполниться при открытии. Сведения о последних открывавшихся документах можно получить из вложенного ключа реестра, который зависит от версии Office, ниже таблица для некоторых версий.
Версия офисного пакета |
Ключ реестра |
MS Office 2013 |
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Word\User MRU\<LiveId>\File MRU |
MS Office 2016 |
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\User MRU\\<LiveId>\File MRU |
MS Office 2010 |
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Word\User MRU\\<LiveId>\File MRU |
MS Office 2019 / Office 365 |
HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Word\User MRU\\<LiveId>\File MRU |
Артефакты использования USB дают понять какое внешнее оборудование могло подключаться. Можно выяснить имя устройства в системе, серийный номер, vendor ID, для определения производителя устройства (есть бесплатные сервисы, например этот), время последнего и первого подключения.
-
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USB (любые устройства кроме принтеров и накопителей).
-
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBPRINT (подключавшиеся принтера).
-
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\USBSTOR (подключавшиеся накопители информации).
-
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Portable Devices\Devices (любые устройства кроме принтеров и накопителей).
-
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices (подключавшиеся накопители информации).
-
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2 (подключавшиеся накопители информации).
-
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\AutoplayHandlers\KnownDevices (относится к опции AutoPlay, которая задаёт действия по умолчанию при подключении USB устройства. Параметр ContainerID относится скорее всего к вот этому, а параметр Label обычно даёт понять модель или производителя устройства).
Артефакты реестра называемые ShellBag дают понять какие папки открывались пользователем наиболее часто. Это полезно для анализа поведения пользователей при их работе в системе. ShellBag лежат во вложенном ключе реестра: HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\BagMRU или HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Bags.
Информацию связанная с историей выполнявшихся команд Win+R (Run) в ключе: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU может пригодится, например, при анализе нарушений политики ИБ пользователями, хотя простым пользователям лучше бы вообще обладать минимально необходимыми привилегиями и не иметь возможности выполнять лишних команд.
Сведения об открывавшихся определённым пользователем файлах по их расширениям можно найти во вложенном ключе реестра: HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
Полезными для анализа могут также быть следы, которая система сохраняет о взаимодействии пользователя с Проводником Windows. Можно узнать вводимые вручную пути и историю пользовательского поиска. За это отвечают следующие ключи:
-
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\WordWheelQuery (история поисковых запросов Проводника).
-
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths (вводившиеся вручную пути).
Продолжение следует…
Данная статья посвящена такому обширному и очень полезному разделу изучения операционной системы Windows это – системный реестр Windows. Здесь мы с Вами попробуем узнать основы реестра, а также я Вам покажу полезные и прикольные ветки реестра, которые Вам могут пригодиться.
Системный реестр – особая база данных в операционной системе Windows, в которой содержатся сведения об установленном оборудовании, программах и их параметрах, а так же информация об учетных записях пользователей операционной системы. Windows постоянно обращается к этой базе. Она необходима для нормальной и связанной работы всех аппаратных частей компьютера и программного обеспечения.
Реестр формируется в процессе установки windows, и в дальнейшем при каждом изменение (даже малом), это изменение вносится в реестр. Реестр сам по себе представляет собой несколько файлов:
- default
- sam
- security
- software
- system
которые располагаются обычно вот здесь C:\windows\system32\config
Реестр заменяет собой большинство текстовых ini-файлов, которые использовались в Windows 3.x, а также файлы конфигурации MS-DOS (например, Autoexec.bat и Config.sys). В наше время реестр это как бы «сердце» Windows, с помощью реестра можно настроить все что угодно т.к. вы, изменяя вид папки, вносите, сами того не подозревая, изменения в реестр.
Реестр представляет собой иерархическую базу данных, и он состоит из так называемых ветвей:
- HKEY_CLASSES_ROOT (HKCR) — в этой ветви содержатся сведения о расширениях всех зарегистрированных в системе типов файлов (хранящиеся здесь сведения отвечают за запуск необходимой программы при открытии файла с помощью проводника Windows);
- HKEY_CURRENT_USER (HKCU) — в этой ветви содержится информация о пользователе, вошедшем в систему в настоящий момент (здесь хранятся папки пользователя, цвета экрана и параметры панели управления);
- HKEY_LOCAL_MACHINE (HKLM) — в этой ветви содержится информация об аппаратной части ПК, о драйверах устройств, сведения о загрузке Windows;
- HKEY_USERS (HKU) — в этой ветви содержится информация о всех активных загруженных профилях пользователей данного ПК;
- HKEY_CURRENT_CONFIG (HKCC) — в этой ветви содержится информация о профиле оборудования, используемом локальным компьютером при запуске системы.
Разделы и подразделы — это, грубо говоря, папки в левом окне Regedit’а. Ключ реестра, или параметр — это некая переменная, которой присвоено определенное значение, проще говоря — это то, что мы видим в правом окне Regedit’а.
Куст (основной раздел, стандартный раздел, в английской документации — улей, от англ. hive) — это раздел реестра, отображаемый как файл на жестком диске. Куст является набором разделов, подчиненных разделов и параметров и имеет корни на верхнем уровне иерархии реестра.
Обычный пользователь думает что, запуская утилиту REGEDIT он видит реестр, но это не так, он видит редактор реестра, а сам реестр как я уже сказал, выглядит в виде файлов. Запустить редактор реестра можно следующим образом: Пуск->выполнить->regedit также можно использовать альтернативные редакторы реестра, которых в настоящий момент множество.
Все значения ключей реестра относятся к определенному типу данных:
- REG_BINARY — двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.
- REG_DWORD — целые числа размером в 4 байта. Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах.
- REG_EXPAND_SZ — строка данных переменной длины.
- REG_MULTI_SZ — многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами.
- REG_SZ — текстовая строка фиксированной длины.
- REG_FULL_RESOURCE_DESCRIPTOR — последовательность вложенных массивов, разработанная для хранения списка ресурсов железа или драйверов.
Если вы будете редактировать реестр, то лучше всего сначала сделать копию той ветки (Резервирование и восстановление веток реестра Windows), какую вы собираетесь изменить. А копию можно сделать следующим образом: встаньте на ту ветку и нажмите файл->экспорт и сохраните, а потом в случае чего можно восстановить с помощью импорта.
Полезные ветки реестра
Небольшую теорию теперь Вы знаете, теперь перейдем к практике. Я Вам расскажу основные (важные, на мой взгляд, ну или прикольные:)) ветки реестра и параметры.
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] такие параметры как «Shell» и «Userinit» которые равняются соответственно «Explorer.exe,» и «C:\\WINDOWS\\system32\\userinit.exe,» Эти параметры важны, потому что они отвечают за загрузку системы и если вы поймали какой-нибудь вирус типа «отправить смс» то в первую очередь проверяйте эти параметры;
- [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] Здесь у нас хранятся все те программы, которые грузятся вместе с системой, можете просто удалить те параметры, отвечающие за программы, которые вам не нужны при загрузке системы;
- Если вы хотите полюбоваться на культовый Синий Экран Смерти — Blue Screen of Death (BSOD) в любое время, то откройте раздел [HKLM_SYSTEM_CurrentControlSet\Servises\i8042prt\Parameters] и присвойте параметру типа DWORD CrashOnCtrlScroll значение 1. Удерживая правую клавишу Ctrl, нажмите два раза на клавишу Scroll Lock и Вы увидите этот синий экран. Внимание! если не знаете как делать то лучше не делайте;
- Можно настроить систему таким образом, чтобы при загрузке выводилось окно с вашим сообщением. Для этого откройте раздел HKLM\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon и создайте строковый параметр LegalNoticeCaption и введите вашу строку, которая будет выводиться в заголовке вашего сообщения, а для текста самого сообщения используйте строковый параметр LegalNoticeText в том же разделе. Теперь перед входом в систему появится созданное вами сообщение;
- Существует способ запретить использование USB-накопителей в Windows XP. Откройте раздел HKLM\SYSTEM\CurrentControlSet\Services\UsbStor и установите значение параметра Start равным 4. USB-диски после этого работать перестанут;
- Чтобы запретить пользователю возможность запуска Диспетчера задач Windows, установите значение параметра типа DWORD DisableTaskMgr в разделе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System равным 1.
Еще раз напоминаю «Делайте копию» при любом изменение!
Удачи!
Во многих своих статьях я указываю твики реестра и говорю об изменении каких-либо параметров, которые тем или иным образом изменяют конфигурацию операционной системы Windows. Насколько известно большинству пользователей персональных компьютеров, реестр играет основную роль в конфигурировании и управлении операционных систем, и является неким хранилищем общесистемных и пользовательских параметров. Несмотря на то, что многие уверены в том, что все конфигурационные данные хранятся именно в виде данных на жестком диске, на самом деле параметры системного реестра расположены в памяти самого компьютера и поддерживаются исполнительной системой, а также ядром самой операционной системы. Об этом моменте, как и о многих других, вы узнаете из контекста данной статьи.
Использование системного реестра
Итак, реестром Windows является иерархическая база данных, которая хранит конфигурационную информацию операционной системы, приложений, а также информации о пользователях и оборудовании. Структура данных для удобности использования предоставлена в древовидном формате. Большую часть параметров, содержащихся в реестре вы можете отконфигурировать вручную при помощи пользовательского интерфейса (например, в разделе HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsExplorer вы можете выполнять настройки в меню «Пуск», что также можете сделать из диалогового окна «Настройка меню «Пуск»», вызываемого по нажатии на кнопку «Настроить» в свойствах панели задач и меню «Пуск»), однако, для изменения некоторых дополнительных параметров никакого графического пользовательского интерфейса (GUI) не предусмотрено (например, для настройки диалога переключения между окнами вы можете воспользоваться параметрами из раздела HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerAltTab). Для настройки таких параметров удобнее всего использовать ряд утилит, предназначенных для модификации реестра. Операционная система Windows предоставляет такие штатные средства для работы с реестром, как утилита «Редактор реестра» (Regedit.exe), которая имеет удобный для работы графический интерфейс, а также утилиты командной строки Reg. При помощи этих обеих утилит вы можете просматривать, добавлять, удалять, сравнивать, а также копировать, составлять и восстанавливать отдельные копии элементов реестра. При работе с каждой из этих утилит стоит быть внимательными и осторожными, так как некорректное изменение параметров реестра чревато серьезными последствиями, из-за которых может даже понадобиться переустанавливать операционную систему.
Считываться конфигурационная информация системного реестра может в различные моменты работы операционной системы, начиная с модификации какого-либо конкретного параметра или раздела и заканчивая мониторингом конфигурационных параметров специфического программного обеспечения. Но всегда конфигурационные данные системного реестра считываются в следующих случаях:
- Во время загрузки операционной системы считываются некоторые параметры, которые определяют, какие драйвера для различных устройств необходимо загрузить;
- Во время загрузки ядра операционной системы, также используются некоторые параметры, которые позволяют настраивать поведение операционной системы, такие как диспетчер памяти, диспетчер процессов и пр.;
- При загрузке графической подсистемы и компонентов Windows, таких как Проводник Windows, Панель Управления и пр., из системного реестра считываются конфигурационные настройки и предпочтения текущего пользователя. К этой категории можно отнести расположение ярлыков на рабочем столе, цветовые схемы, различные надстройки и панели управления веб-браузера Internet Explorer и другие;
- Во время запуска любого приложения из реестра считываются общесистемные параметры, включая информацию о лицензировании, настройки для данного пользователя и прочее.
Помимо считывания данных о разделах и параметрах системного реестра, его данные также могут модифицироваться. Далее предоставлен список наиболее часто повторяющихся ситуаций, связанных с модификацией параметров и разделов реестра:
- Прежде всего, вся структура системного реестра, а также настройки, установленные по умолчанию, определяются версией, поставляемой на дистрибутиве операционной системы, которая копируется при установке новой системы;
- Разделы и параметры в реестре создаются при установке драйвера Plug and Play, которые определяют работу самого драйвера, а также в каком случае следует запускать драйвер для устройства;
- Во время установки всевозможных приложений, для их настроек по умолчанию создаются новые разделы с параметрами;
- Во время изменения параметров приложений или свойств самой операционной системы посредствам пользовательского интерфейса изменяются определённые параметры реестра.
Структура реестра
Все вышеперечисленные конфигурационные параметры содержатся в разделах реестра, которые размещены в корневом разделе, контролирующем, как и когда будут использоваться вложенные разделы и параметры. В каждом разделе могут быть созданы записи, называемые параметрами. Раздел может содержать любое количество параметров, значения которых могут быть предоставлены в любой возможной форме. Каждый раздел имеет свое уникальное имя, состоящее из одного или нескольких символов, не чувствительных к регистру. Все имена корневых разделов представляют Windows-описатели (Handlers) разделов (HEY), в связи с этим и было создано название ключевых разделов HKEY (HK). В следующей таблице вы можете увидеть названия разделов, их аббревиатур, а также краткое описание:
Имя корневого раздела | Аббревиатура | Описание |
HKEY_USERS | HKU | В текущем разделе содержатся подразделы, в которых хранится информация обо всех учетных записях на текущем компьютере |
HKEY_CURRENT_USER | HKCU | Данный раздел содержит данные, которые ссылаются на профиль пользователя, который вошел в систему на данный момент |
HK_LOCAL_MACHINE | HKLM | Этот раздел содержит конфигурационные параметры системного уровня |
HKEY_CLASSES_ROOT | HKCR | В текущем разделе расположены конфигурационные параметры для приложений и файлов, а также хранится регистрационная информация COM-объектов |
HKEY_CURRENT_CONFIG | HKCC | В данный раздел включены информационные сведения об используемом профиле оборудования |
HKEY_PERFORMANCE_DATA | HKPD | Этот раздел хранит некоторые сведения о производительности системы |
Таблица 1. Описание корневых разделов системного реестра Windows
В следующих подразделах вы найдете более подробную информацию о каждом корневом разделе реестра.
HKEY_USERS
В корневом разделе HKEY_USERS (HKU) системного реестра вы можете найти подразделы для каждого пользовательского профиля, а также регистрационную базу данных классов и подраздел HKU.DEFAULT, который связан с профилем, предназначенным для процессов, выполняемых под локальной системной учетной записью. Помимо этого, данный профиль используется службой Winlogon, скажем, для изменения параметров фона рабочего стола на экране входа в систему. Также, много системных служб запускается от имени учетной записи Local System, где применяется профиль по умолчанию. Для этого раздела недоступна информация, которая хранится в профиле пользователей, сопоставленных с другими учетными записями. Информация по каждому профилю операционной системы помещается в подраздел, имя которого соответствует идентификатору (SID) учетной записи. Сами конфигурационные данные, которые находятся в таких подразделах, включают в себя время последней загрузки данного профиля, двоичное представление этого идентификатора, а также путь к кусту профиля на жестком диске.
Еще некоторые службы используют учетную запись, которой необходимо аутентифицироваться на других компьютерах, расположенных в локальной сети, но не требуется членство в административных группах или привилегий, которые назначаются учетной записью Local System. Такая учетная запись называется Network Service и процессы, выполняемые под этой учетной записью, используют ее профиль, который расположен в разделе HKUS-1-5-20 и его файлы расположены в папке %SystemRoot%ServiceProfilesNetworkService.
Еще есть учетная запись Local Service, которая по своим особенностям очень похожа на Network Service, но к основному ее отличию можно отнести то, что эта учетная запись обращается только лишь к тем сетевым ресурсам, которые разрешают анонимный доступ. Такой профиль загружается в разделе HKUS-1-5-19 и физически хранится в папке %SystemRoot%ServiceProfilesLocalService.
HKEY_CURRENT_USER
В корневом разделе HKEY_CURRENT_USER (HKCU) вы найдете конфигурационные параметры программного обеспечения и пользовательские данные, зарегистрированные для текущего локального пользователя. Всегда подразделы HKCU и их параметры будут ссылаться только на профиль текущего пользователя, который на жестком диске можно найти в файле c:Users%username%Ntuser.dat. И каждый раз, при загрузке профиля пользователя, на подраздел в HKEY_USERS создается ссылка, соответствующая текущему вошедшему в систему пользователю. Во вложенных подразделах этого корневого раздела системного реестра вы можете настраивать:
- Сопоставления звуковых сигналов, согласно различным событиям (подраздел AppEvent);
- Параметры внешнего вида окна командной строки (подраздел Console);
- Конфигурационные параметры для настроек панели управления текущего пользователя (подраздел Control Panel, в котором вы можете настроить дополнительные параметры существующих экранных заставок, оформление вашего рабочего стола, настройки специальных возможностей, компонента «Часы, язык и регион», а также параметры клавиатуры и мыши);
- Указать пути переменных окружений для текущего пользователя (подраздел Environment);
- Информация о знаках EUDC для конечного пользователя (подраздел EUDC);
- Конфигурационные параметры для учетной записи Windows Mail (подраздел Identities);
- Изменить параметры раскладки клавиатуры (подраздел Keyboard Layout);
- Указывать имена и всевозможные параметры подключенных к этому текущему пользователю сетевых дисков (подраздел Network);
- Изменять параметры подключенных принтеров (подраздел Printers);
- Управлять настройками удаленного использования данного компьютера (подраздел RemoteAccess);
- Устанавливать всевозможные настройки для штатного программного обеспечения, а также приложений, разработанных третьими сторонами (подраздел Software);
- Изменять некоторые системные параметры (подраздел System);
- Указывать переменные окружения, отвечающие за имя пользователя, расположение папки AppData и прочее (подраздел Volatile Environment);
- Настраивать группы главного меню, которые являются специфическими для каждого пользователя.
HKEY_LOCAL_MACHINE
Корневой раздел HKEY_LOCAL_MACHINE (HKLM) содержит свои подразделы с параметрами конфигурации, относящиеся к общесистемной конфигурации текущего компьютера, то есть конфигурационных данных, которые не настраиваются для всех пользователей. Стоит обратить внимание на то, что системный реестр 64-разрядных версий операционных систем Windows состоит из 32- и 64-битных разделов реестра, где у большинства 32-разрядных разделов реестра названия разделов идентичны тем, которые указаны в 64-разрядном разделе, и наоборот. По умолчанию, 64-разрядная версия редактора реестра (утилита Regedit.exe), которая входит в состав 64-разрядных операционных систем Windows отображает как 64, так и 32-разрядные разделы. В 64-разрядной версии утилиты «Редактор реестра», 32-разрядные разделы расположены здесь: HKEY_LOCAL_MACHINESoftwareWOW6432Node. Раздел HKLM содержит следующие основные подразделы:
BCD. Данный подраздел содержит информацию о конфигурационной базе данных загрузки (Boot Configuration Database BCD). Эта база данных заменяет файл Boot.ini, который использовался в операционных системах, вышедших до Windows Vista, и предоставляет больше возможностей для конфигурации данных о загрузке ОС. Каждая запись в текущем подразделе, которая была сделана во время установки операционной системы или во время изменения параметров загрузка средствами командной строки, хранится в дочернем подразделе Objects или в качестве самого объекта, на который ссылается загрузочная запись в виде GUID, или в подразделах с названиями в виде цифр. Значения, связанные с каждым параметром подразделов соответствуют параметрам утилиты bcdedit.exe командной строки.
COMPONENTS. В текущем подразделе содержится информация, которая относится к компоненту на основании обслуживания стека (Component Based Servicing CBS). Данный стек включает в себя всевозможные файлы и ресурсы, которые являются частью образа установщика Windows. Параметры CBS API, которые расположены в данном разделе, предназначены для определения установленных компонентов и их конфигурации. Используется же вся эта информация каждый раз, когда компоненты устанавливаются, обновляются или удаляются в индивидуальном, либо в пакетном режимах.
HARDWARE. Этот подраздел включает в себя описание аппаратного обеспечения для локальной системы, а также все сопоставления драйверов с физическими устройствами. Здесь вы можете найти конфигурационные параметры для всех устройств, которые присутствуют в «Диспетчере устройств». В разделе HARDWARE можно отметить четыре основных подраздела. Подраздел ACPI содержит информацию о конкретных возможностях ACPI на этом компьютере. Подраздел Descriptions содержит описания центральных процессоров, процессоров для операций с плавающей точкой, а также многофункциональных устройств компьютера. Подраздел DeviceMap сопоставляет устройства драйверам. В подразделе ResourceMap имеются три основных подраздела. Первый предназначен для уровня аппаратных абстракций, таких как HAL, применяемый при отслеживании найденных устройств. Второй — для Plug-and-Play Manager, то есть для записи устройств, про которые известно. А третий — для отображения объема оперативной памяти. В зависимости от аппаратной конфигурации данный раздел может содержать дополнительные подразделы.
SAM. Подраздел SAM (Security Accounts Manager) раздела HKLM включает в себя такую информацию о локальных пользователях и группах, как сопоставления с доменом Active Directory, определения групп, а также пароли. Несмотря на то, что на контроллерах домена Active Directory в базе данных хранятся общедоступные параметры и сведения о пользователях, компьютерах и доменных группах, SAM-файл является базой учетных записей пользователей, содержащей сведения об уровнях пользовательских привилегий, паролей и т.п., дескриптор защиты которой сконфигурирован так, что к нему не имеет доступ даже администратор. Поэтому по умолчанию вся ветвь подраздела SAM закрыта от просмотра. Вспомогательными файлами для данного раздела являются файлы Sam, Sam.log и Sam.sav.
SECURITY. С данным подразделом связаны данные, которые имеют отношение к общесистемным политикам безопасности. Помимо этого, подразделы SAM и SECURITY связаны специально для хранения информации о правах, назначенных пользователям в подразделе HKLMSECURITYSAM. Просмотр данного раздела многого не даст (по умолчанию дескриптор защиты установлен так, что доступ к этому разделу есть только у учетной записи System), так как данные, которые в нем содержаться, не документированы, а все пароли тщательно зашифрованы. Вспомогательными файлами для данного раздела являются файлы Security, Security.log и Security.sav.
SOFTWARE. Текущий подраздел можно назвать в какой-то степени корнем всей структуры подразделов HKLM, так как это именно то место, где операционная система Windows хранит общесистемную конфигурационную информацию приложений и компонентов, которые не принимают участие в загрузке самой системы. Кроме того, при установке программного обеспечения именно в этом разделе создаются подразделы, предназначенные для сохранения своих общесистемных настроек. Большая часть данных о настройках пользовательского интерфейса хранится в подразделе HKLMSoftwareMicrosoftWindowsCurrentVersion. Здесь также вы можете с легкостью найти подразделы, предназначенные для восстановления системы, шифрующей файловой системы, службы терминалов и многое другое. Вспомогательными файлами для данного раздела являются файлы Software, Software.log и Software.sav.
SYSTEM. В этом, последнем, разделе HKLM находится общесистемная конфигурационная информация, которая выполняется в последнюю очередь после завершения загрузки операционной системы. К таким данным можно отнести управляющие настройки, список драйверов и запускаемых служб, которые применяются при последней удачной загрузке, также называемой последней конфигурацией, так как для запуска операционной системы она критична и Windows всегда делает ее копию. Одним из основных подразделов HKLMSYSTEM является подраздел CurrentControlSet, который указывает на набор управляющих настроек, используемых на данный момент операционной системой. Вспомогательными файлами для данного раздела являются файлы System, System.alt, System.log и System.sav.
HKEY_CLASSES_ROOT
Этот корневой раздел, в какой-то степени, можно назвать подразделом HKEY_LOCAL_MACHINESoftwareClasses, содержащий параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Он включает в себя сопоставления расширений файлов, а также идентифицирующие данные COM-классов. Здесь для каждого зарегистрированного типа файлов, в соответствующих подразделах, указаны сведения, обеспечивающие выполнение необходимой программы при открытии файла. В свою очередь, в подразделе HKEY_CURRENT_USERSoftwareClasses, параметры определяют регистрационные данные классов расширений файлов, которые относятся только к текущему пользователю и физически расположены в файле c:Users%имя_пользователя%AppDataLocalMicrosoftWindows UsrClass.dat. Данные этого источника также включены в раздел HKCR, но данные, которые были добавлены или изменены непосредственно из этого раздела будут сохранены операционной системой в разделе HKEY_LOCAL_MACHINESoftwareClasses. Стоит также обратить внимание на то, что для каждого пользователя локального компьютера такие данные являются специфическими, что не позволяет непривилегированному пользователю изменять или удалять разделы в HKCR, а также указывать специфические настройки для определенных типов файлов конкретным пользователям.
HKEY_CURRENT_CONFIG
Если корневой раздел HKEY_CLASSES_ROOT можно назвать ссылкой на разделы HKEY_LOCAL_MACHINESoftwareClasses и HKEY_CURRENT_USERSoftwareClasses, то данный раздел является обыкновенной ссылкой на текущий профиль оборудования, расположенный в разделе HKEY_LOCAL_MACHINESystemCurrentControlSetHardware ProfileCurrent. Именно при помощи этого раздела реестра вы можете управлять возможными настройками системных драйверов для существующих аппаратных устройств. Несмотря на то, что можно указать профиль, который будет активен при следующей загрузке операционной системы, настройки HKCC будут всегда применяться для активного профиля.
HKEY_PERFORMANCE_DATA
Известно, что при обнаружении возможных проблем с аппаратной конфигурацией и всей производительностью системы в целом, рекомендуется использовать оснастку «Системный монитор» с соответствующими счетчиками производительности. В операционных системах Windows системный реестр также относится к механизму, обеспечивающему доступ ко всем значениям счетчиков производительности, используемых для мониторинга системы. Основным преимуществом в использовании счетчиков производительности средствами реестра является возможность мониторинга удаленных компьютеров без особых затрат, так как API-функции реестра позволяют получить быстрый доступ к удаленному реестру. В связи с тем, что в данном разделе хранятся не конфигурационные параметры, а только ссылки на соответствующие источники данных счетчиков производительности, доступ к разделу HKPD средствами утилиты «Редактор реестра» запрещен. Информацию из данного раздела реестра вы можете получить при помощи функции PDH (Performance Data Helper), которая предоставляется библиотекой Pdh.dll (Performance Data Helper API), компоненты которой вы можете увидеть на следующей иллюстрации:
Рис. 1. Архитектура доступа к счетчикам производительности
Значение параметров реестра Windows
Как вы уже поняли, разделы системного реестра можно назвать контейнерами, которые содержат конфигурационную информацию. Информация такого рода содержится в параметрах, которые вполне можно сравнить с файлами, расположенными в папках на диске, откуда, собственно, и заимствовано соглашение об их именовании. Соответственно, вы можете дать одинаковые названия множеству параметров, но только в том случае, если эти параметры расположены в разных разделах или подразделах. Каждый параметр реестра состоит из таких составляющих, как имя параметра, тип данных, а также самого значения. С соблюдением правильных типов данных добавляемых вами параметров нужно быть крайне внимательными и осторожными. Используйте именно тот тип данных, который указан в источнике самого твика, так как в противном случае последствия могут быть весьма существенными. Начиная с версии операционной системы Windows XP, максимальная длина имени параметра не должна превышать 16383 символов. В общей сложности насчитывается 15 типов данных, но в большинстве случаев используются только параметры типа REG_DWORD, REG_BINARY, а также REG_SZ. Все типы данных параметров реестра описаны в следующей таблице:
Название типа данных | Тип параметра | Описание |
Двоичный параметр | REG_BINARY | Содержит необработанные двоичные данные произвольной длины. В виде таких двоичных данных хранится большинство сведений об аппаратных компонентах. Эти данные вы можете просматривать в двоичном или шестнадцатеричном виде при помощи редактора реестра. |
Параметр DWORD | REG_DWORD | Включает в себя параметры, которые представлены в виде значения, длина которого составляет 4 байта, то есть 32-разрядное целое. Используется такой тип данных для хранения параметров драйверов устройств, служб, а также системных настроек, причем, в редакторе реестра его значение можно просматривать в двоичном, шестнадцатеричном или десятичном формате. |
Параметр DWORD | REG_DWORD_BIG_ENDIAN | То же относится к параметру DWORD, где значение представляет собой 32-разрядное целое, но здесь первым является старший байт; эквивалентно REG_DWORD |
Параметр DWORD | REG_DWORD_LITTLE_ENDIAN | Данный тип тоже относится к параметру DWORD, где значение представляет собой 32-разрядное целое, но здесь первым является младший байт; эквивалентно REG_DWORD |
Расширяемая строка данных | REG_BINARY | Содержит необработанные двоичные данные произвольной длины. В виде таких двоичных данных хранится большинство сведений об аппаратных компонентах. Эти данные вы можете просматривать в двоичном или шестнадцатеричном виде при помощи редактора реестра. |
Параметр DWORD | REG_EXPAND_SZ | Представляет собой Unicode-строку данных переменной длины, которая может включать переменные окружения. Эти переменные при использовании данных обрабатываются конкретной программой или службой. |
Двоичный параметр | REG_FULL_RESOURCE_DESCRIPTOR | Также как и REG_RESOURCE_LIST является последовательностью вложенных массивов, используемых только физическими устройствами, которые расположены в разделе HardwareDescription. |
Ссылка | REG_LINK | Символическая ссылка в кодировке Unicode, которая позволяет разделу ссылаться на другой раздел или параметр. Ссылки используют три из шести корневых раздела реестра, которые не записываются на диск, а создаются динамически при каждой загрузке операционной системы |
Многострочный параметр | REG_MULTI_SZ | Массив многострочного текста в Unicode кодировке, содержащий списки или другие записи, которые удобны для чтения и могут разделяться запятыми, пробелами и другими символами. В этом типе данных может храниться список IP-адресов, а также другая информация. |
Отсутствует | REG_NONE | Данные этого параметра являются нетипизированными, т.е. они не имеют определенного типа. Обычно данные такого типа записываются самой операционной системой или приложениями и в редакторе реестра они отображаются в виде двоичного параметра в шестнадцатеричном формате. |
Параметр QWORD | REG_QWORD | Данные этого типа представляются в виде 64-разрядного целого. Параметры с этим типом данных в оснастке «Редактор реестра» отображаются в виде двоичного параметра. |
Параметр QWORD | REG_QWORD_BIG_ENDIAN | То же относится к параметру REG_QWORD и подобно REG_DWORD_BIG_ENDIAN, значение представляет собой 64-разрядное целое, но здесь первым является старший байт; эквивалентно REG_QWORD |
Параметр QWORD | REG_QWORD_LITTLE_ENDIAN | Подобно параметру REG_DWORD_LITTLE_ENDIAN, где значение представляет собой 64-разрядное целое, но здесь первым является старший байт; эквивалентно REG_QWORD |
Двоичный параметр | REG_RESOURCE_LIST | Включает последовательность вложенных массивов, предназначенных для хранения описания аппаратного ресурса, используемого драйверами или управляемыми ими физическими устройствами. Данные такого типа операционная система держит в разделе ResourceMap, которые отображаются в виде двоичного параметра в шестнадцатеричном формате. |
Двоичный параметр | REG_RESOURCE_REQUIREMENTS_LIST | Как и типы данных REG_RESOURCE_LIST и REG_FULL_RESOURCE_DESCRIPTOR включает в себя последовательность вложенных массивов, но, в отличие от вышеперечисленных типов данных, служит для хранения списка драйверов аппаратных ресурсов, которые могут быть использованы определенным драйвером устройства или управляемым им физическим устройством. Большую часть из этого списка операционная система записывает в раздел ResourceMap. |
Строковый параметр | REG_SZ | Значением такого параметра выступает текстовая строка в кодировке Unicode фиксированной длины |
Таблица 2. Типы данных параметров реестра
Также стоит отметить то, что для повышения эффективности использования системного реестра, в реестр заносится имя внешнего файла, где хранятся значения, превышающие размер в 2048 байт. Общий размер всех параметров раздела не должен превышать 64 КВ.
Продолжение следует.