Что такое реестр и как с ним работать? Реестр Windows для начинающих. Базовые понятия, мониторинг и уход

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

    Иерархическая организация данных приложения позволяет сохранять свои параметры произвольным образом;

    Поддерживает многопользовательскую работу, он разделен на две части, в одной из которых хранятся параметры локального компьютера (HKEY_LOCAL_MACHINE), а в другой - пользовательские параметры (HKEY_USERS);

    Ограничение доступа к любым разделом реестра;

    Хранение данные разных типов, в том числе двоичных DWORD, строк и мультистрок.

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

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

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

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

Реестр Windows 2000 состоит из пяти предопределенных корневых разделов и одного предопределенного - для хранения данных о производительности системы (HKEY_PERFORMANCE_DATA). Этот предопределенный раздел содержит данные о производительности, передаваемые ему системой, службами и приложениями. Он не содержит опреде­ленных физических значений, скорее наоборот, фун­кции реестра предоставляют метод динамического по­лучения информации о производительности системы. Доступа к нему из программы Regedit нет. Раздел HKEY_DYN_DATA указывает на ту часть раздела HKEY_LOCAL_ MACHINE, которая нужна для Plug & Play устройств. При добавлении или удалении устройств из системы этот раздел изменяется.

При рассмотрении реестра рассматриваются разделы, указанные в таблице 6.1, как основные разделы реестра.

Все подразделы реестра входят в раздел HKEY_LOCAL_MACHINE либо HKEY_USERS. Такая структура реестра обусловлена необходимостью хранения информации о параметрах, специфич­ных для компьютера, с одной стороны, и о параметрах, специфичных для пользователя, с другой. Остальные три предопределенных раздела - это вир­туальные закладки для частей разделов HKEY_LOCAL_MACHINE и HKEY_USERS. Так, данные подраздела HKEY_LOCAL_MACHINE\Software\Classes можно обна­ружить в разделе HKEY_CLASSES_ROOT.

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

Таблица 6.1 . Предопределенные разделы системного реестра Windows 2000

Название раздела

Описание

HKEY_LOCAL_MACHINE

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

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

HKEY_CURRENT_USER

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

HKEY_CLASSES_ROOT

Включает все типы соответствий файлов, а также информацию об OLE и ярлыках и содержит сведения о зарегистрированных СОМ-компонентах и связанных с оболочкой (shell) ассоциациях.

HKEY_CURRENT_CONFIG

Определенная системой закладка, или псевдоним, для HKEY_LOCAL_MACHINE\System\CurrentControlSet\Hardware Profiles\Current название которого соответствует имени пользователя, работающего в данный момент. Здесь хранятся сведения о конфигура­ции оборудования.

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

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

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

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

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

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

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

Ну и что?

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

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

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

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

Интерфейс

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

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

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

INFO

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Define HBASE_BLOCK_SIGNATURE 0x66676572 typedef struct _HBASE_BLOCK { ULONG Signature; //0x66676572 ULONG Sequence1; ULONG Sequence2; LARGE_INTEGER TimeStamp; .... } А вот и сигнатура «regf»…

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

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

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

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

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

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

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

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

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

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

WWW

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

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

Разделы системного реестра

Основой системного реестра является древовидный список (практически одинаковый во всех версиях Windows).
Главной веткой (категорией) реестра является HKEY_CLASSES_ROOT (HKCR). Здесь размещается информация о виде файлов, зарегистрированных в Windows. Содержимое этой ветки используется, когда открываются файлы двойным нажатием мышкой или при выполнении drag-and-drop.
В HKKEY_CURRENT_USER (HKCU) находятся опции пользовательской оболочки — «Пуск», «Рабочий стол» и другое (относятся к операционной системе).
Ветка HKEY_LOCAL_MACHINE (HKLM) используется для хранения данных о программных продуктах, которые установлены на компьютере. Также это могут быть драйвера и настройки. Еще здесь используются такие сведения, как шины компьютера, общее количество памяти, перечень загруженных на данный момент драйверов, информация о загрузке Windows.
Раздел HKEY_USER (HKU) , если сравнивать с (HKCU), хранит опции Windows, единые для любого пользователя.
В HKEY_CURRENT_CONFIG (HKCC) можно увидеть информацию об используемом на локальном компьютере оборудовании, когда запускается операционная система. Профили позволяют находить драйвера устройств определенных рабочих сеансов.
Когда инсталлируются различные утилиты, в реестре создаются новые записи. В некоторых случаях при удалении приложений с жесткого диска компьютера ключи остаются в реестре. Иногда это делается намеренно. Если вы захотите повторить установку программы, не придется ее снова настраивать, так как опции уже будут сохранены в реестре. Случается, что ключи удаленного приложения находятся в реестре из-за неправильной работы утилиты очистки.
При большом количестве подобных записей (об удаленных приложениях) будет затрачиваться много времени на просмотр содержимого системного реестра.

Как управлять реестром?

Для управления реестром и внесения изменений предусмотрен специально разработанный инструмент, который можно найти в Windows\System32. Файл называется regedt32 или regedit.exe . Большое количество других редакторов реестра от сторонних разработчиков также справляются с этой задачей. Рассматривать их можно очень долго, поэтому не будем.
Для запуска встроенного в ОС Windows редактора реестра в меню «Выполнить» нужно указать regedit и использовать «Ввод». Таким образом, появится окошко редактора реестра. При работе с реестром, нужно быть максимально осторожным. Если удалить или повредить файлы системы, Windows может перестать запускаться. Однако всего бояться — то же не выход! Не следует изменять информацию реестра, когда неизвестно, что она означает и какие могут быть последствия. Перед тем, как приступать к работе, создайте контрольную точку восстановления Windows,. Таким образом, вы обезопасите себя от возможных проблем с реестром.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HKEY_CLASSES_ROOT (HKCR)

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

HKEY_CURRENT_USER (HKCU)

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

HKEY_LOCAL_MACHINE (HKLM)

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

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

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

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

SAM

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

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

SECURITY

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

SYSTEM

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

SOFTWARE

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

HKEY_USERS (HKU)

HKEY_CURRENT_CONFIG (HKCC)

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

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

HKEY_PERFORMANCE_DATA

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

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

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

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

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

.REG-файлы

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

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

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

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

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

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

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

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

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

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

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

Реестр Windows - вводная и термины

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

Преимуществом использования реестра является возможность изменять такие параметры, к которым Вы не доберётесь с помощью окон Windows .

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

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

Что делает реестр Windows?

Вообще механизм его работы достаточно прост. При установке программы (или изменении какого-либо параметра Windows в любом из меню настроек) система сама разыскивает нужные параметры и вносит коррективы в одно из значений реестра.

Например, сие происходит при удалении приложений с помощью инструмента «Установка и удаление программ » («Панель управления »).

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

Вот почему так важно грамотно удалять приложения, своевременно очищать и ухаживать за системой, о чем я неоднократно писал в своих статьях - " " или, скажем, " ".

Хотите знать и уметь, больше и сами?

Мы предлагаем Вам обучение по направлениям: компьютеры, программы, администрирование, сервера, сети, сайтостроение, SEO и другое. Узнайте подробности сейчас!

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

regedit - смотрим на реестр Windows своими глазами

Чтобы войти в Windows -средство для правки реестра откройте , затем в появившемся окне напишите и нажмите Enter .

Перед Вам появится штука (она и есть встроенный Windows -редактор реестра), в которой Вы сможете посмотреть, что же представляет собой сие чудо, о котором я веду речь в этой статье.

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

Папки раздела называются ключами, а содержимое папок, которое отобразится справа, – значениями.

Зачем может быть нужен реестр Windows

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

Также стоит отметить, что изменения вступают в силу тогда, когда вы их сделали. Реестр Windows – это не документ Word , в котором вы подтверждаете или отменяете внесение поправок в настройки, поэтому ни в коем случае не изменяйте неизвестные вам параметры.

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

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

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

Чем и как редактировать реестр

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

Поэтому, стоит использовать лишь проверенные приложения или инструменты системы. Я предпочитаю встроенный в Windows инструмент речь о котором уже шла чуть выше (и будет идти чуть ниже:)).

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

