Государственный реестр Федор (5p1k3) Галков Спецвыпуск Xakep, номер #040, стр. 040-060-2 По сути, подавляющие большинство твикеров Windows, а также встроенных в ХР средств редактирования всевозможных настроек (Панель управления, etc) являются обычными его редакторами с удобным и понятным визуальным интерфейсом. К тому же подобный твикер несложно написать самому, нужно только грамотно разобраться со значениями параметров (как обращаться к реестру при помощи delphi, не раз описывалось на страницах Х и Х Спец). Да и если ты собираешься серьезно кодить под win, ты просто обязан уметь работать с реестром: создавать, редактировать и удалять ключи, собирать из реестра необходимую инфу (это еще не СЕРЬЕЗНЫЙ кодинг :) - прим. ред.). А уж для быстрого написания вредоносного кода (или безобидных приколов) под win не найти ничего проще, чем внесение изменений в реестр. Всего несколькими строчками кода можно изменить систему до неузнаваемости. Анатомия и физиология Реестр представляет собой древовидную структуру, состоящую из корневых (root keys) и вложенных (subkeys) ключей, в которых, как в папках, находятся параметры. Основу реестра winХР составляют 5 корневых ключей: HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_CONFIG. HKEY_CLASSES_ROOT (или HKCR). Содержит информацию об OLE, сведения о типах файлов (ассоциации между ними и приложениями). HKEY_CURRENT_USER (или HKCU). Содержит настройки текущего пользователя, вошедшего в систему (профиль пользователя). Эти настройки определяют права пользователя, внешний вид win, также настройки сети, принтеров и многие другие параметры, входящие в профиль. Это раздел является всего лишь ссылкой на подключ HKEY_USERS\USER_SecurityID\. HKEY_LOCAL_MACHINE (или HKLM). Содержит глобальную информацию об операционной системе, установленном софте и оборудовании. Эти параметры затрагивают всех пользователей. В этом ключе хранятся самые важные настройки. HKEY_USERS (или HKU). Содержит профили всех пользователей (в том числе включает в себя раздел HKCU). HKEY_CURRENT_CONFIG (или HKCC): Содержит параметры текущего аппаратного профиля. Тут хранятся только изменения по сравнению со стандартной конфигурацией. Каждый корневой ключ содержит множество вложенных подключей, в которые вложены еще ключи или параметры. Параметры реестра могут принимать около 15 всевозможных типов значений, перечислять их все не имеет смысла. Из них чаще всего используются только 3 типа: REG_BINARY (двоичный тип данных – в regedit’e представлен в шестнадцатеричном формате), REG_DWORD (целые числа размером до 4 байт – в редакторе могут отображаться в двоичном, десятичном и шестнадцатеричном виде) и REG_SZ (обыкновенная текстовая строка). С этими типами тебе и придется работать чаще всего. Если в прошлых версиях винды весь реестр состоял из нескольких файлов, то теперь все это добро занимает кучу папок и файлов, найти которые можно в основном в c:\windows\system32\config\, и еще немного пользовательских настроек хранятся в c:\documents and settings\user_name\ (удалять эти папки настоятельно не рекомендуется :)). В win2k/ХР для хранения реестра используется система ульев (или кустов). Ульи – это постоянные составные части реестра, состоящие из главных ключей, вложенных в них подключей и параметров (динамичные ключи в улей не входят). Таким вот образом реестр делится на файлы. Основная часть реестра хранится в четырех файлах без расширений: sam, security, software и system (понять их назначение можно по названию). Плюс еще два пользовательских файла: c:\documents and settings\user_name\ntuser.dat и c:\documents and settings\user_name\local settings\application data\microsoft\windows\usrclass.dat. Резервную часть реестра составляют файлы *.sav – в них хранятся копии ульев и файлы *.log, в которых лежат логи изменений реестра. Но для того чтобы сделать бэкап, скопировать эти файлы недостаточно. |