Часть II: Файловые системы Windows
Глава 5. Файловая система FAT
Содержание
Файловая система File Allocation Table (с таблицей распределения файлов), или, как её более массово именуют, FAT, - это старая файловая система, которая все ещё применяется в наши дни. Файловая система была названа в честь своей основной организационной единицы, которая также носит название таблицы распределения файлов. Первоначальная версия файловой системы FAT была разработана для гибких дисков в 1977 году. С тех пор существует три основных версии FAT: FAT12, FAT16 и FAT32. Также был выпущен ряд ответвлений большинства основных версий FAT. Главным образом версии отличаются размером доступного адресуемого пространства. В FAT12 есть 212d общих адресов, в FAT16 - 216d, а в FAT32 - 228d.
Обычно FAT встречается в удаляемых устройствах (таких как устройства USB, камеры и т.п.), а раз так, эта файловая система по умолчанию поддерживается всеми основными операционными системами. В последние годы в стандартных удаляемых устройствах файловая система ExFAT начинает заменять FAT (ExFAT рассматривается как некий вариант файловой системы FAT, но достаточно более современная и она обсуждается в отдельной главе - Главе 6), но файловая система FAT всё ещё широко применяется (встроенные устройства, загрузочные системы UEFI, более старые удаляемые носители и так далее).
До появления NTFS (Глава 7) FAT была традиционной файловой системой Windows. Хотя NTFS была впервые выпущена в 1993 году и очень скоро стала стандартной для семейства операционных систем Windows NT, только в 2001 году, с выходом Windows XP, NTFS стала стандартной файловой системой в домашних ПК.
Традиционно имена файлов FAT были в формате 8.3. Это имя файла из восьми букв, за которым следует расширение их трёх букв. С появлением длинных имён файлов (LFN, long filenames), которые можно было применять во всех вариантах FAT, длина имён файлов была ограничена 255d символами. По умолчанию файловая система записывает даты и время создания и изменения, а также дату доступа. Время доступа или дата или время изменения метаданных не записываются.
На протяжении всей этой главы обсуждается вариант FAT32, но по структуре все варианты очень похожи. Способность анализа одного из них позволит аналитику очень быстро выполнить анализ любого из вариантов. В этой главе в качестве целевой версии выбрана FAT32, поскольку это наиболее вероятный вариант, с которым можно столкнуться.
В этом разделе анализируются некоторые важные структуры на диске в файловой системе FAT. Раздел начинается с обзора организации отформатированного в формате FAT тома, и того, какие структуры должны отображаться. в последующих разделах более подробно рассматривается каждая из этих структур. На этом этапе следует отметить, что, если не указано иное, все данные в файловой системе FAT хранятся в формате прямого порядка байт (little-endian).
Файловая система FAT состоит из трёх представляющих интерес основных областей, которые представлены на Рисунке 5.1. Зарезервированная область содержит сведения о файловой системе (FSINFO). В FAT12 и FAT16 обычно эта область содержит только один сектор (хотя это следует подтвердить перед анализом). В FAT32 эта область содержит больше информации, а, следовательно, всегда больше по размеру.
Во всех вариантах FAT содержит в нулевом секторе загрузочную запись тома (VBR, volume boot record) - Раздел 5.1.2. В FAT32 за ней обычно следует структура FSINFO Раздел 5.1.3. FAT32 также зачастую содержит резервную копию этих структур. Это означает, что резервируемая область FAT32 обычно намного больше чем в FAT12 и FAT16.
Вслед за резервируемой областью можно найти собственно таблицу FAT. Обычно имеются две копии этой таблицы в силу её особой важности для файловой системы FAT. Эти таблицы FAT позволяют восстанавливать с диска содержимое файла, а также делают возможной идентификацию пустых кластеров при выделении пространства для новых файлов.
Завершающей областью файловой системы FAT является область данных. В этой области находятся все файлы/ каталоги. Обычно (например, в FAT12 и FAT16) самое начало области данных всегда содержит структуру корневого каталога, начиная с которого исчисляется вся файловая система целиком. В FAT32 больше нет гарантии того что корневой каталог появляется в самом начале области данных; вместо этого его можно обнаружить где угодно внутри общей области данных. Его местоположение находится в VBR (хотя он обычно всё ещё пребывает в самом начале области данных).
VBR, также именуемый сектором загрузки, содержится в нулевом секторе своего тома. Эта структура содержит сведения относительно всей файловой системы в целом. В инструментарии Sleuth Kit, fsstat интенсивно пользуется этой структурой для сбора сведений о файловой системе. Таблицы 5.1 и 5.2 предоставляют информацию об этой структуре. Таблица 5.1 содержит сведения о первых 36d байт в VBR, которые являются общими для всех вариантов файловой системы FAT. Таблица 5.2 содержит сведения о последующих байтах в структуре как они представлены в FAT32. Значения байтов 510d и 511d (то есть последних двух байт в секторе 0) всегда должны иметь, соответственно, значения 0x55 и 0xAA. Это идентично последним двум байтам в секторе MBR (главной записи загрузки, master boot record).
Смещение | Размер | Название | Описание |
---|---|---|---|
|
|
Jump |
Инструкция безусловного перехода к коду загрузки |
|
|
OEM Name |
Название основного производителя (ASCII). Также носит название метки тома. |
|
|
Sector Size |
Размер каждого сектора в байтах (должен быть степенью 2 между 29 и 212). |
|
|
Cluster Size |
Число секторов в каждом кластере. |
|
|
Reserved Area |
Размер резервной области в секторах. |
|
|
# FATs |
Число представленных в этой файловой системе таблиц размещения файлов (FAT). |
|
|
Max. # Files |
Максимальное число допустимых в корневом каталоге файлов для FAT12/FAT16. Для FAT32 это значение обычно 0x00. |
|
|
# Sectors |
Общее число секторов в файловой системе, когда их меньше 216. Когда их больше 216, вместо этого применяются четыре байта по смещению 0x20, а эти значения равны нулю. |
|
|
Media Type |
0xF8 для фиксированного диска, 0xF0 для удаляемого диска. |
|
|
FAT Size |
В FAT12 и FAT16 содержит размер каждой из структур FAT. Для FAT22 это поле имеет значение 0x00. |
|
|
Sectors/Track |
Значение числа секторов/ дорожек в этом устройстве хранения. |
|
|
# Heads |
Значение числа головок в этом устройстве хранения. |
|
|
# Sectors |
Общее число секторов в этом устройстве. Применяется когда значения двух байт по смещению 0x13 не столь велики чтобы хранить это значение. Бедет применяться только одно из этих полей, другое будет содержать нули. |
|
|
Sector Offset |
Значение смещения в секторах до начала данной файловой системы в этом устройстве. |
Смещение | Размер | Название | Описание |
---|---|---|---|
|
|
FAT Size |
Размер каждой из структур FAT в секторах. |
|
|
FAT Write |
Описывает как записаны структуры FAT. Когда установлен бит 0x07, активна только одна структура (биты 0-3 описывают какая FAT активна); в противном случае все FAT зеркалированы. |
|
|
Version |
Главный/ вспомогательный номера версии. |
|
|
Root Directory |
Самый первый кластер структуры корневого каталога. |
|
|
FSINFO Sector |
Сектор, в котором находится структура FSINFO. Обычно он представлен непосредственно после VBR. |
|
|
VBR Backup |
Сектор, в котором находится резервная копия VBR (обычно 0x06). |
|
|
Reserved |
Заполнены нулями. |
|
|
OS Specific |
Зависящее от ОС поле, относящееся к загрузке. |
|
|
Unused |
Не применяется, обычно 0x00. |
|
|
Signature |
Значение подписи 0x29, следующие три поля допустимы при её установке. |
|
|
Serial Number |
Серийный номер тома. |
|
|
Volume Label |
Метка тома в ASCII. |
|
|
FS Type |
Тип файловой системы (например, FAT32 – но в этом поле ничего не требуется). |
Обработка VBR позволяет определить все остальные структуры. Например, местоположения структуры FSINFO и резервная копия VBR расположены непосредственно в основной VBR. Значение FAT 0 начинается непосредственно после резервной области, и её размер определяется из VBR. За нею следует FAT 1, которая имеет тот же размер, что и FAT 0. За FAT 1 следует область данных. Значение начального кластера корневого каталога также находится в VBR. Далее показано преобразование кластера в физическое смещение в байтах (раздел 5.1.7).
Структура FSINFO это не обязательная структура в FAT32, местоположение которой определено в самой VBR. Эта структура применяется для оптимизации выделения пространства под новые файлы. Определение структуры FSINFO предоставлено в Таблице 5.3. Поскольку она служит для выделения пространства, содержащиеся в этой структуре сведения в основном относятся к свободным кластерам в данном устройстве. С точки зрения криминалистики файловой системы данная структура FSINFO не является жизненно необходимой.
Смещение | Размер | Название | Описание |
---|---|---|---|
|
|
Signature |
0x41615252. |
|
|
Unused |
Не применяется. |
|
|
Signature |
0x61417272. |
|
|
# Free Clusters |
Число свободных кластеров в устройстве. |
|
|
Next Free Cluster |
Следующий свободный кластер в устройстве. |
|
|
Unused |
Не применяется. |
|
|
Signature |
Подпись конца сектора (0xAA550000). |
Таблица размещения файлов (FAT) настолько важна для файловой системы FAT, что в честь этой структуры была названа сама файловая система. Таблица размещения файлов служит двум целям. Во-первых, она действует как побитовая карта распределения (хотя и применяет более одного бита на кластер), что позволяет действенно определять состояние выделения кластера. Во-вторых, она позволяет определить местонахождение следующего выделенного кластера в файле/каталоге. Самый первый кластер файла/каталога находится в записи каталога (раздел 5.1.5), в то время как последующие кластеры расположены в структурах FAT.
По причине своей важности, в большинстве файловых систем FAT обычно присутствуют две структуры FAT (хотя это всегда должно быть подтверждено в VBR). Каждый кластер представлен одной записью в таблице FAT. Размер каждой записи зависит от применяемой версии FAT. В файловой системе FAT12 для каждой записи используется 12 бит, в FAT16 - 16 бит, а в FAT32 - 32 бита. (Строго говоря, в FAT32 для адресации применяются только 28 бит!) Название варианта файловой системы на самом деле является производным от количества применяемых для представления кластера в таблице FAT бит.
Каждый кластер в файловой системе задаётся неким значением в своей таблице FAT. Значение 0x00000000 (в FAT32) означает что этот кластер не распределён. Любое превышающее 0xOFFFFFF8 значение обычно означает маркер конца файла, в то время как значение 0xOFFFFFF7 подразумевает некий кластер, содержащий один или более повреждённых кластеров. Самый первый номер кластера в файловой системе FAT это 2d. Что подразумевает, что первые две записи в таблице FAT применяются иным образом, в отличии от остальных. Они могут применяться для прочих целей хранения. Официально кластер 0d используется для демонстрации типа носителя. Самый последний байт тот же самый, что и находящийся в своём секторе загрузки, в то время как оставшиеся 20d бит установлены в значение единицы. Для фиксированного носителя это приводит к значению 0x0FFFFFF8. Второй кластер хранит значение конца маркера цепочки, хотя может оказаться и так, что в нём может появиться и любое значение выше 0x0FFFFFF7, которое принимается в качестве маркера окончания цепочки.
Рассмотрим некий файл, занимающий в своей файловой системе три кластера (кластеры 3, 6 и 4). Листинг 5.1 отображает некую выдержку из такой структуры FAT. Три представляющих интерес кластера выделены подчёркиванием. Чтобы восстановить содержимое данного файла, значение начального кластера прежде всего определено в Записи каталога (Directory Entry, раздел 5.1.5), 3d. Далее мы обращаемся к записи для кластера 3d в таблице FAT. В этом местоположении мы определяем значение 0x06. Это означает, что следующим кластером в искомой цепочке будет 6d. Обращение к к этой позиции в FAT показывает, что последующим кластером в содержимом нашего файла является 4d. При изучении записи для кластера 4d выявляется маркер конца файла (0x0FFFFFFF). Объединение этих сведений демонстрирует, что содержимое данного файла занимает кластеры 3, 6 и 4.
Листинг 5.1. Пример таблицы FAT FAT32, отображающее хранение файла в кластерах 3, 6 и 4.
00000: f8ff ff0f ffff ff0f f8ff ff0f 0600 0000 ................
00010: ffff ff0f 0000 0000 0400 0000 0800 0000 ................
00020: 0900 0000 0a00 0000 0b00 0000 0c00 0000 ................
Листинг 5.1 к тому же отражает то как в файловой системе FAT обрабатывается фрагментация файла. Тот факт, что в записях каталога хранится только начальный кластер, для определения последующих кластеров в цепочке требует обращения к этой таблице FAT. Следовательно, в файловой системе FAT нет разницы в способах восстановления непрерывных и фрагментированных файлов. В каждом случае исходный кластер идентифицируется в записи каталога, а затем из таблицы FAT извлекается вся цепочка FAT. (В случае небольших файлов, т.е. файлов, для которых требуется только один кластер, для восстановления всего файла нет необходимости обращаться к FAT.)
По большому счёту каталоги в файловой системе FAT это обычные файлы, которые в качестве содержимого включают в себя последовательность записей каталога. Запись каталога это структура из 32d байт, которая содержит имя файла и все связанные с этим файлом метаданные. Для криминалистики FAT такая структура записи каталога имеет жизненную важность. Она позволяет перечислять все файлы тома, вырабатывать метаданные файла и выделять содержимое файла.
В FAT применяются два типа записей каталога. Всякий файл в файловой системе FAT будет обладать одной из этих структур. Таблица 5.4 отражает соответствующую структуру для общей записи каталога. Однако эта структура ограничена длиной имени файла, допуская лишь имена файлов 8.3. Тем самым, имеется второй тип записи каталога с названием записи каталога LFN. Эта структура отображена в Таблице 5.6. Она допускает длину имён файлов больше обычного формата 8.3.
Смещение | Размер | Название | Описание |
---|---|---|---|
|
|
File Name |
Имя файла (первые 8 из общей схемы именования 8.3). В Случае, когда имена файлов короче восьми байт, остающиеся байты заполняются нулями. Когда первый байт 0xE5 или 0x00, эта запись каталога перестаёт быть выделенной. |
|
|
File Extension |
Значение расширения файла (последние 3 из общей схемы 8.3). |
|
|
Reserved |
Зарезервирован. |
|
|
Creation Time (10−1с) |
Компонент долей секунды значения времени создания. Допустимые значения в диапазоне 0d - 199d. |
|
|
Creation Time |
Структура времени FAT, представляющая значение времени создания (Раздел 5.1.6). |
|
|
Creation Date |
Структура даты FAT, представляющая значение даты создания (Раздел 5.1.6). |
|
|
Access Date |
Структура даты FAT, представляющая значение даты последнего доступа (Раздел 5.1.6). |
|
|
First Cluster (Hi) |
Высшие два байта значения адреса самого первого кластера содержимого этого файла. В FAT12 и FAT16 они всегда нули. |
|
|
Modification Time |
Структура времени FAT, представляющая значение времени изменения содержимого (Раздел 5.1.6). |
|
|
Modification Date |
Структура даты FAT, представляющая значение даты изменения содержимого (Раздел 5.1.6). |
|
|
First Cluster (Lo) |
Значения нижних двух байт значения адреса самого первого кластера содержимого файла. В FAT12/FAT16 именно эти два байта всё то, что необходимо. Значения высших двух байт никогда не применяются. |
|
|
File Size |
Размер файла в байтах (0 для каталогов). |
Значение | Интерпретация |
---|---|
|
Read-only |
|
Hidden |
|
System File |
|
Volume Label |
|
Long File Name |
|
Directory |
|
Archive |
Имеется ряд моментов, которые следует отметить относительно имеющейся структуры записи каталога FAT. Прежде всего, 32d байт это совсем небольшое пространство для хранения очень подробных сведений о файле. Если вы сопоставите вывод команды istat Sleuth Kit при её запуске для файловой системы FAT для более современной и более сложной файловой системы, вы обнаружите большие отличия в объёме информации отчёта. Листинг 5.2 отражает такой пример для вывода из файловых систем FAT32 и ext4. Совершенно ясно, что ext4 содержит больше сведений метаданных по сравнению с FAT. Имеются, к примеру, четыре временные метки, а не всего лишь три, которые мы находим в FAT. Эти временные метки более подробны в ext4, нежели в FAT, хотя в Листинге 5.2 они и были усечены, и предоставляют наносекундную степень детализации в противоположность степени детализации в две секунды для FAT. К тому же, ext4 предоставляет выработанные ID, UID, GID, mode и ряд ссылок, в FAT не предоставляет ничего из этого. Тем не менее, имеется один предоставляемый FAT фрагмент сведений, который отсутствует в ext4, по крайней мере в её структуре метаданных, и это имя файла. Основным ключевым моментом при выполнении криминалистики файловой системы является то, что все файловые системы различаются. Они хранят различные сведения. Существенно чтобы аналитики полностью понимали те сведения, которые можно получить в определённой файловой системе и все ограничения, относящиеся к этой информации.
Листинг 5.2. Различия в выводе istat для различных файловых систем. Первый вывод приводится для файловой системы FAT, в то время как второй для ext4 Глава 9. Обратите внимание, что временные метки ext4 усечены.
Directory Entry: 7
Allocated
File Attributes: File, Archive
Size: 94
Name: TEST.TXT
Directory Entry Times:
Written: 2021-11-01 10:46:44 (UTC)
Accessed: 2021-11-01 00:00:00 (UTC)
Created: 2021-11-01 10:46:44 (UTC)
Sectors:
4488 0 0 0 0 0 0 0
inode: 7604675
Allocated
Group: 928
Generation Id: 1508300432
uid / gid: 0 / 0
mode: rrw-r--r--
Flags: Extents,
size: 2121728
num of links: 1
Inode Times:
Accessed: 2021-11-01 12:23:..
File Modified: 2021-11-01 11:50:..
Inode Modified: 2021-11-01 11:50:..
File Created: 2021-11-01 11:23:..
Direct Blocks:
25645056 25645057 25645058 256450..
Рассмотрим вывод istat при её выполнении в файловой системе FAT (Листинг 5.2). Потенциально можно запутаться в имеющихся значениях временных меток. Этот файл был и создан, и записан в последний раз 10:46:44 (UTC) 1 ноября 2021. Это непонятно. Из этих значений следует, что файл был создан, а затем никогда не изменялся после создания. Однако при рассмотрении времени последнего доступа возникает путаница. Sleuth Kit показывает, что последний доступ к файлу был осуществлён в 00:00:00 1 ноября 2021. Это более чем за 10 часов до того, как файл был создан! Очевидно, что-то неверно, поскольку к файлу невозможно выполнять доступ до его создания. Изучим те сведения, которые доступны в общей записи каталога FAT (Таблица 5.4) и в особенности взглянем на доступные значения даты/ времени. Хотя и дата, и время имеются и для создания, и для изменения, значения доступа обладает в доступности лишь датой. В записи каталога FAT нет структуры времени доступа! Sleuth Kit (и многие прочие инструменты) предпочитают отображать значение 00:00:00, когда оно отсутствует на самом деле. Как мы надеемся, читатель способен видеть возможные проблемы в случае обращения к нему с вопросом об этом в суде. Автор полагает, что показания эксперта можно поставить под сомнение, просто спросив, каким образом был получен доступ к файлу до его создания. Если аналитик не знает о сохраняемых в файловой системе FAT данных и о том, как инструменты судебной экспертизы создают отчёт об этих данных, он не сможет ответить на данный вопрос!
LFN запись каталога допускает имена файлов с длиной более традиционной схемы 8.3. Вся структура записи LFN отражена в Таблице 5.6. Как правило, записи LFN находятся в обратном порядке до самой реальной записи каталога. Значение номера sequence применяется для подтверждения установленного порядка этих записей. Значение номера sequence самой последней LFN для файла (обычно самой первой записи каталога, появляющейся в этой последовательности записей каталога) определяется по XOR с 0x40, следовательно, для получения её реального значения, это значение надлежит отразить обратно, то есть снова выполнив XOR с 0x40. Листинг 5.3 отображает пример файла с LFN (это файл образа диска FAT32_V2.E01 - см. Раздел 5.2.2).
Смещение | Размер | Название | Описание |
---|---|---|---|
|
|
Sequence |
Номер последовательности в данной записи LFN. Когда здесь значением является 0xE5 или 0x00, данная запись каталога не выделена. |
|
|
Filename (1–5) |
Символы 1-5 имени файла. Отметим, что символы хранятся в формате UTF-16. |
|
|
Flags |
Флаги, содержащие атрибуты файла (см. Таблицу 5.5). В случае LFN этим значением всегда должно быть 0x0F. |
|
|
Reserved |
Зарезервировано. |
|
|
Checksum |
Контрольная сумма значения короткого имени из генерируемой впоследствии общей записи каталога. |
|
|
Filename (6–11) |
Символы 6-11 имени файла. |
|
|
Reserved |
Зарезервировано - должны быть нулями. |
|
|
Filename (12–13) |
Символы 12–13 имени файла. |
Листинг 5.3. Три записи каталога для файла с длинным именем файла. Первые две записи являются LFN, а последняя запись является общей записью каталога.
1040e0: 422e 006a 0070 0067 0000 000f 0052 ffff B..j.p.g.....R..
1040f0: ffff ffff ffff ffff ffff 0000 ffff ffff ................
104100: 0174 0068 0065 006c 006f 000f 0052 6e00 .t.h.e.l.o...Rn.
104110: 6700 6200 7200 6900 6400 0000 6700 6500 g.b.r.i.d...g.e.
104120: 5448 454c 4f4e 7e31 4a50 4720 006d 9764 THELON~1JPG .m.d
104130: 5b57 5b57 0000 9764 5b57 4500 de5a 0300 [W[W...d[WE..Z..
В Листинге 5.3 каждая запись LFN каталога обладает значением флага 0x0F (выделено подчёркиванием). В каждом случае значение контрольной суммы равно 0xA0, что указывает на то, что, скорее всего, LFN принадлежат одному и тому же файлу (очевидно, что при использовании только контрольной суммы из одного байта существует большая вероятность возникновения ошибки). Первый байт в каждой записи представляет значение sequence. Эти байты равны 0x42 и 0x01. Как указывалось ранее, байт sequence в первой записи преобразуется по XOR с 0x40, что даёт:
01000010 ⊕ 01000000 = 00000010 = 0x02
Данный результат показывает, что первая запись LFN является последней частью имени файла с порядковым номером 2. Компоненты имён каждого из каталогов LFN можно объединить и получить: thelongbridge.jpg.
Раздел 3.4 представил значения эпох времени, в которых время реализуется в компьютере в качестве счётчика конкретного момента. Семейство файловых систем FAT это единственная файловая система, которая не применяет систему времени на основе эпохи. Вместо этого FAT пользуется полями бит для хранения значений даты и времени.
Поле даты FAT это структура из двух байт, которая делится на три обособленных компоненты, год, месяц и день. Эта структура поля бит показана на Рисунке 5.2. Здесь наиболее значимые семь бит применяются для представления года. Это делает возможными 27 = 128d возможных значений. Таким образом, FAT определяет нулевым годом 1980. Это подразумевает, что для получения истинного года к данному сохранённому значению надлежит добавить 1980. Следующие четыре бита представляют значения месяца, а последние пять бит выступают значением дня.
Чтобы продемонстрировать дату FAT, рассмотрим значение 0x5361. Оно преобразуется так:
0x5361
Binary 0101 0011 0110 0001b
Group 0101001b 1011b 00001b
Convert 41d 11d 1d
Y + 1980 2021d 11d 1d
Следовательно, дата FAT 0x5361 в действительности это 1 ноября 2021. Время FAT применяет тот же самый метод хранения (Рисунок 5.3). Здесь пять наиболее значимых бит представляют величину часов, в то время как следующие шесть бит представляют минуты. это оставляет пять бит для представления значений секунд; тем не менее, это предоставляет лишь 25 = 32d возможных значений. Раз этого недостаточно для представления 60d секунд, значение времени FAT на самом деле запись секунд, делённых на два!
Рассмотрим значение времени FAT 0x5DC5. Воспользуемся тем же методом, что был применён для даты FAT и мы получим преобразованное в воспринимаемую людьми форму:
0x5DC5
Binary 0101 1101 1100 0101b
Group 01011b 101110b 00101b
Convert 11d 46d 5d
S × 2 11d 46d 10d
Это результат для значения времени 11:46:10 или 11:46:11. (Здесь нет дробной части; следовательно 10/2 = 11/2 = 5.) Хранимое в файловых системах значение времени FAT запоминается как локальное время, иначе говоря, во временной зоне своего компьютера. Это отличается от большинства современных файловых систем, которые обычно хранят время в виде UTC.
Ранее уже упоминалось, что область кластеров в FAT начинается в области данных (см. Рисунок 5.1). Самый первый кластер в файловой системе FAT это кластер 2d. Как эти номера кластеров соотносятся с секторами в своей файловой системе FAT? Чтобы определить реальный сектор, необходимо получить определённые сведения из VBR. Они содержать размер кластера (CSize); размер зарезервированной области (RSize); размер FAT (FATSize) и число FAT (FAT#).
Номер сектора, S#, соответствующий номеру кластера C#, задаётся уравнением 5.1.
S# = [(C# − 2) × CSize] + RSize + (FAT# × FATSize) (5.1)
Получаемое значение, S#, это номер физического сектора в нашей файловой системе, который далее умножается на величину размера сектора для получения реального смещения в байтах в этой файловой системе.
В этом разделе обсуждается анализ файловой системы FAT32. Данный раздел начинается с предоставления сведений о том как создаётся файловая система FAT32, а затем следует краткое описание тех файловых систем, которые предоставляются для анализа в остатке этой главы.
Файловая система FAT32 может быть создана во всех операционных системах. Для терминала Linux соответствующая команда создания FAT32 представлена в Листинге 5.4, где dev_id это идентификатор устройства (например, /dev/sdc2; предостережение: исполнение данной команды перезапишет любую ранее имевшуюся файловую систему в данном разделе).
Листинг 5.4. Применение mkfs для создания файловой системы FAT32.
mkfs.vfat -F 32 -n "FAT_FS" dev_id
Команда mkfs.vfat создаёт файловую систему FAT. Конкретный тип файловой системы (FAT12, FAT16 или FAT32) определяется значением флага -F. Когда он опущен, mkfs.vfat подберёт тот вариант, который наиболее подходит для размера применяемого раздела. Команда Листинга 5.4 также при помощи значения флага -n определяет название файловой системы (FAT_FS).
На протяжении этой главы мы проанализируем целый ряд образов диска. Они доступны с вебсайта книги и суммируются в Таблице 5.7. Листинг 5.5 отражает файлы/ каталоги, представленные в FAT32_V1.E01. Для воссоздания удалённого FAT32_V2.E01 Files/delete.txt, был создан Files/thelongbridge.jpg, а файл info.txt был замещён этой обновлённой версией.
Листинг 5.5. Перечисление файлов начальной версии файловой системы FAT32, применяемой в этой главе.
/-- Files
/-- delete.txt
/-- info.txt
/-- cliffs.jpg
Значение | Интерпретация |
---|---|
FAT32_V1.E01 |
Базовая файловая система с тремя файлами и одним каталогом. |
FAT32_V2.E01 |
Это FAT32_V1.E01 с удалённым файлом delete.txt и добавленным новым файлом с названием thelongbridge.jpg. |
FAT32_V3.E01 |
Применяемая в упражнениях этой главы файловая система. |
Чтобы читатель смог полностью разобраться с файловой системой FAT32, данный раздел представит ему анализ вручную данной файловой системы. Существует ряд этапов, которым необходимо следовать для успешного анализа файловой системы FAT32. Вот они:
-
Обработка VBR: Чтобы определить схему вашего устройства, обрабатывается его VBR. На протяжении данного процесса необходимо определить точные местоположения области резервирования, области FAT и области данных. Кроме того, требуется значение местоположения корневого каталога.
-
Обработка корневого каталога: Корневой каталог обрабатывается начиная с записи Volume Label (метки тома) и продолжается с теми файлами, которые пребывают собственно в корневом каталоге.
-
Обработка подкаталогов: Все каталоги, которые определены в корневом каталоге обрабатываются точно так же как и сам корневой каталог. После обработки всех каталогов может быть составлен список содержимого всей файловой системы.
-
Восстановление метаданных/ Содержимого: Наконец, из этой файловой системы восстанавливаются метаданные и содержимое файла.
В последующих разделах эти этапы представлены более подробно при помощи FAT32_V1.E01 в качестве примера.
Обработка VBR
Анализ файловой системы FAT начинается с обработки её VBR. Тип запрашиваемых сведений указан в выводе команды fsstat Sleuth Kit. Этот инструмент fsstat обрабатывает не только VBR, он также просматривает структуру FSINFO (Раздел 5.1.3), а также метку тома из корневого каталога. В данном разделе обрабатываются все необходимые сведения из VBR и FSINFO. Листинг 5.6 отображает вывод fsstat для FAT32_V1.E01.
Листинг 5.6. Частичный вывод fsstat для FAT32_V1.E01.
FILE SYSTEM INFORMATION
--------------------------------------------
File System Type: FAT32
OEM Name: mkfs.fat
Volume ID: 0x2232cfe0
Volume Label (Boot Sector): FAT_FS
Volume Label (Root Directory): FAT_FS
File System Type Label: FAT32
Next Free Sector (FS Info): 2608
Free Sector Count (FS Info): 1045960
Sectors before file system: 2048
File System Layout (in sectors)
Total Range: 0 - 1048575
* Reserved: 0 - 31
** Boot Sector: 0
** FS Info Sector: 1
** Backup Boot Sector: 6
* FAT 0: 32 - 1055
* FAT 1: 1056 - 2079
* Data Area: 2080 - 1048575
** Cluster Area: 2080 - 1048575
*** Root Directory: 2080 - 2087
METADATA INFORMATION
--------------------------------------------
Range: 2 - 16743942
Root Directory: 2
CONTENT INFORMATION
--------------------------------------------
Sector Size: 512
Cluster Size: 4096
Total Cluster Range: 2 - 130813
Для выполнения анализа файловой системы FAT следует получить такие сведения: размер сектора; размер кластера; размер резервной области; число FAT; размер FAT; а также значение начального кластера корневого каталога.
Листинг 5.7. Выдержка VBR из FAT32_V1.E01.
000000: eb58 906d 6b66 732e 6661 7400 0208 2000 .X.mkfs.fat... .
000010: 0200 0000 00f8 0000 3f00 ff00 0008 0000 ........?.......
000020: 0000 1000 0004 0000 0000 0000 0200 0000 ................
000030: 0100 0600 0000 0000 0000 0000 0000 0000 ................
000040: 8000 29e0 cf32 2246 4154 5f46 5320 2020 ..)..2"FAT_FS
000050: 2020 4641 5433 3220 2020 0e1f be77 7cac FAT32 ..w..
000060: 22c0 740b 56b4 0ebb 0700 cd10 5eeb f032 ".t.V.......^..2
Листинг 5.7 отображает содержимое VBR из FAT32_V1.E01. Приведённые выше значения этого VBR находятся в Таблице 5.8. Обработка оставшейся части структуры VBR оставлена нашему читателю в качестве упражнения.
Смещение | Размер | Название | Значение |
---|---|---|---|
|
|
Размер сектора |
|
|
|
Размер кластера |
|
|
|
Зарезервированная область |
|
|
|
Число FAT |
|
|
|
Размер FAT |
|
|
|
Кластер корневого каталога |
|
Таблица 5.8 предоставляет достаточные сведения для соответствия всей файловой системе целиком. Зарезервированная область составляет в размере 32d сектора. За нею следуют 2d таблицы FAT, причём каждая из них состоит из 1024d секторов. Область данных находится сразу после 2080d сектора (то есть 32d + 1024d + 1024d).
Завершающей задачей является определение местоположения самого корневого каталога. Таблица 5.8 показывает, что начальным кластером нашего корневого каталога является кластер 2d. Воспользовавшись этим значением, а также тем, что имеется в Таблице 5.8, Уравнение 5.1 даёт:
S# = [(2 − 2) × 8)] + 32 + (2 × 1024) = 2080d
Этот результат означает, что наш корневой каталог находится в самом начале области данных, в секторе 2080d. Для целей анализа этой файловой системы достаточно одного кластера. В прочих файловых системах чтобы определить что требуется больше кластеров может потребоваться следовать цепочке FAT из таблицы FAT, начиная с кластера 2d.
Обработка каталога корня
Раз местоположение корневого каталога определено, наш следующий этап заключается в его обработке. Листинг 5.8 отображает содержимое нашего корневого каталога. Самая первая запись в корневом каталоге это значение метки тома. За ней следует LFN и обычные записи каталога. В листинге 5.8 такие общие записи выделены подчёркиванием.
Листинг 5.8. Содержимое корневого каталога из FAT32_V1.E01. Самая первая запись это метка тома, подчёркнутые элементы это обычные записи каталога. Остальные записи это LFN.
104000: 4641 545f 4653 2020 2020 2008 0000 4d65 FAT_FS ...Me
104010: 5b57 5b57 0000 4d65 5b57 0000 0000 0000 [W[W..Me[W......
104020: 4146 0069 006c 0065 0073 000f 0079 0000 AF.i.l.e.s...y..
104030: ffff ffff ffff ffff ffff 0000 ffff ffff ................
104040: 4649 4c45 5320 2020 2020 2010 004e a85d FILES ..N.]
104050: 5b57 5b57 0000 a85d 5b57 0300 0000 0000 [W[W...][W......
104060: 4169 006e 0066 006f 002e 000f 00d8 7400 Ai.n.f.o......t.
104070: 7800 7400 0000 ffff ffff 0000 ffff ffff x.t.............
104080: 494e 464f 2020 2020 5458 5420 005e 885d INFO TXT .^.]
104090: 5b57 5b57 0000 885d 5b57 0400 8f00 0000 [W[W...][W......
1040a0: 4163 006c 0069 0066 0066 000f 00e2 7300 Ac.l.i.f.f....s.
1040b0: 2e00 6a00 7000 6700 0000 0000 ffff ffff ..j.p.g.........
1040c0: 434c 4946 4653 2020 4a50 4720 0070 985d CLIFFS JPG .p.]
1040d0: 5b57 5b57 0000 985d 5b57 0500 eae9 0300 [W[W...][W......
Таблица 5.9 показывает некоторые из обработанных значений общих записей каталога из корневого каталога. Отсюда видно, что в корневом каталоге данной файловой системы имеется один каталог (Files) и два файла. Отметим, что при обработке записей корневого каталога также восстанавливаются метаданные этих файлов. Единственной структурой для обработки остаётся значение метки тома (показана в Разделе 5.3.2)
Смещение | Размер | Название | Запись1 | Запись2 | Запись3 |
---|---|---|---|---|---|
|
|
Имя файла |
FILES |
INFO.TXT |
CLIFFS.JPG |
|
|
Флаги |
|
|
|
|
|
Зарезервировано |
|
|
|
|
|
Время создания (10-1) |
|
|
|
|
|
Время создания |
|
|
|
|
|
Дата создания |
|
|
|
|
|
Дата доступа |
|
|
|
|
|
Первый кластер (hi) |
|
|
|
|
|
Время изменения |
|
|
|
|
|
Дата изменения |
|
|
|
|
|
Первый кластер (lo) |
|
|
|
|
|
Размер файла |
|
|
|
Обработка подкаталогов
Наш следующий этап в обработке файловой системы FAT состоит в обработке подчинённых каталогов. Подкаталоги по структуре идентичны корневому каталогу (за исключением того, что что они не обладают записью метки тома). Таким образом, все подкаталоги могут обрабатываться точно так же как наш корневой каталог. После того как обработаны все подкаталоги, завершено перечисление всех файлов в нашей файловой системе.
Восстановление метаданных / содержимого
Завершающий этап анализа файловой системы FAT заключается в восстановлении сведений метаданных и содержимого файла. Для восстановления очень желательной стороной выступает обработка каталогов. Поскольку все метаданные хранятся в записях каталогов, при обработке этих записей также восстанавливаются метаданные. Предоставленные в Таблице 5.9 сведения содержат все метаданные файлов/ каталогов для файлов/ каталогов корневого каталога.
Для восстановления содержимого определённого файла также необходимо обратиться к Таблице 5.9. Рассмотрим файл
INFO.TXT. Самый первый кластер этого файла это
0x04
(4d) и он имеет
в длину 0x8F
(143d)
байт. Кластер 4d находится в секторе с номером:
S# = [(4 − 2) × 8)] + 32 + (2 × 1024) = 2096d
Листинг 5.9 показывает 0x8F байт в секторе номер 2096d.
Листинг 5.9. Содержимое сектора 2096d, то есть INFO.TXT.
$ xxd -s $((512 * 2096)) -l $((0x8F)) mnt/ewf1
106000: 5468 6973 2069 7320 6120 4641 5433 3220 This is a FAT32
106010: 6669 6c65 2073 7973 7465 6d20 636f 6e74 file system cont
106020: 6169 6e69 6e67 2074 6872 6565 2066 696c aining three fil
106030: 6573 2061 6e64 206f 6e65 2064 6972 6563 es and one direc
106040: 746f 7279 2e20 0a54 6865 2066 696c 6573 tory. .The files
106050: 2069 6e63 6c75 6465 3a0a 0a2f 2d20 4669 include:../- Fi
106060: 6c65 730a 2020 202f 2d20 6465 6c65 7465 les. /- delete
106070: 2e74 7874 0a2f 2d20 696e 666f 2e74 7874 .txt./- info.txt
106080: 0a2f 2d20 636c 6966 6673 2e6a 7067 0a ./- cliffs.jpg.
Но что относительно файлов большей длины? INFO.TXT имел лишь 143d байт, намного меньше единственного кластера. Что если это такой файл как CLIFFS.JPG, который имеет 0x3E9EA (256 490d) байт, начинающихся с кластера0x05 (5d)? Поскольку это намного больше значения размера кластера (4096d байт), необходимо воспользоваться множеством кластеров. Его запись каталога предоставляет лишь самый первый кластер. В данной ситуации мы обращаемся к таблице FAT. Листинг 5.10 отражает часть таблицы FAT для данной файловой системы. Отсюда следует, что значением позиции 5d является 0x06. Это означает, что вторым кластером является 0x06 (6d). Считывание его значения здесь даёт 0x07 и так далее. Так получилось, что это файл занимает последовательные кластеры (5d - 67d). Запись таблицы FAT для кластера 67d показывает 0xFFFFFFF, то есть маркер конца цепочки.
Листинг 5.10. Часть таблицы FAT FAT32_V1.E01 Кластеры 5d (первый кластер) и 67d (заключительный кластер) выделены подчёркиванием.
004000: f8ff ff0f ffff ff0f f8ff ff0f ffff ff0f ................
004010: ffff ff0f 0600 0000 0700 0000 0800 0000 ................
004020: 0900 0000 0a00 0000 0b00 0000 0c00 0000 ................
004030: 0d00 0000 0e00 0000 0f00 0000 1000 0000 ................
004040: 1100 0000 1200 0000 1300 0000 1400 0000 ................
004050: 1500 0000 1600 0000 1700 0000 1800 0000 ................
004060: 1900 0000 1a00 0000 1b00 0000 1c00 0000 ................
004070: 1d00 0000 1e00 0000 1f00 0000 2000 0000 ............ ...
004080: 2100 0000 2200 0000 2300 0000 2400 0000 !..."...#...$...
004090: 2500 0000 2600 0000 2700 0000 2800 0000 %...&...’...(...
0040a0: 2900 0000 2a00 0000 2b00 0000 2c00 0000 )...*...+...,...
0040b0: 2d00 0000 2e00 0000 2f00 0000 3000 0000 -......./...0...
0040c0: 3100 0000 3200 0000 3300 0000 3400 0000 1...2...3...4...
0040d0: 3500 0000 3600 0000 3700 0000 3800 0000 5...6...7...8...
0040e0: 3900 0000 3a00 0000 3b00 0000 3c00 0000 9...:...;...<...
0040f0: 3d00 0000 3e00 0000 3f00 0000 4000 0000 =...>...?...@...
004100: 4100 0000 4200 0000 4300 0000 ffff ff0f A...B...C.......
004110: ffff ff0f 0000 0000 0000 0000 0000 0000 ................
004120: 0000 0000 0000 0000 0000 0000 0000 0000 ................
Поскольку этот файл непрерывный, его можно восстановить одной показанной в Листинге 5.11 командой. Начальный сектор для этого файла 2104d. Получаемый в результате файл отображён на Рисунке 5.4.
Листинг 5.11. Необходимая для восстановления файла CLIFFS.JPG команда и её подтверждающее MD5.
$ dd if=mnt/ewf1 of=cliffs.jpg bs=1 skip=$((2104*512))
count=$((0x3E9EA))
256490+0 records in
256490+0 records out
256490 bytes (256 kB, 250 KiB) copied, 6.63272 s, 38.7 kB/s
$ md5sum cliffs.jpg
074a76548594690e2072fe0237042e2c cliffs.jpg
Эти методы применяются для восстановления всех файлов в FAT32, позволяя проверку результатов инструментов криминалистики файловой системы. В качестве упражнений оставляем читателю обработку остальных структур из FAT32_V1.E01.
Файловая система FAT является простейшей из файловых систем, и она всё ещё постоянно применяется. В данном разделе мы рассмотрим только продвинутые темы удалённых файлов и значения метки тома.
Листинг 5.12 показывает содержимое каталога Files из FAT32_V1.E01. Этот каталог содержит файл с названием delete.txt. Обычная запись каталога выделена подчёркиванием. Её обработка демонстрирует, что содержимое этого файла расположено в кластере 0x44 (68d) и оно, в соответствии с Уравнением 5.1 находится в секторе 2 608d. Листинг 5.13 показывает содержимое данного сектора, очевидно отражающее содержимое удалённого файла.
Листинг 5.12. Запись каталога для delete.txt из FAT32_V1.E01.
105040: 4164 0065 006c 0065 0074 000f 009f 6500 Ad.e.l.e.t....e.
105050: 2e00 7400 7800 7400 0000 0000 ffff ffff ..t.x.t.........
105060: 4445 4c45 5445 2020 5458 5420 004e a85d DELETE TXT .N.]
105070: 5b57 5b57 0000 a85d 5b57 4400 2c00 0000 [W[W...][WD.,...
Листинг 5.13. Содержимое сектора 2 608d из FAT32_V1.E01 перед удалением файла delete.txt.
146000: 5468 6973 2066 696c 6520 7769 6c6c 2062 This file will b
146010: 6520 6465 6c65 7465 6420 696e 2046 4154 e deleted in FAT
146020: 3332 5f56 322e 4530 312e 0a0a 32_V2.E01.......
В представляемой FAT32_V1.E01 файловой системе этот файл был удалён. Изучение сектора 2 608d из данного образа демонстрирует, что собственно содержимое этого файла всё ещё присутствует на диске. Это показывается в Листинге 5.14. Данный пример означает, что удаление файла автоматически не перезаписывает содержимое в FAT32, такой файл лишь помечается удалённым. Могут ли эти сведения быть восстановлены с применением структур имеющейся файловой системы, или же он может быть восстановлен лишь с применением методик вырезания данных (data carving)?
Листинг 5.14. Содержимое сектора 2 608d из FAT32_V1.E01 после удаления файла delete.txt.
146000: 5468 6973 2066 696c 6520 7769 6c6c 2062 This file will b
146010: 6520 6465 6c65 7465 6420 696e 2046 4154 e deleted in FAT
146020: 3332 5f56 322e 4530 312e 0a0a 32_V2.E01.......
Листинг 5.15 отражает записи каталога для этого файла из FAT32_V1.E01. Прежде всего, мы наблюдаем, что они всё ещё присутствуют, причём как для его записей LFN, так и для обычной (выделены подчёркиванием). Самый первый байт в каждой из записей был изменён на считывание 0xE5, указывая на то, что данные записи каталога больше не отведены под файл. Тем не менее, остальная часть содержимого записи каталога остаётся неизменной. Это означает, что метаданные этого файла могут быть восстановлены. Значение имени файла в общей записи каталога пребывает с пропущенным первым символом; тем не менее, LFN название файла остаётся нетронутым. Тем самым, значение имени файла также может быть восстановлено (строго говоря, если имелось множество LFN, значения последующих номеров были бы неизвестны; однако, как правило, они располагаются в порядке от последнего к первому, так что можно догадаться об исходных LFN) совместно с прочими метаданными.
Листинг 5.15. Запись каталога для удалённого файла delete.txt.
105040: e564 0065 006c 0065 0074 000f 009f 6500 .d.e.l.e.t....e.
105050: 2e00 7400 7800 7400 0000 0000 ffff ffff ..t.x.t.........
105060: e545 4c45 5445 2020 5458 5420 004e a85d .ELETE TXT .N.]
105070: 5b57 5b57 0000 a85d 5b57 4400 2c00 0000 [W[W...][WD.,...
Но что относительно его содержимого? Общая запись содержит значение начального кластера и размер этого файла. Эти сведения всё ещё имеются. Далее изучаем таблицу FAT (Листинг 5.16).
Листинг 5.16. Выдержка из таблицы FAT для FAT32_V1.E01, подчёркиванием выделен относящийся к делу кластер.
...[SNIP]...
004100: 4100 0000 4200 0000 4300 0000 ffff ff0f A...B...C.......
004110: 0000 0000 4600 0000 4700 0000 4800 0000 ....F...G...H...
004120: 4900 0000 4a00 0000 4b00 0000 4c00 0000 I...J...K...L...
...[SNIP]...
Из представленной таблицы FAT становится понятно, что значение кластера, включающее содержимое данного файла было помечено как удалённое из выделения. Это подразумевает, что невозможно гарантировать верное восстановление содержимого файла, по крайней мере для случая больших файлов. Для файлов с размером меньше одного кластера восстановление гарантировано (в предположении, что это файл не был перекрыт повторной записью со временем). Тем не менее, восстановление сработает для данного конкретного файла, ибо он занимает единственный кластер. Восстановление также работает и для непрерывных файлов. Таким образом, восстановление удалённых файлов (которые не перекрывались повторной записью) в файловой системе FAT гарантируется в ситуации файлов малого размера (менее одного кластера) или для непрерывных файлов, но не для случая фрагментированных файлов, поскольку необходимые записи из таблицы FAT будут перезаписаны.
Метка тома это очень простая структура, которая находится в самом начале своего корневого каталога. Как и все записи каталога это структуры из 32 байт. Значение метки тома для FAT32_V1.E01 показано в Листинге 5.17. Метки томов это просто обычные записи каталога со значением атрибута 0x08. Значение "имени файла" в данной ситуации просто относится к реальной Метке тома. Её значением в Листинге 5.17 является FILE_FS. Значения времён соотносятся со временем создания данного тома.
Данная глава изучила файловую систему FAT и применяемые для неё методы криминалистического анализа. Были представлены такие важные структуры как VBR, FAT и записи каталога, а также были описаны методы анализа. Также было обсуждено воздействие на анализ удаления файла.
Данная глава конкретно рассматривала версию FAT32 семейства файловых систем FAT. Методы анализа для более ранних вариантов (FAT12 и FAT16) почти идентичны. Единственным изменением выступает метод адресации. Такие таблицы FAT применяют меньшее число байт для представления каждого кластера, чем это присутствует для FAT32. Наша следующая глава представит самое последнее воплощение файловой системы FAT, ExFAT. Она очень похожа на файловую систему FAT, но более сложная, а потому заслуживает отдельной главы.
-
Представьте следующие даты/ время в качестве значений FAT.
-
14:37:28 17 марта 2023
-
07:12:57 25 декабря 2077
-
23:59:59 31 декабря 1999
-
-
Какие даты/ время представлены следующими значениями даты/ времени FAT?
-
Дата: 0x5199; Время: 0x4CBA
-
Дата: 0x4885; Время: 0x1A3D
-
Дата: 0x4934; Время: 0x4C32F
-
-
Относительно файловой системы, содержащейся в файле FAT32_V1.E01, ответьте на следующие вопросы (обратите внимание, что вам следует ответить на них вручную, а затем подтвердить свои ответы с помощью инструментов проверки файловой системы).
-
Какая у неё метка тома?
-
С какого сектора начинается область данных?
-
В каком кластере/ секторе расположен корневой каталог?
-
Корневой каталог содержит единственную папку. Какое полное название у неё?
-
В каких кластерах находится файл BRIDGE.JPG?
-
Обработайте структуру метаданных для BRIDGE.JPG. В вашем ответе все значения даты/ времени должны быть представлены в воспринимаемом человеком формате.
-
Digital Forensics with Open Source Tools: Using Open Source Platform Tools for Performing Computer Forensics on Target Systems: Windows, Mac, Linux, UNIX, etc. Altheide, C. and Carvey, H.A. (2011). Rockland, MA: Syngress; Oxford.
Review of FAT data structure of FAT32 file system. Bhat, W.A. and Quadri, S.M. (2010). Oriental Journal of Computer Science and Technology 3 (1): 161–164.
On the role of file system metadata in digital forensics. Buchholz, F. and Spafford, E. (2004). Digital Investigation 1 (4): 298–309.
File System Forensic Analysis. Carrier, B. (2005). Boston, MA; London: Addison-Wesley.
FAT File Systems (2024). FAT32, FAT16, FAT12. NTFS.com [Internet]. www.ntfs.com. [cited 2024 June 1]. по состоянию на 04.06.2025.
Found a swap file by the name.XXX.swp. GoLinuxCloud (2020). GoLinuxCloud [Internet]. www.golinuxcloud.com. [cited 2024 June 1]. по состоянию на 04.06.2025.
Extraction of creation-time for recovered files on windows FAT32 file system. Lee, W.Y., Kim, K.H., and Lee, H. (2019). Applied Sciences 9 (24): 5522. по состоянию на 04.06.2025.
Microsoft Extensible Firmware Initiative FAT32 File System Specification FAT: General Overview of On-Disk Format. Microsoft Corporation (2024). [cited 2024 March 1]. по состоянию на 04.06.2025.
The Linux FAT32 allocator and file creation order reconstruction. Minnaard, W. (2014). Digital Investigation 11 (3): 224–233.
A digital forensic comparison of FAT32 and NTFS file systems using evidence eliminator. Nabity, P. and Landry, B.J. (2009). [cited 2024 March 31]. по состоянию на 06.06.2025.
A forensic comparison of NTFS and FAT32 file systems. Rusbarsky, K.L. (2012). [cited 2024 March 3]. по состоянию на 06.06.2025.