
- •Введение
- •Эволюция ос.
- •Классификация ос.
- •Краткий обзор архитектуры Windows.
- •Основные системные файлы Windows 95, nt, 2000.
- •Средства аппаратной поддержки управления памятью.
- •Сегментная организация памяти.
- •Страничная или сегментно-страничная организация памяти.
- •Механизмы управления памятью Windows.
- •Раздел 4. В него загружаются ядро Windows nt и драйверы устройств. Этот раздел полностью защищен и по чтению, и по записи. Регионы в адресном пространстве.
- •Системные переменные и операционные системы.
- •Передача физической памяти региону.
- •Механизм выделения страниц физической памяти.
- •Выделение физической памяти под программный код.
- •Атрибуты защиты страниц.
- •Стек потока.
- •Стек потока под Windows 95, 98.
- •Функции компилятора для контроля стека.
- •Кучи (Heaps).
- •Особенности кучи в Windows 95, Windows nt.
- •Структура арены.
- •Рассмотрим функции работы с кучей.
- •Удаление кучи.
- •Выделение блока памяти в определённой куче.
- •Освобождение блока кучи.
- •Дополнительные кучи Win32 процесса.
- •Создание дополнительных куч для эффективного управления памятью.
- •Локальный доступ. Создание дополнительных куч для локализации доступа.
- •Файлы проецируемые в память (фпвп).
- •Проецирование в память exe и dll файлов.
- •Совместное использование статических данных несколькими экземплярами exe и dll модулей.
- •Иерархия функций работы с памятью.
- •Объекты kernel32.Dll.
- •Процессы.
- •Структуры данных процесса.
- •Структура блока pdb.
- •Блок kprocess.
- •Блок переменных окружения (peb).
- •Переменная ядра, связанная с процессами.
- •Последовательность действий, выполняемых функцией CreateProcess.
- •Потоки.
- •Основные функции для работы с потоками.
- •Управляющие структуры ос для работы с потоками.
- •Описание структур управления потоками.
- •Управление потоками.
- •Лекция № 11
- •Функции Win32 связанные с планированием.
- •Учёт квантов времени.
- •Сценарий планирования.
- •Поток простоя.
- •Динамическое повышение приоритета потока.
- •Планирование потоков в системах с симметричной мультипроцессорной системой (smp).
- •Синхронизация.
- •Синхронизация потоков без использования объектов синхронизации.
- •Синхронизация потоков.
- •Критические секции.
- •Работа потока с несколькими критическими секциями.
- •Синхронизация объектов.
- •События со сбросом вручную.
- •События с автоматическим сбросом.
- •Модули.
- •Структура imte.
- •Структура modref.
- •Файлы. Формат pe файла.
- •Особенности ре формата:
- •Заголовок ре файла.
- •Основные секции исполняемого файла.
- •.Idata bfc0847d .Text jmp dword ptr [00040042 … call 00014408 (Вызов GetMessage) Прикладная программа
- •Импортирование ре файлов.
- •Эскпорт ре файлов.
- •Лекция № 15
- •Ресурсы ре файла.
- •Базовые поправки ре файла.
- •Файловые системы.
- •Загрузочный сектор.
- •Особенности ntfs.
- •Новые возможности ntfs.
- •Структура ntfs на диске.
- •Кластеры.
- •Главная таблица файлов.
- •Структура файловых ссылок.
- •Записи о файлах.
- •Индексация имён файлов.
- •Битовая карта.
- •Восстанавливаемость ntfs.
- •Журнал транзакций.
- •Записи контрольной точки.
- •Восстановление данных в ntfs.
- •Проход повтора.
- •Проход отмены.
- •Отказоустойчивость ntfs.
- •Словарь терминов.
Структура файловых ссылок.
Файл на томе NTFS идентифицируется 64-битным значением, которое называется файловой ссылкой (file reference). Файловая ссылка состоит из номера файла и номера последовательности. Номер файла равен позиции его записи в MFT минус 1 (или позиции базовой записи в МFT минус 1, если файл требует несколько записей). Номер последовательности в файловой ссылке увеличивается на 1 при каждом повторном использовании позиции записи в MFT, что позволяет NTFS проверять внутреннюю целостность файловой системы. Файловую ссылку иллюстрирует рисунок.
63 47 0
Номер Номер файла последовательности
Записи о файлах.
NTFS рассматривает файл не просто как хранилище текстовых или двоичных данных, а как совокупность пар атрибутов и их значений, одна из которых содержит данные файла (соответствую-щий атрибут называется наименованным атрибутом данных). Другие атрибуты включают имя файла, метку времени и, возможно, дополнительные именованные атрибуты данных. Запись MFT для не-большого файла показана на рисунке.
Главная таблица файлов
///////////////////////////////////////////
Стандартная
информация Имя файла Данные
Каждый атрибут файла хранится в файле как отдельный поток байтов. Строго говоря, NTFS читает и записывает не файлы, а потоки атрибутов. NTFS поддерживает следующие операции над атрибутами: создание, удаление, чтение (как диапазон байтов) и запись (как диапазон байтов). Сервисы чтения и записи обычно имеют дело с неименованным атрибутом данных. Однако вызыва-ющая программа может указать другой атрибут данных, используя синтаксис именованных потоков данных.
В таблице перечислены атрибуты для файлов на томах NTFS (не у каждого файла есть все эти атрибуты).
В таблице даны имена атрибутов, но на самом деле атрибуты соответствуют числовым кодам типов, используемым NTFS для упорядочения атрибутов в записи о файле. Файловые атрибуты в записи MFT размещаются в порядке возрастания числовых значений этих кодов. Некоторые типы атрибутов встречаются в записи дважды – например, если у файла несколько атрибутов данных или несколько имён.
Атрибут |
Имя атрибута |
Описание |
Информация о томе |
$VOLUME_ INFORMATION $VOLUME_NAME |
Эти атрибуты имеются только в файле метаданных $Volume. Они хранят версию и метку тома. |
Стандартная информация |
$STANDART_ INFORMATION |
Атрибуты файла «только для чтения», «архивный» и др., метки времени создания и последней модификации, число каталогов, ссылающихся на данный файл (счетчик жёстких связей). |
Имя файла |
$FILE_NAME |
Имя файла в Unicode-символах. У файла может быть несколько атрибутов имени, например, если существует жёсткая связь с данным файлом или если для его длинного имени автоматически сгенерировано краткое имя, используемое программами MS–DOS и 16-разрядной Windows. |
Дескриптор защиты |
$SECURE_ DESCRIPTOR |
Этот атрибут обеспечивает обратную совместимость с прежними версиями NTFS. Версия NTFS, реализованная в Windows 2000, хранит все дескрипторы защиты в файле метаданных $Secure для совместного использования файлами и каталогами с одинаковыми параметрами защиты. Прежние версии NTFS хранили закрытую информацию о дескрипторе защиты в каждом файле и каталоге. |
Данные |
$DATA |
Содержимое файла. В NTFS файл имеет один неименованный атрибут данных, и, возможно, дополнительные именованные атрибуты данных, то есть в файле может быть несколько потоков данных. В каталоге нет атрибута данных по умолчанию, но могут присутствовать необязательные именованные атрибуты данных. |
Корень индекса, выделенная группа индексов и битовая карта индексов |
$INDEX_ROOT, $INDEX_ ALLOCATION, $BITMAP |
Эти атрибуты используются для выделения места под имена файлов и создания битовой карты индексов для больших каталогов (только каталогов). |
Список атрибутов |
$ATTRIBUTE_LIST |
Список атрибутов, составляющих файл, и файловые ссылки на запись MFT, в которой находятся все атрибуты. Этот редко используемый атрибут присутствует, когда файл требует более одной записи MFT. |
Идентификатор объекта |
$OBJECT_ID |
64-байтовый идентификатор файла или каталога. в котором младшие 16 байт (128 бит) уникальны для тома. Сервисы отслеживания связей назначают идентификаторы объектов ярлыкам оболочки и файлам – источникам OLE-связей. NTFS предоставляет API-функции, позволяющие открывать файлы и каталоги не по именам, а по идентификаторам.
|
Информация повторного разбора |
$REPARSE_POINT |
Этот атрибут хранит данные точки повторного разбора, сопоставленной с файлом; присутствует в точках соединения и монтирования. |
Расширенные атрибуты |
$EA, $EA_ INFORMATION |
Расширенные атрибуты, иногда используемые для обратной совместимости с приложениями OS/2. |
Информация EFS
|
$LOGGED_ UTILITY_STREAM |
В этом атрибуте EFS хранит данные, используемые для управления шифрованием файла, например шифрованную версию ключа, необходимого для расшифровки файла, и список пользователей, имеющих право на доступ к этому файлу, Слово logged в имени атрибута означает, что изменения этого атрибута регистрируются в файле журнала тома. |
Каждый атрибут в записи о файле идентифицируется кодом типа атрибута, имеет значение и необязательное имя. Значение атрибута представляет собой байтовый поток. Так, значением атрибута $FILE_NAME является имя файла, значением атрибута $DATA – произвольный набор байтов, сохранённых пользователем в файле.
У большинства атрибутов нет имени, хотя у $DATA и атрибутов, связанных с индексом, они обычно есть. Имена позволяют различать атрибуты файла, относящиеся к одному типу. Например, в файле с именованным потоком данных есть два атрибута $DATA: неименованный атрибут $DATA, хранящий неименованный по умолчанию поток данных, и именованный атрибут $DATA с именем дополнительного потока данных.
Лекция.
Обычно нерезидентным является содержимое файла и дескриптор защиты. Рассмотрим.
Стандартная Имя
файла Дескриптор информация защиты
Стартовый
Стартовый Число VCN
LCN кластеров
0 1355
4 4 1588
3
VCN 0 1 2 3
////// //////// ///////
//////
LCN 1355 1356 1357 1358
Данные VCN 4 5 6 7
///// /////// //////
LCN 1588 1589 1590
Данные