Рассылка закрыта
При закрытии подписчики были переданы в рассылку "Всё о работе в Интернет" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Секреты Windows: статьи о реестре, rundll32.exe, программах Недокументированные возможности Windows XP.Реестр. Часть 13
Другие наши рассылки:
Новости нашего сайта:
Продолжение, начало в выпусках: 21 23 26 28 30 32 34 36 38 40 42 44 Книга "Недокументированные возможности Windows XP. Библиотека пользователя", Глава 2. Реестр Windows XP. Часть 11. HKEY_LOCAL_MACHINE\SYSTEM Данная ветвь реестра является наиболее важной ветвью для загрузки системы. Если данная ветвь будет повреждена, то с большой долей вероятности вы больше не сможете войти в систему. Поэтому, наверное, стоит несколько слов сказать и о структуре данной ветви реестра. Структура данной ветви большей частью статична. То есть, не зависимо от того, как будет называться новый подраздел, добавляемый к содержимому подразделов данной ветви, параметры, которые он должен содержать, предопределены программистами Microsoft. Вообще, данная ветвь реестра предназначена для хранения сведений обо всех драйверах, службах и сервисах, установленных в системе. Но кроме этого данная ветвь реестра содержит критически важные сведения настройки самой системы. О примере таких сведений можно прочитать в последней главе данной книги. Ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM может содержать в себе следующие подразделы:
ControlSetNNN
А теперь давайте подробней поговорим о самых важных подразделах ветви реестра HKEY_LOCAL_MACHINE\SYSTEM. И первыми из таких подразделов будут подразделы формата CONTROLSETNNN и подраздел CURRENTCONTROLSET. Об их важности говорит уже то, что, несмотря на то, что в системе может содержаться несколько подразделов формата CONTROLSETNNN (вместо NNN указывается номер подраздела, например CONTROLSET001, CONTROLSET002 или CONTROLSET003), все они содержат практически одинаковую информацию. И это не избыточность. Программисты Microsoft приняли решение специально использовать несколько копий подразделов, содержащих критически важную информацию, чтобы в случае повреждения одного из подразделов, система могла загрузиться с помощью настроек из другого подраздела. Каждый из подразделов формата CONTROLSETNNN используется как страховочный. При этом, за двумя из этих подразделов всегда зарезервирован свой вид загрузки операционной системы — один из подразделов используется для обычной загрузки, а второй используется при выборе пользователем из списка альтернативных видов загрузки команды ЗАГРУЗКА ПОСЛЕДНЕЙ УДАЧНОЙ КОНФИГУРАЦИИ. Также второй из подразделов используется в том случае, если систему не удалось загрузить с помощью первого из подразделов. Подраздел CURRENTCONTROLSET на самом деле не является физически существующим в реестре подразделом — содержимое данного подраздела является лишь ссылкой на тот подраздел CONTROLSETNNN, который был загружен в текущий момент. Для понятия принципа работы данных подразделов системы, необходимо знать этапы загрузки операционной системы Windows и то, что на этих этапах происходит. Мы же не будем углубляться так далеко, а перечислим лишь несколько фактов, которые помогут в понимании сути рассматриваемых нами подразделов. После сбора информации о конфигурации компьютера и выборе самой загружаемой системы (если используется мультизагрузка) происходит попытка считывания ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSETNNN, которая в данный момент используется для обычной загрузки. Если на этапе считывания или попытки запуска какого-нибудь драйвера, указанного в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSETNNN, происходит серьезный сбой, тогда ветвь реестра CONTROLSETNNN помечается как испорченная и начинается новая перезагрузка компьютера, в процессе которой уже используется ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSETNNN, помеченная как удачная при предыдущем удачном запуске операционной системы. Если же системе удается загрузиться при помощи ветви HKEY_LOCAL_MACHINE\SYSTEM\CONTROLSETNNN, и при этом в системе удачно зарегистрировался хотя бы один пользователь, тогда данная ветвь CONTROLSETNNN считается корректной, и теперь именно с помощью данной ветви CONTROLSETNNN вы будете загружаться при выборе команды ЗАГРУЗКА ПОСЛЕДНЕЙ УДАЧНОЙ КОНФИГУРАЦИИ. После завершения работы компьютера все занесенные вами в текущий сеанс работы сведения помещаются в используемый при загрузке системы раздел CONTROLSETNNN. Остальные же разделы остаются без изменений. Select
Но как же система узнает, какой из подразделов CONTROLSETNNN необходимо использовать при обычной загрузке, какой необходимо использовать при загрузке последней удачной конфигурации, а какой вообще является испорченным? Именно для этих целей и предназначен подраздел SELECT. Этот подраздел содержит в себе набор параметров DWORD-типа, каждый из которых определяет номер подраздела CONTROLSETNNN и ту метку, которая была ему присвоена во время последнего удачного входа в систему. Давайте рассмотрим назначение каждого из параметров, описанных в подразделе SELECT.
Настройки служб
Мы рассмотрели назначение подразделов формата CONTROLSETNNN и знаем, что они предназначены для хранения настроек запускаемых системой служб. Но как эти настройки хранятся в реестре? Именно этому вопросу и посвящен данный раздел главы о реестре. Все настройки запуска служб хранятся в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES. Данная ветвь содержит в себе список подразделов, каждый из которых определяет описания одной службы или сервиса. Название данных подразделов, в принципе, не имеет значения (но если для службы не существует параметра DISPLAYNAME, тогда для ее идентификации будет использоваться название подраздела, в котором она описывается). Значение имеют те параметры, которые описаны в соответствующем подразделе. А к таким параметрам можно отнести приведенные ниже. Group Данный параметр имеет тип REG_SZ и определяет группу, к которой относится наша служба. Именно от группы зависит, в какой момент будет запущена служба — сначала запускаются все службы одной группы, потом все службы другой и т.д. Саму же последовательность, в которой запускаются группы служб, можно просмотреть в параметре типа REG_MULTI_SZ LIST, расположенном в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\SERVICEGROUPORDER. DependOnGroup Значение данного параметра типа REG_MULTI_SZ определяет группы, которые должны быть запущены перед запуском данной службы. В контексте оснастки services.msc, которая содержит в себе описание всех служб, установленных на компьютере, данный параметр определяет содержание вкладки ЗАВИСИМОСТИ диалога СВОЙСТВА для данной службы. DependOnService Значение данного параметра типа REG_MULTI_SZ определяет сервисы, которые должны быть запущены перед запуском данной службы. Значения этого параметра отображаются на вкладке ЗАВИСИМОСТИ диалога СВОЙСТВА, вызываемого двойным нажатием левой кнопки мыши на строке, определяющей данную службу в оснастке services.msc. DisplayName Значение данного параметра строкового типа определяет строку названия службы, которая как раз и будет идентифицировать службу в оснастке services.msc (Данная строка будет отображаться в поле ИМЯ оснастки services.msc). Description Значение данного параметра строкового типа определяет строку описания для соответствующей службы. Данная строка будет отображаться в поле ОПИСАНИЕ диалога СВОЙСТВА для данной службы. ObjectName Значение данного параметра строкового типа определяет учетную запись, с правами которой будет запускаться служба. Если значение данного параметра равно LocalSystem, то вход будет выполняться с правами данной учетной записи (эта запись пришла на смену записи SYSTEM, определяющей права системы, и содержит меньше прав, чем сама учетная запись SYSTEM). Если же значение этого параметра равно NT Authority\NetworkService, то вход будет выполнен от имени сетевой службы (аналогично учетной записи LocalSystem, данная учетная запись имеет меньше прав, чем учетная запись SYSTEM). Если же вам необходимо предоставить службе вход от имени учетной записи определенного пользователя данного компьютера, тогда параметру OBJECTNAME нужно присвоить строку формата .\логин пользователя. ErrorControl Данный параметр типа DWORD определяет поведение системы при возникновении ошибок в работе службы и может принимать такие значения:
ImagePath Значение этого параметра строкового типа определяет путь к файлу службы, который и будет запускаться системой. В оснастке services.msc данный параметр определяет содержимое поля ИСПОЛНЯЕМЫЙ ФАЙЛ диалога СВОЙСТВА для соответствующей службы (данное поле позволяет лишь просмотреть путь к файлу службы, но не отредактировать его). Start Значение этого параметра типа DWORD определяет момент загрузки системы, в который будет запущена данная служба. Данный параметр может принимать следующие значения:
Type Данный параметр типа DWORD указывает на то, к какому типу относится данная служба и может принимать следующие значения:
И для примера давайте попробуем зарегистрировать в системе свою собственную службу. Для этого достаточно только создать свой подраздел в ветви HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES, а в этом подразделе создать такие параметры, как IMAGEPATH, DISPLAYNAME, DESCRIPTION, GROUP... Что можно видеть на рисунке 2.33. ![]() Рисунок 1 Рис. 2.33. Создание своей службы Потенциально опасные ветви и параметры реестра
Данным разделом заканчивается наше знакомство с реестром Windows XP и параметрами, которые в нем могут находиться, поэтому сейчас хотелось бы перечислить некоторые из ветвей реестра и параметров, которые, если еще не используются, то скоро могут быть использованы вирусами, троянскими конями или просто различными программами-шутками для своей работы. Также в этом разделе будут перечислены некоторые ветви реестра, создание или удаление которых может вызвать проблемы в работе операционной системы. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT Подраздел MININT не предназначен для операционной системы Windows XP, поэтому если он будет присутствовать в системе, то при каждой загрузке система будет выводить сообщение о нехватке размера файла подкачки pagefile.sys и создавать новый файл. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{e17d4fc0-5564-11d1-83f2-00a0c90dc849} Мы уже упоминали об этом подразделе — если подраздел {E17D4FC0-5564-11D1-83F2-00A0C90DC849} окажется удаленным, тогда диалоговое окно ПОИСК работать не будет. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{1f4de370-d627-11d1-ba4f-00a0c91eedba} Подраздел {1F4DE370-D627-11D1-BA4F-00A0C91EEDBA} является еще одним подразделом, без которого не будет работать диалоговое окно ПОИСК. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon Данная ветвь реестра может содержать в себе множество параметров, за содержимым которого необходимо следить. Например, к таким параметрам можно отнести следующие параметры строкового типа.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows Данная ветвь реестра также может содержать в себе несколько потенциально опасных параметров, среди которых можно выделить следующие параметры строкового типа.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects Данная ветвь реестра определяет все CLSID-номера ActiveX-объектов (в виде подразделов, названных в честь CLSID-номера ActiveX-объекта), которые будут запускаться при каждом запуске браузера Internet Explorer. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager Данная ветвь реестра содержит в себе параметр типа REG_MULTI_SZ BOOTEXECUTE, значением которого являются команд, которые будут запускаться при каждой перезагрузке компьютера. Этот параметр используется системой для запуска таких системных программ работы с дисками, как автопроверка диска (значение этого параметра autocheck autochk *) или преобразование файловой системы диска FAT в NTFS (значение данного параметра autoconv \DosDevice\x: /FS:NTFS). HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options Данная ветвь реестра используется для возможности определения программ, при выполнении которых происходит утечка памяти. Но можно воспользоваться этой ветвью и для других целей. Например, если создать в приведенной ветви реестра подраздел explorer.exe, а в нем создать параметр DWORD-типа SHUTDOWNFLAGS и присвоить ему значение 3, тогда после выгрузки оболочки Windows, существует вероятность, хотя и малая, что вы не сможете ее загрузить. Система может не дать вам этого сделать. Но даже если вы и сможете загрузить оболочку, то скорее всего увеличится количество ошибок неправильной адресации к памяти, выдаваемых различными программами. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\option Данная ветвь реестра определяет, в каком режиме будет загружаться операционная система — обычном или безопасном. Именно поэтому возможна такая шутка — создайте в этой ветви реестра параметр DWORD типа OPTIONVALUE и присвойте ему значение, равное 1. Теперь вы всегда будете загружаться в режиме, в чем-то подобном безопасному — будет загружаться лишь минимальный набор сервисов, но драйверы устройств, таких как видеокарта, будут использоваться обычные, устанавливаемые вместе с устройством (а не стандартные, как при полноценном безопасном режиме). При этом даже если вы являетесь администратором компьютера, вам будет запрещено запускать такие службы, как, например, Windows Audio, которые нельзя запускать в безопасном режиме. HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints\«значок диск» и HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\«значок диск» Данные ветви содержат в себе настройки контекстного меню, значков дисков, а также описание файла autorun.inf, применявшегося ранее для запуска содержимого компакт-диска. В практике автора книги был такой случай, когда записи данных ветвей реестра постоянно приводили к отказу в доступе к DVD-приводу. То есть, при попытке открытия содержимого компакт-диска, установленного в DVD-ROM, отображался отказ в доступе к диску. При этом проблема решалась именно удалением подраздела ветвей, названного в честь буквы диска, доступ к которому был отклонен (решалась до следующей попытки доступа к приводу). Поэтому если у вас возникли подобные проблемы, просто попробуйте удалить соответствующие ветви реестра, а потом установить для них только доступ на чтение. Продолжение следует Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=136
|
В избранное | ||