Министерство образования и науки РФ
Рязанский государственный радиотехнический университет
Кафедра ЭВМ
Отчет о лабораторной работе №4
«Архитектура и особенности файловой системы FAT32»
Выполнил: студент группы 0414 Рудь Д.А.
Проверил: доцент кафедры ЭВМ Засорин C. В.
Рязань 2012 г.
Задание 2-1.
2.1. Используя данные п. 1.2 и 1.3, разработать приложение Windows для чтения произвольного сектора заданного логического диска.
Скриншоты
Задание 2-2
2.2. С помощью разработанного приложения прочитать системные структуры данных BR, резервную копию BR, BF_BPB, FSInfo для одного из логических дисков1.
Зафиксировать полученные данные в отчете, расшифровать их и представить в виде соответствующих таблиц.
Считаем структуру данных BR. Сначала сектора расположен BF_BPB, а начиная со смещения 040 следует BR
Считаем резервную копию BR из 6-го раздела
Очевидно, что содержимое идентично в 0 и 6 секторах идентично.
Считаем BF_BPB, расположенную в 0 секторе со смещения 000 до смещения 03F
Расшифруем значения, полученные с помощью программы
-
Структура BF_BPB
Смещение |
Размер, байт |
Содержимое |
0x00 |
3 |
Безусловный переход (jmp) на загрузочный код=90 58 EBh |
0x03 |
8 |
Идентификатор фирмы-изготовителя=4D 53 44 4F 53 35 2E 30=MS DOS 5.0 |
0x0B |
2 |
Число байт в секторе =0200h=512 |
0x0D |
1 |
Число секторов в кластере=08h=8 |
0x0E |
2 |
Число резервных секторов в резервной области раздела, начиная с первого сектора раздела=00 22h=34 |
0x10 |
1 |
Число таблиц (копий) FAT=02h=2 |
0x11 |
2 |
Для FAT12/FAT16 - количество 32-байтных дескрипторов файлов в корневом каталоге; для FAT32 это поле имеет значение 0=00 00h |
0x13 |
2 |
Общее число секторов в разделе; если данное поле содержит 0, то число секторов задается полем по смещению 0x20=00 00h=0 |
0x15 |
1 |
Тип носителя = F8h -> Жесткий диск |
0x16 |
2 |
Для FAT12/FAT16 это поле содержит количество секторов, занимаемых одной копией FAT; для FAT32 это поле имеет значение 0= 00 00h |
0x18 |
2 |
Число секторов на дорожке (для прерывания 0x13)=00 3Fh=63 |
0x1A |
2 |
Число рабочих поверхностей (для прерывания 0x13)=00 FFh=255 |
0x1C |
4 |
Число скрытых секторов перед разделом=00 00 00 02h=2 |
0x20 |
4 |
Общее число секторов в разделе. Поле используется, если в разделе свыше 65535 секторов, в противном случае поле содержит 0=00 3E E7 E0=4 122 592 |
0x24 |
4 |
Количество секторов, занимаемых одной копией FAT=00 00 F0 B3h=4019 |
0x28 |
2 |
Номер активной FAT=00 00h=0 |
0x2A |
2 |
Номер версии FAT32: старший байт - номер версии, младший – номер ревизии. В настоящее время используется значение 0:0 |
0x2С |
4 |
Номер кластера для первого кластера корневого каталога=00 00 00 02h=2 |
0x30 |
2 |
Номер сектора структуры FSInfo в резервной области логического диска=00 01h |
0x32 |
2 |
Номер сектора (в резервной области логического диска), используемого для хранения резервной копии загрузочного сектора=00 06h=6 |
0x34 |
12 |
Зарезервировано (содержит 0)=00h |
Считаем структуру FSInfo, находящуюся на 1 секторе диска
Расшифруем полученные данные о FSinfo
Смещение |
Размер, байт |
Описание |
0x000 |
4 |
Значение 0x41615252 – сигнатура, которая служит признаком того, данный сектор содержит структуру FSInfo |
0x004 |
480 |
Зарезервировано (содержит 0) |
0x1E4 |
4 |
Значение 0x61417272 (сигнатура) |
0x1E8 |
4 |
Текущее число свободных кластеров на диске. =00 07 D8 E7h=514279 |
0x1EC |
4 |
Содержит номер кластера, с которого дисковый драйвер должен начинать поиск свободных кластеров. =00 00 00 26h=38 |
0x1F0 |
12 |
Зарезервировано (содержит 0) |
0x1FC |
4 |
Сигнатура 0xAA550000 – признак конца структуры FSInfo |
Задание 2.3.
Модифицировать приложение для чтения информации о типе, расположении на диске и содержимом FAT, а также содержимом секторов задаваемого кластера диска.
Скриншоты
Видоизмененное приложение выглядит следующим образом. Была введена специальная форма для отображения содержимого FAT, а также содержимого секторов задаваемого кластера диска.
Задание 2.4.
По данным, полученным в п.2.2, прочитать информацию о FAT и зафиксировать ее в отчете.
Информация о FAT
Содержимое первого сектора FAT
Задание 2.5.
Создать на диске каталожную структуру (по варианту в лабораторной работе № 2).
Задание 2.6
Прочитать секторы диска, содержащие дескрипторы файлов и подкаталогов корневого каталога, двух-трех подкаталогов и двух-трех файлов с длинными именами в каждом подкаталоге. Прочитанную информацию зафиксировать в отчете, расшифровать ее и представить в виде таблиц, структура которых аналогична таблицам в лабораторной работе № 2.
Известно, что область данных начинается с 8072 сектора. Там начинается корневой каталог
Расшифровка дескрипторов корневого каталога
Cмещение |
Размер, байт |
Содержимое в 16-ричном коде |
Расшифровка содержимого |
|||
Подкаталог S1 |
||||||
040h |
32 |
20 20 20 20 20 20 20 20 20 20 31h 10 00 8F=143
97 2C=10010 111001 01100 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 97 2D=10010 111001 01101 40 85 00 03 00 00 00 00 |
Имя: S1 Атрибуты файла(каталог) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд) Время создания= 18:57:20 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации:18:57:22 Дата последней модификации: 05.04.2012 Первый кластер: 3 Размер: 0 байт |
|||
Подкаталог S2 |
||||||
0A0h |
32 |
20 20 20 20 20 20 20 20 20 53 32h 10 00 B3=10110011=179
97 2E=10010 111001 01100 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 97 2F 40 85 00 04 00 00 00 00 |
Имя: S2 Атрибуты файла(каталог) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд)=179 Время создания= 18:57:28 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации: 18:57:30 Дата последней модификации: 05.04.2012 Первый кластер: 4 Размер: 0 байт |
|||
Файлы корневого каталога |
||||||
100h |
32 |
46 49 4С 4F 53 4F 7E 31 44 4F 43 20 00 4B=75
97 43=10010 111010 00011 40 85 40 85 00 00 B9 E3=10101 000110 10011 40 6A 00 05 00 00 54 00
|
Имя: FILOSO~1DOC Атрибуты файла(архивный) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд)=75 Время создания= 18:58:03 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации: 21:06:19 Дата последней модификации: 05.04.2012 Первый кластер: 5 Размер: 21 504 байт
|
|||
0E0 |
32 |
01 46 00 69 00 6С 00 6F 00 73 00 0F 00 6A 6F 00 70 00 68 00 69 00 61 00 66 00 00 00 69 00 6C 00
|
Номер фрагмента Символы 1-5 имени файла в Unicode Filos Атрибуты файла Байт флагов Контрольная сумма короткого имени Символы 6-11 имени файла в Unicode=phiaf Номер первого кластера Символы 12-13 имени файла в Unicode=il |
|||
0C0 |
32 |
42 65 00 2E 00 64 00 6F 00 63 00 0F 00 6A 00 00 FF FF FF FF FF FF FF FF FF FF 00 00 FF FF FF FF
|
Номер фрагмента Символы 1-5 имени файла в Unicode e.doc Атрибуты файла Байт флагов Контрольная сумма короткого имени Символы 6-11 имени файла в Unicode= Номер первого кластера Символы 12-13 имени файла в Unicode=il |
Теперь расшифруем содержимое подкаталога S1. При расшифровке предыдущей таблицы было найдено, что первый кластер = 3, поэтому считываем 8080 сектор
Расшифровка дескрипторов подкаталога s1
Cмещение |
Размер, байт |
Содержимое в 16-ричном коде |
Расшифровка содержимого |
|
Подкаталог S1 |
||||
000h |
32 |
20 20 20 20 20 20 20 20 20 20 2Eh 10 00 8F=143
97 2C=10010 111001 01100 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 97 2D=10010 111001 01101 40 85 00 03 00 00 00 00 |
Имя: . Атрибуты файла(каталог) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд=143 Время создания= 18:57:20 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации:18:57:22 Дата последней модификации: 05.04.2012 Первый кластер: 3 Размер: 0 байт |
|
020h |
32 |
20 20 20 20 20 20 20 20 20 2E 2Eh 10 00 8F=143
97 2C=10010 111001 01100 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 97 2D=10010 111001 01101 40 85 00 00 00 00 00 00 |
Имя: .. Атрибуты файла(каталог) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд)=143 Время создания= 18:57:20 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации:18:57:22 Дата последней модификации: 05.04.2012 Первый кластер: 0 Размер: 0 байт |
|
080h |
32 |
20 20 20 20 20 20 20 20 20 34 53h 10 00 5C=92
97 59=10010 111010 11001 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 97 5A=10010 111010 11010 40 85 00 26 00 00 00 00 |
Имя: S4 Атрибуты файла(каталог) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд)=92 Время создания= 18:58:50 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации:18:58:54 Дата последней модификации: 05.04.2012 Первый кластер: 38 Размер: 0 байт |
|
0E0h |
32 |
20 20 20 20 20 20 20 20 20 35 53h 10 00 C3=195
97 5A=10010 111010 11010 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 97 5B=10010 111010 11011 40 85 00 27 00 00 00 00 |
Имя: S5 Атрибуты файла(каталог) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд)=195 Время создания= 18:58:54 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации:18:58:56 Дата последней модификации: 05.04.2012 Первый кластер: 39 Размер: 0 байт |
|
140h |
32 |
20 20 20 20 20 20 20 20 20 36 53h 10 00 49=73
97 5C=10010 111010 11100 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 97 5D=10010 111010 11101 40 85 00 28 00 00 00 00 |
Имя: S6 Атрибуты файла(каталог) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд)=73 Время создания= 18:58:56 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации:18:58:58 Дата последней модификации: 05.04.2012 Первый кластер: 40 Размер: 0 байт |
Файлы каталога S1
Файл Problemsfil.doc
1A0h |
32 |
50 52 4F 42 4C 45 7E 31 44 4F 43 20 00 A2=162
97 5D=10010 111010 11101 40 85=0100000 0100 00101 40 85=0100000 0100 00101 00 00 06 51=00000 110010 10001 40 85 00 29 00 00 64 00 |
Имя: PROBLE~1.DOC Атрибуты файла(архивный) Поле для Windows NT Поле, уточняющее время создания(в десятках миллисекунд)=162 Время создания= 18:58:56 Дата создания: 05.04.2012 Время последнего доступа: 05.04.2012 Зарезервировано Время последней модификации:00:50:34 Дата последней модификации: 05.04.2012 Первый кластер: 41 Размер: 25600 байт |
180 |
32 |
01 50 00 72 00 6F 00 62 00 6C 00 0F 00 E5 65 00 6D 00 73 00 66 00 69 00 6C 00 00 00 2E 00 64 00
|
Номер фрагмента Символы 1-5 имени файла в Unicode Probl Атрибуты файла Байт флагов Контрольная сумма короткого имени Символы 6-11 имени файла в Unicode=emsfil Номер первого кластера Символы 12-13 имени файла в Unicode=.d |
160 |
32 |
42 6F 00 63 00 00 00 FF FF FF FF 0F 00 E5 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 FF FF FF FF
|
Номер фрагмента Символы 1-5 имени файла в Unicode oc Атрибуты файла Байт флагов Контрольная сумма короткого имени Символы 6-11 имени файла в Unicode= Номер первого кластера Символы 12-13 имени файла в Unicode=il |