Основные разделы реестра windows. Что такое реестр Windows

Сегодня мы попробуем залезть в реестр 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 Registry - системный реестр) - это иерархическая (древовидная) база данных, содержащая записи, определяющие параметры и настройки операционных систем Microsoft Windows. Реестр в том виде, как он выглядит при просмотре редактором реестра, формируется из данных, источниками которых являются файлы реестра и информация об оборудовании, собираемая в процессе загрузки. В описании файлов реестра на английском языке используется термин "Hive" . В документации от Microsoft этот термин переводится как "Куст" .

Основные файлы, отвечающие за формирование реестра

Файлы реестра создаются в процессе установки операционной системы и хранятся в папке:

%SystemRoot%\system32\config (обычно C:\windows\system32\config ).

Для операционных систем Windows это файлы с именами:

system
software
sam
security
default
components
bcd-template

В операционных системах Windows Vista, Windows 7, Windows8, , , файлы реестра располагаются в каталоге \Windows\system32\config и имеют такие же имена, однако в этих операционных системах добавился новый раздел реестра для хранения (Boot Configuration Data ) с именем BCD00000000 . Файл с данными этого раздела имеет имя bcd и находится в скрытой папке Boot активного раздела (раздела, с которого выполняется загрузка системы). Обычно, при стандартной установке Windows, создается активный раздел небольшого размера (от 100 до 500 мегабайт в зависимости от операционной системы), который скрыт от пользователя и содержит только служебные данные для загрузки системы – загрузочные записи, менеджер загрузки bootmgr , хранилище конфигурации загрузки BCD , файлы локализации и программы тестирования памяти. Расположение куста bcd зависит от того, как сконфигурирован загрузчик системы при ее установке, и может находиться на том же разделе, где и каталог Windows.

Место расположения файлов реестра в любой версии Windows можно просмотреть с помощью редактора реестра, в разделе:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\hivelist

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

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

Реестр Windows имеет древовидную структуру и состоит из 5 основных разделов реестра:

HKEY_LOCAL_MACHINE (HKLM) - самый большой раздел реестра. В нем сосредоточены все основные настройки операционной системы, а также аппаратного и программного обеспечения компьютера. Информация, содержащаяся в этом разделе, применяется ко всем пользователям, регистрирующимся в системе.

HKEY_ CLASSES_ ROOT (HKCR) - содержит ассоциации между приложениями и типами файлов (по расширениям файлов). Кроме того, в этом разделе находится информация о зарегистрированных типах файлов и объектах COM и ActiveX. Кроме HKEY_ CLASSES_ ROOT эти сведения хранятся также в разделах HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER . Раздел HKEY_LOCAL_MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes , переопределяют принятые по умолчанию и относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников.

HKEY_USERS (HKU) - содержит настройки среды для каждого из загруженных пользовательских профилей, а также для профиля по умолчанию. В HKEY_USERS находится вложенный раздел \Default , а также другие подразделы, определяемые идентификатором безопасности (Security ID, SID ) каждого пользователя.

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

Этот раздел дублирует информацию в HKEY_USERS\user SID , где user SID - идентификатор безопасности пользователя, зарегистрировавшегося в системе на текущий момент (узнать SID текущего пользователя можно, набрав в командной строке whoami /user ).

HKEY_CURRENT_ CONFIG (HKCC) - cодержит настройки для текущего аппаратного профиля. Текущий аппаратный профиль включает в себя наборы изменений, внесенных в стандартную конфигурацию устройств, заданную в подразделах Software и System корневого раздела HKEY LOCAL_MACHINE . В HKEY_CURRENT_CONFIG отражаются только изменения. Кроме того, информация этого раздела находится в HKEY_LOCAL_MACHINE\System\CurrentControlSet\HardwareProfiles\Current .

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

Основные типы данных, применяемые в реестре

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

REG_SZ - Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных.

REG_EXPAND_SZ - Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения, например, используется для записи переменных окружения.

REG_MULTI_SZ - Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL.

REG_BINARY - Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате.

REG_RESOURCE_LIST - Список аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE .

Также иногда можно встретить такие типы данных реестра:

REG_RESOURCE_ REQUIREMENTS_LIST - Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE .

REG_FULL_RESOURCE_ DESCRIPTOR - Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE .

REG_QWORD - 64-х разрядное число.

REG_DWORD_ LITTLE_ENDIAN - 32-разрядное число в формате «остроконечников» (little-endian), эквивалент REG_DWORD .

REG_DWORD_BIG_ ENDIAN - 32-разрядное число в формате «тупоконечников» (big-endian).

REG_QWORD_LITTLE_ ENDIAN - 64-разрядное число в формате «остроконечников». Эквивалент REG_QWORD .

REG_NONE - Параметр не имеет определенного типа данных.

Взаимодействие реестра с операционной системой

При запуске компьютера распознаватель аппаратных средств (hardware recognizer ) помещает в реестр список обнаруженных им устройств. Обычно распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром операционной системы Ntoskrnl.exe

При старте системы ядро системы извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (напр. номер версии).

В процессе загрузки системы драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Драйвер устройства сообщает об используемых им системных ресурсах, включая аппаратные прерывания (IRQ ) и каналы доступа к памяти (DMA ), чтобы система могла включить эти данные в реестр. Кстати, реестр позволяет создавать несколько аппаратных профилей. Аппаратный профиль (hardware profile ) представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. По умолчанию системой создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере.

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

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

При администрировании системы. Когда пользователь вносит изменения в конфигурацию системы с помощью средств администрирования системы (например при помощи Панели управления или оснастки MMC ), все изменения сразу отражаются в системном реестре. По сути средства администрирования представляют собой наиболее удобные и безопасные средства модификации реестра. Кстати, к средствам администрирования можно отнести и редактор реестра (regedit.exe ), ведь все изменения в систему можно вносить непосредственно правкой реестра.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

HKEY_LOCAL_MACHINE\Software\WOW6432Node

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

Отличного Вам дня!

Итак, сегодня разговор пойдёт о теме, казалось бы, не очень важной, но, по сути, очень нужной каждому пользователю 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.