Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Мет_лаб__ОС_Засов_Тарабардин

.pdf
Скачиваний:
16
Добавлен:
09.04.2015
Размер:
623.82 Кб
Скачать

информацию об аппаратной конфигурации и установленном программном обеспечении.

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).

Рис. 1. Назначение разрешений

Для вызова окна настроек выберите пункт « Разрешения» из меню. В данном окне можно будет выбрать конкретного пользователя и назначить ему конкретные права на доступ к конкретному ключу реестра.

Для работы с реестром через командную строку используется команда reg (рис. 3).

Данная команда используется только с дополнительными параметрами. Например, REG QUERY позволяет вывести список параметров с их значениями для указанного ключа. REG ADD позволяет добавить ключ или параметр и т.п. Использование данной команды можно прочитать во встроенной справке [6].

Рис. 2. Установка прав доступа к реестру отдельным пользователям

Рис. 3. Использование команды REG

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.

Оборудование для выполнения работы

Работа выполняется на персональных компьютерах с операционной системой Windows NT/2000\XP и установленной средой разработки приложений

Borland Delphi 7.0.

Порядок выполнения работы

1. Использование утилит Regedit и Regedt32. Для работы используйте ключ

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

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

1) Запустите Regedit. Найдите ключ HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Run.

2) Добавьте строковый параметр calculator со значением calc.exe (рис. 4).

Рис. 4. Добавление строкового параметра

3)Выйдете из системы и зайдите снова. При входе должен автоматически запуститься калькулятор.

4)Зайдите в редактор реестра и удалите этот параметр. Снова выйдете из системы и зайдите снова. Теперь калькулятор не запускается.

5)Запустите программу Regedt32. Найдите тот же ключ.

6)Установите « Гостям» ограничение на доступ к данному ключу (рис. 5).

Рис. 5. Ограничение доступа пользователю « Гость»

Теперь если Вы войдёте в систему под именем « Гость», то не сможете редактировать данный ключ реестра.

2. Использование командной строки для работы с реестром.

1) Запустите командную строку.

2)Прочитайте встроенную справку по команде REG.

3)С помощью данной команды просмотрите содержимое ключа

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run.

4)Добавьте с помощью данной команды параметр calculator со значением calc.exe.

5)С помощью программы regedit проверьте, появился ли новый параметр в списке.

6)Теперь удалите созданный ключ с помощью команды REG.

7)Сохраните резервную копию раздела HKEY_CURRENT_USER\ Software\ Microsoft\Windows\CurrentVersion\Run с помощью команды REG.

8)Удалите все параметры раздела.

9)Теперь восстановите архивную копию из файла.

3. Средства Delphi для доступа к реестру Windows

1) Создайте новый проект Delphi. На форму поместите 4 кнопки, 2 редактора текста, 1 редактор списка и 3 надписи, как показано на рис. 6.

Рис. 6. Конструктор окна создаваемого приложения

В редакторе списка (ListBox1) будут отображаться все параметры раздела

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run после нажатия кнопки « Показать» (Button1). Выбор параметра будет производиться двойным щелчком по элементу из списка (onDblClick). Выбранный параметр будет отображаться в окне Edit1, а его значение – в Edit2. Кнопка « Изменить» (Button2) отвечает за изменение имени или значения выбранного параметра. Кнопки « Добавить» и « Удалить» - за добавление нового параметра и удаление выбранного соответственно.

2) Подключите модуль TRegistry. В качестве глобальных переменных укажите следующие:

var rt:TRegistry;

const ROOT = HKEY_CURRENT_USER;

KEY = '\software\microsoft\windows\currentversion\run';

3) Для отображения списка параметров используем следующую процедуру: procedure TForm1.Button1Click(Sender: TObject);

begin

rt:=tregistry.Create;

//создание экземпляра класса реестра

rt.RootKey:=ROOT;

//указание корневого раздела

if rt.OpenKey(KEY,false) then

//если удаётся открыть ключ

begin

rt.GetValueNames(ListBox1.Items); //записать список параметров в listbox1

rt.CloseKey;

//закрыть ключ

end;

 

rt.Free;

//выгрузить из памяти объект реестра

listbox1.SetFocus;

//установить курсор мыши в поле списка

end;

 

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

procedure TForm1.ListBox1DblClick(Sender: TObject); begin

if listbox1.ItemIndex>=0 then //если в списке есть элементы begin

edit1.Text:=listbox1.Items.Strings[listbox1.ItemIndex]; //записать в edit1 имя

//выбранного элемента

rt:=tregistry.Create;

rt.RootKey:=ROOT;

if rt.OpenKey(KEY,false) then begin

Edit2.text:=rt.ReadString(Edit1.Text); //записать в edit2 значение выбранного

//параметра

rt.CloseKey; end; rt.Free; end;

end;

5) Изменение имени и значения параметра описывается следующей процедурой

procedure TForm1.Button2Click(Sender: TObject); begin

rt:=tregistry.Create;

rt.RootKey:=ROOT;

