Завантажувальний сектор, FSINFO, таблиця FAT та записи каталогів файлової системи FAT

Читайтепро системні структури файлової системи FAT: завантажувальний сектор, FSINFO, таблиця FAT та записи каталогів. Опис, розмірність полів та інтерпретація Процес пошуку віддалених файлів складається з виявлення та інтерпретації вмісту диска. Цією статтею ми відкриємо цикл, де розповімо, як знайти і правильно «прочитати» системну інформацію. Існує чотири версії FAT - FAT8, FAT12, FAT16 та FAT32. Ми проведемо аналіз FAT32 диску, розташованого на SD-карті пам'яті фотоапарата.

каталогів

Логічний диск під управління FAT32 можна розділити на 3 логічні частини, які йдуть послідовно один за одним:

  • Зарезервована область;
  • Область FAT;
  • Область даних (містить кореневий каталог та вміст файлів);

Рис.1Фізична структура FAT.

Система FAT дуже проста і умовно в ній можна виділити 4 структури:

Завантажувальний сектор

Завантажувальний сектор займає 1 сектор (найчастіше 512 байт) і знаходиться в першому секторі. Давайте розглянемо докладніше його вміст.

Таб.1Структура завантажувального сектора FAT.

Інформація із завантажувального сектора відіграє основну роль у відновленні віддалених файлів, тому його виявлення є надзвичайно важливим.

Структура FSINFO

Посилання початку структури зберігається у завантажувальному секторі, розмір становить 1 сектор (зазвичай 512 байт). FAT використовує FSINFO для алгоритму виділення вільних секторів дисків.

Таб.2Структура даних FSINFO.

Оскільки FSINFO може не оновлюватися і всі поля не обов'язкові, спиратися на неї для вилучення даних ми не можемо.

Таблиця FAT

Файлова системаможе мати кілька копій цієї таблиці, точну кількість таблиць та їх розмір вказано у завантажувальному секторі. Зазвичай використовується 2 копії, що повністю дублюють одна одну. Вони розташовуються послідовно, одна за одною, і мають стільки записів, скільки кластерів на диску.

У FAT32 структура складається із записів розміром 4 байти. Кожен запис відповідає кластеру на логічному диску і може приймати такі значення:

  • 0x000 0000- якщо кластер вільний;
  • 0x0fff fff7- якщо кластер пошкоджений і не повинен виділятися;
  • 0x0fff fff8– якщо кластер завершує файл чи каталог;
  • 0x000 0001 … 0x0fff fff6– покажчик на наступний кластер, який займає файл або каталог.

Читання та аналіз основної таблиці FAT та її копій дозволяють з'ясувати, у яких кластерах зберігається вміст потрібного файла.

Записи каталогів

Записи каталогів містять ім'я, атрибути файлів та каталогів, а також час створення, останнього доступу та редагування об'єктів. Ця інформація зберігається в кластерах, виділених батьківському каталогу, посилання на який можна отримати із завантажувального сектора.

Базова структура (Simple File Name) підтримує лише короткі імена файлів (8 символів – ім'я та 3 символи – розширення). Для підтримки довгих імен файлів на додаток до базового запису створюються додаткові структури (Long File Name). Записи LFN мають розмір 32 байти і передують базовому запису.