|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Краткие теоретические сведения. 1. Конструкция реестра Windows и методы доступа1. Конструкция реестра Windows и методы доступа. Реестр, или системный реестр, – это база данных для хранения сведений о конфигурации компьютера и настроек операционной системы [6]. Реестр содержит данные, к которым Windows постоянно обращается во время загрузки, работы и её завершения, а именно: - профили всех пользователей, то есть их настройки; - конфигурация оборудования, установленного в операционной системе; - данные об установленных программах и типах документов, создаваемых каждой программой; - свойства папок и значков программ; - данные об используемых портах. Реестр имеет иерархическую древовидную структуру, состоящую из разделов, подразделов и ключей (параметров). Для работы с реестром используется простая и понятная утилита Regedit, команда reg, программа regedt32, а так же reg-файлы. Разделы и подразделы - это, грубо говоря, папки в левом окне regedit'а. Ключ реестра или параметр - это некая переменная, которой присвоено определённое значение, проще говоря - это то, что мы видим в правом окне regedit'а. Куст (основной раздел, стандартный раздел, в английской документации - улей, от англ. "hive") - это раздел реестра, отображаемый как файл на жестком диске. Куст является набором разделов, подчиненных разделов и параметров и имеет корни на верхнем уровне иерархии реестра. По умолчанию большинство файлов кустов (Default, SAM, Security и System) сохраняются в папке %SystemRoot%\System32\Config. Папка %SystemRoot%\Profiles содержит профили (настройки) для каждого пользователя компьютера. Поскольку куст представляет собой файл, его можно перемещать из одной системы в другую. Для редактирования этого файла необходимо использовать редактор реестра. Важное замечание: Windows XP в отличие от своих предшественниц не имеет ограничения по размеру реестра. Реестр Windows XP состоит из нижеперечисленных основных разделов. HKEY_CLASSES_ROOT. Это ссылка на раздел HKEY_LOCAL_MACHINE\ Software\Classes. Хранящиеся здесь сведения обеспечивают запуск необходимой программы при открытии файла с помощью проводника. Этот раздел содержит связи между приложениями и типами файлов. HKEY_CURRENT_USER. Это ссылка на определённый подраздел HKEY_USERS. Настройки соответствуют текущему, активному пользователю, выполнившему вход в систему. HKEY_LOCAL_MACHINE. Раздел содержит настройки, относящиеся к вашему компьютеру и действительны для всех пользователей. Раздел содержит информацию об аппаратной конфигурации и установленном программном обеспечении. HKEY_USERS. Этот раздел содержит настройки для всех пользователей компьютера. HKEY_CURRENT_CONFIG. Это ссылка на HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\HardwareProfiles\Current. Раздел содержит сведения о настройках оборудования, используемом локальным компьютером при запуске системы, т.е. содержит информацию о текущей конфигурации [6]. Вышеуказанные основные стандартные разделы Вы не сможете удалить или переименовать. Некоторые разделы реестра являются энергозависимыми и не хранятся в каком-либо файле. Операционная система создает и управляет этими разделами полностью в памяти, поэтому они являются временными по своей природе. Система создает энергозависимые разделы каждый раз при начальной загрузке. Например, HKEY_LOCAL_MACHINE\HARDWARE - раздел реестра, который хранит информацию по физическим устройствам и назначенным им ресурсам. Назначение ресурса и аппаратное обнаружение происходят каждый раз при загрузке системы, поэтому логично, что эти данные не записываются на диск. Сердце системного реестра - это раздел HKEY_LOCAL_MACHINE\SYSTEM. Наибольший интерес для нас представляют ветви HKEY_CURRENT USER и HKEY_LOCAL_MACHINE, именно там хранятся настройки, изменения которых способно облагородить нашу операционную систему. Часто для обозначения основных разделов реестра пользуются сокращениями: HKEY_CLASSES_ROOT – HKCR; HKEY_CURRENT_USER – HKCU; HKEY_LOCAL_MACHINE – HKLM; HKEY_USERS – HKU; HKEY_CURRENT_CONFIG – HKCC. Раздел HKEY_USERS содержит все активные загруженные параметры пользователя. Он имеет не менее трёх ключей: - подраздел DEFAULT, где хранится используемая конфигурация, когда ни один из пользователей ещё не вошёл в компьютер. То есть, мы ещё видим приглашение на вход в систему; - дополнительный подраздел, который имеет имя в соответствии с security ID текущего пользователя. Идентификатор безопасности (SID, security ID) - структура данных переменной длины, которая идентифицирует пользователя, группу или компьютер. Каждая учётная запись в сети имеет уникальный SID. Внутренние процессы в Windows обращаются к SID для получения учётной записи пользователя или имени группы. Этот подключ реестра содержит конфигурацию текущего пользователя. Если пользователь вошёл удалённо, данные для конфигурации пользователя сохраняются в системном реестре местного компьютера. Данные из HKEY_USERS\%SID% также появляются в HKCU; - дополнительный подраздел, который имеет имя в соответствии с SID текущего пользователя с суффиксом Classes. Этот раздел содержит классы текущего пользователя. Данные в HKEY_USERS\%SID%_Classes также содержатся в HKCR [6]. В Windows XP конфигурация пользователя по умолчанию (default user profile) не хранится в системном реестре. Она находится на системном диске в файле \Documents and Settings\Default User\Ntuser.dat. Отметим, и это важно, что куст HKCU является ссылкой, на определённый подраздел куста HKEY_USERS. Это значит, что все изменения в разделах, подразделах и ключах куста HKCU автоматически тут же отображаются в определённом подразделе HKEY_USERS соответствующем активному пользователю. То есть пользователю, выполнившему процедуру входа. В каком же именно разделе HKEY_USERS проводятся изменения? Для этого Вы должны узнать свой SID. Тогда искомый раздел будет именоваться, например, так: HKEY_USERS\S-1-5-21-117609710-1606980848-839522115-500. Где цифровая часть, вместе с буквой "S", и есть SID.
2. Типы данных реестра. Реестр Windows использует для хранения информации следующие типы данных: 1) REG_BINARY – двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате. 2) REG_DWORD – целые числа размером в 4 байта. Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах. 3) REG_EXPAND_SZ – строка данных переменной длины. 4) REG_MULTI_SZ – многострочный текст. Этот тип, как правило, имеют списки и другие записи в формате, удобном для чтения. Записи разделяются пробелами, запятыми или другими символами. 5) REG_SZ – Текстовая строка фиксированной длины. 6) REG_FULL_RESOURCE_DESCRIPTOR Последовательность вложенных массивов, разработанная для хранения списка ресурсов железа или драйверов.
3. Хранение реестра.Элементы реестра хранятся в виде атомарной структуры. Реестр разделяется на составные части, называемые ульями (hives), или кустами. Ульи хранятся на диске в виде файлов. Некоторые ульи, такие, как HKLM\HARDWARE, не сохраняются в файлах, а создаются при каждой загрузке, то есть являются изменяемыми. При запуске системы реестр собирается из ульев в единую древовидную структуру с корневыми разделами. Перечислим ульи реестра и их местоположение на диске (для NT старше версии 4.0). HKLM\SYSTEM – %SystemRoot%\system32\config\system HKLM\SAM – %SystemRoot%\system32\config\SAM HKLM\SECURITY – %SystemRoot%\system32\config\SECURITY HKLM\SOFTWARE – %SystemRoot%\system32\config\software HKLM\HARDWARE – изменяемый улей HKLM\SYSTEM\Clone – изменяемый улей HKU\<SID_пользователя> – %USERPROFILE%\ntuser.dat HKU\<SID пользователя>Classes – %USERPROFILE%\Local Settings\Application Data\Microsoft\Windows\UsrClass.dat HKU\.DEFAULT – %SystemRoot%\system32\config\default
4. Безопасность реестра. Для установления разрешений на доступ к реестру используется оснастка «Администрирование». Запретить редактирование реестра программой regedit можно так же добавив в разделе HKCU\SOFTWARE\Microsoft\Windows\CurrentVerson\Policies\System ключ DisableRegistryTools:dword = 0х00000001. Запуск редактора реестра будет запрещен, однако останется возможность вносить изменения с помощью программного обеспечения сторонних разработчиков и с помощью REG-файла. Для установки разрешений на доступ к определённым разделам реестра используется программа regedt32. Здесь можно назначать разрешения (рис. 1) на доступ конкретным пользователям подобно назначению разрешений на доступ к папке (рис. 2).
Для вызова окна настроек выберите пункт «Разрешения» из меню. В данном окне можно будет выбрать конкретного пользователя и назначить ему конкретные права на доступ к конкретному ключу реестра. Для работы с реестром через командную строку используется команда reg (рис. 3). Данная команда используется только с дополнительными параметрами. Например, REG QUERY позволяет вывести список параметров с их значениями для указанного ключа. REG ADD позволяет добавить ключ или параметр и т.п. Использование данной команды можно прочитать во встроенной справке [6].
5. Средства программиста для доступа к реестру.Доступ к реестру может быть так же осуществлён с использованием библиотек среды Delphi. Для работы с реестром в Delphi предназначен класс TRegistry [7]. Для получения в программе доступа к свойствам и методам этого класса следует в разделе uses указать модуль Registry. Экземпляр объекта TRegistry создаётся и удаляется с помощью методов Create и Free. Для указания текущего корневого раздела используется свойство RootKey типа HKEY. По умолчанию RootKey имеет значение HKEY_CURRENT_USER. Для определения текущего ключа используют свойство CurrentKey или CurrentPath типа String. Методы OpenKey и CloseKey выполняют отображение в память ключа и выгрузку его из памяти. Чтение и запись параметров, например, строковых выполняется функциями ReadString и WriteString. Используя методы и свойства класса TRegistry можно управлять реестром Windows.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.) |