if rt.OpenKey(KEY,false) then begin

//если имя изменено, то изменить имя параметра в реестре if listbox1.Items.Strings[listbox1.Itemindex]<>Edit1.Text then

rt.RenameValue(listbox1.Items.Strings[listbox1.Itemindex],Edit1.Text); //записать новое значение для данного параметра rt.WriteString(edit1.Text,edit2.Text);

end;

//обновить список button1.Click; end;

6)Используя функции WriteString и DeleteValue класса TRegistry,

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

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

Рис. 7. Созданное приложение

Содержание отчёта

1.Титульный лист работы.

2.Формулировка цели и задач работы.

3.Список используемых средств для доступа к реестру.

4.Порядок действий над данными в реестре и результаты их выполнения.

5.Краткие выводы по проделанной работе.

Контрольные вопросы

1.Что такое системный реестр? Каково его назначение?

2.Какие основные разделы реестра Вы знаете? Какие данные в них хранятся?

3.Какими методами осуществляется доступ пользователя к реестру?

4.В каких файлах хранится реестр? Какие разделы не хранятся в файлах?

5.Какие типы данных реестра Вы знаете?

6.Какие способы защиты реестра Вы знаете?

7.В чём различие утилит regedit и regedt32?

8.Какие команды для работы с реестром Вы знаете? Перечислите их назначение.

9.Какой класс объектов существует в ООП для работы с реестром?

10.Какие методы для работы с реестром выше упомянутого класса Вы знаете?

ЛАБОРАТОРНАЯ РАБОТА №7 ИЗУЧЕНИЕ СРЕДСТВ РАБОТЫ С ДИСКАМИ

Цель работы: изучение структуры жёсткого диска и файловой системы.

Краткие теоретические сведения

Жесткий диск (винчестер) представляет собой блок из нескольких дисков, по поверхностям которых перемещаются головки. Позиционируются головки по концентрическим дорожкам/трекам/цилиндрам, каждый из которых разделен на сектора. Сектор является минимальным адресуемым блоком данных для диска и его размер равен 512 байтам. Логическое строение жесткого диска отличается от его настоящей (физической) геометрии. Как правило, современные диски представляют собой несколько сот цилиндров имеющих 63-254 поверхностей по 63 сектора данных на каждой.

В самом начале диска (в секторе 0/0/1 – нулевой диск, нулевая дорожка, первый сектор) находится PT (Partition Table) – таблица разделов и MBR (Master Boot Record) – главная загрузочная запись.

На следующем треке в первом секторе (начиная с 0/1/1) расположена BA (Boot Area) – загрузочная область операционной системы и BR (Boot Record) – загрузочная запись OC [8].

Если используется файловая система FAT, то далее на этом же треке расположена 1-я копия FAT (File Allocation Table) – таблица размещения файлов. Сразу за ней – 2-я копия FAT. Размер копии FAT (в секторах) определяется размером раздела диска.

После 2-й копии FAT расположены сектора ROOT (Root directory) – корневого каталога, за которой начинается DA (Data Area) – область данных.

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

MBR – находится в том же секторе что и PT. Данные в MBR представляют собой код процессора необходимый для дальнейшей загрузки операционной системы. В последних двух байтах сектора MBR находится сигнатура 55AAh, которую можно использовать как маску при поиске PT и MBR.

BR – содержит массу данных и служит для описания параметров файловой системы. В отличие от диска, минимальным адресуемым блоком данных для операционной системы служит кластер, объединяющий определенное количество секторов. В BR нам интересны такие данные как размер кластера, размер и количество копий FAT. BR для раздела FAT16 размещается в одном секторе, в случае FAT32 Boot Record состоит из нескольких секторов. Файловая

система FAT состоит из 12, 16 или 32 битных элементов, описывающих номера кластеров или их признаки (BAD). Количество элементов соответствует количеству кластеров раздела диска. Из этих элементов образуются цепочки номеров кластеров, описывающих расположение файлов на диске.

ROOT – корневой каталог диска. Содержит записи описывающие файлы (дескрипторы файлов) в корневом каталоге. Такая запись описывает имя, тип, дату создания, размер, атрибуты файла, и т.п., а так же содержит указатель на первый кластер файла.

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

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

Файловая система связывает носитель информации, с одной стороны, и API для доступа к файлам – с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, также, как и на каком физическом типе носителя (CD, жёстком диске, магнитной ленте или блоке флэш-памяти) он записан. Всё, что знает программа — это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске) [9].

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

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

По предназначению файловые системы можно классифицировать на следующие категории:

-для носителей с произвольным доступом (например, жёсткий диск): FAT32, HPFS, ext2, NTFS;

-для носителей с последовательным доступом (например, магнитные ленты): QIC и др.;

-для оптических носителей — CD и DVD: ISO9660, ISO9690, HFS, UDF и др.;

-виртуальные файловые системы: AEFS и др.;

-сетевые файловые системы: NFS, SMBFS, SSHFS, GmailFS и др.