Главное окно управления программы практически не отличается по внешнему виду от привычного пользователю Windows проводника.

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

Для этого выделите нужное значение, нажмите Избранное - Добавить в избранное , введите название и нажмите кнопку «ОК ». Эта функция очень пригодится, если вам нужно регулярно вносить изменения в одну или несколько опций.

За что отвечают категории реестра и что можно в нём делать

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

Я приведу несколько простейших примеров по работе с реестром дабы Вам были понятны основы:

Очищаем историю

  • Несмотря на то, что список сайтов, которые Вы посетили c помощью Internet Explorer можно удалить вручную, они все таки всплывут, когда Вы будете вводить в адресную строку схожие варианты;
  • Избавиться от этой истории можно с помощью сторонних программ или по средством правки реестра. Открываем и проходим по пути «HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs »;
  • Зайдя туда, в правой части редактора Вы увидите список адресов, которые Вы можете удалить путём выделения и нажатия на кнопку "Удалить " (предварительно тыкнув правой кнопкой мышки на том, что мы хотим удалить).

Ну или например.

Блокируем диспетчер задач

С помощью реестра можно разблокировать или заблокировать диспетчер задач:

  • Откройте и перейдите к «HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\ »;
  • Если в левой части, ниже «Policies », Вы не обнаружите директорию «System » щелкните правой кнопкой мыши по «Policies » и выберите пункт «Создать », а потом «Раздел »;
  • Чуть ниже появится новая папка, которую вам надо переименовать в «System »;
  • Далее, в окне с параметрами (это справа), тыкните правой кнопкой мышки, выберите Создать -> Параметр DWORD и задайте ему имя DisableTaskMgr ;
  • Тыкните по нему правой кнопкой мыши и выберите пункт «Изменить »;
  • В строке ввода значения поставьте 1 для выключения (или 0 для включения) диспетчера задач, а затем установите переключатель «Система исчисления » на «Десятичная »;
  • После этого, при попытке вызова диспетчера задач будет появляться « » (или наоборот это сообщение исчезнет, если он был заблокирован).

Осторожность при применении

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

Дабы создать точку восстановления, нажмите "Пуск - Выполнить - msconfig - Восстановление системы ". В открывшемся окне вам необходимо выбрать «Создать точку восстановления », после чего, следуя подсказкам, Вы без проблем сохраните нынешнее состояние ОС. Восстановить прежнее состояние можно также с помощью этого меню, воспользовавшись соседним пунктом.

Дабы сделать резервную копию ветки реестра\реестра целиком, запустите , выделите нужный раздел\ветку\папку, нажмите "Файл - Экспорт ", а затем выберите куда сохранить файл .reg .

Дабы потом воспользоваться этой резервной копией либо нажмите Файл - Импорт , либо просто надавите мышкой на файл и подтвердите кнопочкой "Да " добавление данных в реестр Windows .

Если Вы сохраняете какую-то ветку, то она сохраняется (и импортируется, соответственно, тоже) с подпапками и со всеми значениями в ней.

Послесловие

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

Опять же я не могу не упомянуть о

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то