close

Вход

Забыли?

вход по аккаунту

?

Report6

код для вставкиСкачать
Белорусский Национальный Технический Университет
Факультет информационных технологий и робототехники
Кафедра ПОВТ и АС
ОТЧЕТ
по лабораторной работе № 6
"Файловая система NTFS"
по дисциплине
"Системное программное обеспечение"
Выполнил: ст. гр.107215
Котов Д.Ю.
Проверил: Разоренов Н. А.
Минск 2007
Цель работы:
Ознакомление со структурой и расположением системной информации на томе NTFS. Изучаемые вопросы:
1. Структура BOOT.
2. Таблица файлов MFT.
3. Структура файлов (небольшой и большой).
4. Атрибуты файла.
5. Метафайлы.
6. Каталоги в NTFS (структура). 7. Исследовать изменение элементов ROOT при выполнении команд: COPY, MOVE, DEL, RENAME.
1 Структура BOOT
Формат начальной области загрузочного сектора файловой системы NTFS представлен в таблице 1.
Таблица 1. Загрузочный сектор NTFS
Смещение, байтРазмер, байтОписание03Команда JMP xxxx (переход на программу начальной загрузки)38Название фирмы-изготовителя операционной системы и версия0xB2Размер сектора в байтах0xD1Количество секторов в одном кластере0xE7Зарезервировано0x15 1Тип носителя данных0x16 2Зарезервировано0x182Количество секторов на дорожке0x1A2Количество магнитных головок0x1C8Зарезервировано0x242Содержит число 0x800x262Содержит число 0x800x284Младшее слово общего количества секторов в разделе0x2C4Старшее слово общего количества секторов в разделе0x304Младшее слово номера кластера, в котором начинается таблица MFT0x344Старшее слово номера кластера, в котором начинается таблица MFT0x384Младшее слово номера кластера, в котором начинается копия таблицы MFT0x3C4Старшее слово номера кластера, в котором начинается копия таблицы MFT0x404Размер записи MFT в кластерах0x444Размер буфера индексов в кластерах0x484Младшее слово серийного номера диска0x4C4Старшее слово серийного номера диска
В данной лабораторной работе для хранения информации о загрузочном секторе использовалась следующая структура: struct BootInfo
{
char OEM[8];//OEM
unsigned short BpS;//Bytes per sector
BYTE SpC;//Sectors per cluster BYTE Media;//Media Type
unsigned double TotSect;//Total Sectors
unsigned double MftStart;//MFT start cluster
unsigned double MftMirror;//MFT mirror start cluster
unsigned double Serial;//Volume serial number
};
Ниже приведен дамп памяти BOOT и результаты его расшифровки (рис. 1):
Рис. 1. Дамп загрузочного сектора раздела NTFS
2 Таблица файлов MFT
Каждый файл на томе NTFS представлен записью в специальном файле, называемом главной файловой таблицей (MFT - master file table). NTFS резервирует первые 16 записей таблицы для специальной информации (таблица 3). Первая запись этой таблицы описывает непосредственно главную файловую таблицу. За ней следует зеркальная запись (mirror record) MFT. Если первая запись MFT разрушена, то NTFS читает вторую запись для отыскания зеркального файла MFT, первая запись которого идентична первой записи MFT. Местоположения сегментов данных MFT и зеркального файла MFT записаны в секторе начальной загрузки. Третья запись MFT - файл регистрации (log file); используется для восстановления файлов. На рис. 2 показана упрощенная структура MFT.
Рис. 2. Организация главной файловой таблицы
3 Структура файлов (небольшой и большой).
Небольшие файлы. Если файл имеет небольшой размер, то он может целиком располагаться внутри одной записи MFT, имеющей, например, размер 2 Кбайт. Небольшие файлы NTFS состоят по крайней мере из следующих атрибутов (рис.3):
* стандартная информация (SI - standard information);
* имя файла (FN - file name);
* данные (Data); * дескриптор безопасности (SD - security descriptor).
Рис. 3. Небольшой файл NTFS
Большие файлы. Если данные файла не помещаются в одну запись MFT, то этот факт отражается в заголовке атрибута Data, который содержит признак того, что этот атрибут является нерезидентным, то есть находится в отрезках вне таблицы MFT. В этом случае атрибут Data содержит адресную информацию (LCN, VCN, k) каждого отрезка данных (рис. 4).
Рис. 4. Большой файл
Ниже приведен дамп используемого в лабораторной работе файла, а также расшифровка его атрибутов (рис. 5) и дамп нерезидентного файла (рис.6):
Рис. 6. Нерезидентный атрибут $DATA
Рис. 5. Дамп исследуемого файла
4 Атрибуты файла
В таблице 2 приведены наиболее известные атрибуты файлов с небольшими описаниями.
Таблица 2. Атрибуты файла
Тип Имя Описание0x10$STANDARD_INFORMATIONСтандартный атрибут. Здесь хранится дата и время создания и последнего изменения файла, дата и время последнего доступа к файлу, флаги доступа к файлу, а также дата и время изменения записи MFT, соответствующей данному файлу0x20$ATTRIBUTE_LISTСписок атрибутов. Если помимо базовой записи MFT для файла создаются расширенные записи, в этом атрибуте перечисляются все атрибуты файла. Кроме того, здесь хранится информация о распределении этих атрибутов по записям MFT (по базовой записи и по расширенным записям данного файла).0x30$FILE_NAMEИмя файла или каталога. В этом атрибуте хранится имя файла или каталога, набор флагов доступа, размер файла, а также ссылка на запись MFT каталога, в котором хранится данный файл или каталог.0x40$VOLUME_VERSIONВерсия NTFS для данного раздела.0x50$SECURITY_DESCRIPTORДескриптор разграничения доступа.0x60$VOLUME_NAMEИмя тома. Это имя задается при форматировании раздела и может быть изменено пользователем.0x70$VOLUME_INFORMATIONСостояние тома. Здесь хранится версия драйвера, с помощью которого был создан данный раздел, а также флаг программы CHKDSK. Если этот флаг установлен, то при очередной перезагрузке операционной системы программа CHKDSK выполнит проверку данного раздела.0x80$DATAАтрибут данных. Этот атрибут может содержать либо данные файла (если размеры файла не превышают размеры записи MFT), либо список номеров кластеров, в которых располагается файл (список экстентов файла).0x90$INDEX_ROOTКорневая вершина дерева типа B+, с применением которого в NTFS реализована система каталогов.0xA0$INDEX_ALLOCATIONУзлы ветвей дерева типа B+, с применением которого в NTFS реализована система каталогов.0xB0$BITMAPНабор бит, описывающих использование отдельных записей MFT или узлов дерева каталогов.0xC0$SYMBOLIC_LINKИнформация Reparse Point, используется в Microsoft Windows 20000xD0$EA_INFORMATIONИнформация о расширенных атрибутах файловой системы HPFS. Используется для обеспечения совместимости NTFS с файловой системой HPFS, применяемой в IBM OS/2.0xE0$EAДанные расширенных атрибутов файловой системы HPFS.
Расшифровка атрибутов реализована в программе следующим образом:
j += sprintf(buffer2+j, "Атрибут $FILE_NAME\r\n");
j += sprintf(buffer2+j, "Размер: %d\r\n", size);
SetFilePointer(hInfo, offset+0x18, NULL,FILE_BEGIN);
ReadFile(hInfo, &buff8, sizeof(buff8), &length, NULL);
j += sprintf(buffer2+j, "Номер записи MFT: %d\r\n", buff8);SetFilePointer(hInfo, offset+0x40, NULL,FILE_BEGIN);
ReadFile(hInfo, &buff8, sizeof(buff8), &length, NULL);
j += sprintf(buffer2+j, "Размер отведенного дискового пространства: %d\r\n", buff8);
ReadFile(hInfo, &buff8, sizeof(buff8), &length, NULL);
j += sprintf(buffer2+j, "Реальная длина файла: %d\r\n", buff8);
ReadFile(hInfo, &buff8, sizeof(buff8), &length, NULL);
j += sprintf(buffer2+j, "Флаги доступа: 0x%00000008x\r\n", buff8);
ReadFile(hInfo, &buff1, sizeof(buff1), &length, NULL);
j += sprintf(buffer2+j, "Длина имени файла: %d\r\n", buff1);
5 Метафайлы
Первые 16 файлов NTFS (метафайлы) носят служебный характер (таблица 3). Каждый из них отвечает за какой-либо аспект работы системы. Метафайлы находятся корневом каталоге NTFS диска - они начинаются с символа имени "$", хотя получить какую-либо информацию о них стандартными средствами сложно.
Таблица 3. Метафайлы
Номер записиИмя системного файлаОписание0x0$MFTГлавная таблица файлов MFT0x1$MFTMirrКопия первых 4 записей таблицы MFT0x2$LogFileЖурнал транзакций. Используется для отката транзакций в случае аварийного завершения операций над файловой системой0x3$VolumeИнформация о разделе, например, имя соответствующего логического тома и версия файловой системы NTFS0x4$AttrDefСписок атрибутов, используемых в файловой системе0x5.Корневой каталог файловой системы0x6$BitmapБитовый массив, в котором отмечены все использованные кластеры0x7$BootЗагрузочный сектор раздела NTFS0x8$BadClusСписок всех плохих кластеров данного раздела. Кластер считается плохим, если в нем есть один плохой сектор0x9$SecureБаза данных атрибутов безопасности. Применяется только в NTFS версии 5.0 в среде Microsoft Windows 20000xA$UpCaseСписок всех прописных символов Unicode0xB$ExtendФайл хранит расширенную информацию файловой системы NTFS версии 5.00xC Зарезервировано0xD Зарезервировано0xE Зарезервировано0xF Зарезервировано6 Каталоги в NTFS (структура)
Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога. Внутренняя структура каталога представляет собой бинарное дерево. Ниже представлен дамп католога testdir (рис. 6).
Рис. 6. Дамп каталога "testdir"
7 Исследовать изменение элементов ROOT при выполнении команд: COPY, MOVE, DEL, RENAME.
В католог testdir был скопирован файл TestFile.txt. Результат операции приведен на рис. 7.
Рис. 7. Дамп каталога "testdir" после COPY
Файл TestFile.txt. был переименован в ReFile.txt. Результат операции приведен на рис. 8.
Рис. 8. Дамп каталога "testdir" после RENAME
Далее файл ReFile.txt был удален(перемещен). Результат операции приведен на рис. 9.
Рис. 9. Дамп каталога "testdir" после DEL/MOVE
Документ
Категория
Рефераты
Просмотров
47
Размер файла
1 603 Кб
Теги
report
1/--страниц
Пожаловаться на содержимое документа