1 of 55

Аналіз файлової системи (Win) FAT Основи цифрової криміналістики

The project has been funded by the European Commission. The Education, Audiovisual and Culture Executive program (EACEA), TEMPUS IV. The content of this presentation reflects the opinion of the author.

2 of 55

0hex

0dec

0

0

0

0

1hex

1dec

0

0

0

1

2hex

2dec

0

0

1

0

3hex

3dec

0

0

1

1

4hex

4dec

0

1

0

0

5hex

5dec

0

1

0

1

6hex

6dec

0

1

1

0

7hex

7dec

0

1

1

1

8hex

8dec

1

0

0

0

9hex

9dec

1

0

0

1

Ahex

10dec

1

0

1

0

Bhex

11dec

1

0

1

1

Chex

12dec

1

1

0

0

Dhex

13dec

1

1

0

1

Ehex

14dec

1

1

1

0

Fhex

15dec

1

1

1

1

шістнадцяткова система

0000 0010 1110 1111 = 02EFhex

1110 1111 = 0EFhex

якщо не починається з десяткової цифри

двійкова система

десяткова система

Повторення

3 of 55

0000

0001

0002

0003

0004

0005

0006

0007

0008

0009

000A

000B

000C

000D

000E

000F

0000 0000 0000 0000

0000 0000 0000 0001

0000 0000 0000 0010

0000 0000 0000 0011

0000 0000 0000 0100

0000 0000 0000 0101

0000 0000 0000 0110

0000 0000 0000 0111

0000 0000 0000 1000

0000 0000 0000 1001

0000 0000 0000 1010

0000 0000 0000 1011

0000 0000 0000 1100

0000 0000 0000 1101

0000 0000 0000 1110

0000 0000 0000 1111

0010

0011

0012

0013

0014

0015

0016

0017

0018

0019

001A

001B

001C

001D

001E

001F

0000 0000 0001 0000

0000 0000 0001 0001

0000 0000 0001 0010

0000 0000 0001 0011

0000 0000 0001 0100

0000 0000 0001 0101

0000 0000 0001 0110

0000 0000 0001 0111

0000 0000 0001 1000

0000 0000 0001 1001

0000 0000 0001 1010

0000 0000 0001 1011

0000 0000 0001 1100

0000 0000 0001 1101

0000 0000 0001 1110

0000 0000 0001 1111

0020

0021

0022

0023

0024

0025

0026

0027

0028

0029

002A

002B

002C

002D

002E

002F

0000 0000 0010 0000

0000 0000 0010 0001

0000 0000 0010 0010

0000 0000 0010 0011

0000 0000 0010 0100

0000 0000 0010 0101

0000 0000 0010 0110

0000 0000 0010 0111

0000 0000 0010 1000

0000 0000 0010 1001

0000 0000 0010 1010

0000 0000 0010 1011

0000 0000 0010 1100

0000 0000 0010 1101

0000 0000 0010 1110

0000 0000 0010 1111

0030

0031

0032

0033

0034

0035

0036

0037

0038

0039

003A

003B

003C

003D

003E

003F

0000 0000 0011 0000

0000 0000 0011 0001

0000 0000 0011 0010

0000 0000 0011 0011

0000 0000 0011 0100

0000 0000 0011 0101

0000 0000 0011 0110

0000 0000 0011 0111

0000 0000 0011 1000

0000 0000 0011 1001

0000 0000 0011 1010

0000 0000 0011 1011

0000 0000 0011 1100

0000 0000 0011 1101

0000 0000 0011 1110

0000 0000 0011 1111

Логіка адресації в файловій системі

Кожен кластер має свій номер. Нумерація кластерів йде з 0 до максимального на диску.

Розмір адреси:

FAT12 – 12 біт

FAT16 – 16 біт

FAT32 – 28 біт + 4 біта зарезервовані для додаткової інформації

Кластери з номерами

Кластер – це область певного розміру, в якій зберігаються дані файлу

4 of 55

Кластер

Область FAT FAT area

Кластери

Кожен кластер має запис в області FAT

Корневий каталог

Root Directory

32 байт – 1 запис

Номер першого кластера файлу зберігається в елементі каталогу, що містить запис файлу

Заванта-жувальна область

Boot area

32 сек-тора

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Кластер

Спрощена структура організації файлової системи FAT

5 of 55

Файлова система FAT (File Allocation Table)

5

  • Файлова система FAT була розроблена наприкінці 1970-х років як проста файлова система для операційної системи MS-DOS.На даний момент існує три типи файлової системи FAT:
  • FAT12
  • FAT16
  • FAT32
  • exFAT
  • Різниця в цих типах FAT і причина назв полягає в розмірі в бітах записів у фактичній структурі FAT на диску.
  • Вони працюють однаково, але відрізняються кількістю адресних одиниць розподілу (кластерів)

6 of 55

FAT12 використовується лише на дискетах і томах FAT менше 16 Мб. FAT12 використовує 12-бітний запис таблиці розподілу файлів для адресації запису у файловій системі.

FAT16. MS-DOS, Windows 95/98/NT/2000/XP, Windows Server 2003 і деякі ОС UNIX підтримують FAT16. FAT16 також широко використовується для мультимедійних пристроїв, таких як цифрові камери та аудіоплеєри. FAT16 використовує 16-бітний запис таблиці розподілу файлів для адресації запису у файловій системі. Томи FAT16 обмежені максимальним розміром 2 ГБ у MS-DOS і Windows 95/98. Windows NT і новіші ОС збільшують максимальний розмір тому для FAT16 до 4 ГБ.

FAT32. Windows 95 Original Equipment Manufacturer (OEM) Service Release 2 (OSR2), Windows 98/2000/XP і Windows Server 2003 підтримують FAT32, як і деякі мультимедійні пристрої. FAT32 використовує 32-розрядний запис таблиці розподілу файлів для адресації запису у файловій системі. Максимальний розмір тому FAT32 становить 2 терабайти (ТБ).

7 of 55

7

Сектор

Сектор — це найменша записувана одиниця на жорсткому диску.

Один сектор = 512 байт

4096 байт (Розширений формат)

2048 байт (оптичні диски)

8 of 55

8

Кластер

Кластер — це найменша адресна одиниця в томі.

Він може мати розмір сектора => 1 сектор на кластер

512

Він також може містити 2 або більше секторів => від 2 до макс. 64 сектори на кластер. Кількість секторів на кластер зберігається в завантажувальному блоці (VBR)

Кількість секторів в кластері= 2N

Один сектор = 512 байт

9 of 55

9

2 сектори в кластері = 1024 Байт

1024 байт в кластері

Кластер

Кластер — це найменша адресна одиниця в томі.

Він може мати розмір сектора => 1 сектор на кластер

Він також може містити 2 або більше секторів => від 2 до макс. 64 сектори на кластер. Кількість секторів на кластер зберігається в завантажувальному блоці (VBR)

10 of 55

FAT 12

  • 12-бітний FAT означає, що запис FAT є 12-бітним значенням!
  • З 12 бітами макс. значення буде 2^12
  • 212 = 4096
  • Загальна кількість адресних одиниць розподілу становить 4096
  • одиниця розподілу = кластер

3

11 of 55

FAT 16

  • 16-бітний FAT означає, що запис FAT є 16-бітним значенням!
  • З 16 бітами макс. значення буде 2^16
  • 216 = 65536
  • Загальна кількість адресних одиниць розподілу становить 65536
  • одиниця розподілу = кластер

4

12 of 55

FAT 32

  • 32-бітний FAT означає, що запис FAT є 32-бітним значенням!
  • Файлова система FAT 32 резервує для себе 4 біти, тому для адрес кластера залишається лише 28 бітів.
  • З 28 біт макс. значення буде 2^28
  • 228 = 268.435.456
  • Загальна кількість адресних одиниць розподілу становить 268435456
  • одиниця розподілу = кластер

5

13 of 55

Стандартна кількість секторів на кластер (з FAT12) становить

Стандартна кількість секторів на кластер (з FAT16) становить

Стандартна кількість секторів на кластер (з FAT32) становить

14 of 55

Розмітка

*

14

  • Файлова система FAT складається з 4 областей (областей).
  • «Системна область»
  • «Область FAT»
  • «Корневий каталог»
  • «Область даних»
  • Системна область (VBR - Volume Boot Record) - найменша за розміром. Вона містить дуже важливу інформацію: адреса таблиці FAT і області даних, розмір області даних, таблиці FAT і всього диска, розмір кластера, кількість кластерів.

15 of 55

*

15

Розмітка

  • Область FAT починається безпосередньо після зарезервованої області та містить один або два FAT. Кількість FAT визначається у VBR.

Розмір цієї області = кількість FAT * розмір FAT

  • Область даних містить фактичні дані (файли та каталоги), якими керують у кластерах. Область даних починається в першому секторі після області FAT.
  • Область FAT (менше 1%) включає таблицю FAT елементів, що дорівнює кількості кластерів. Кожен елемент відповідає своєму кластеру. Елемент FAT є 12-бітним для FAT12, 16-бітним для FAT16 і 32-бітним для FAT32.

Копія основної таблиці FAT, вона ідентична. Використовується для відновлення у разі пошкодження основної

16 of 55

Boot area�32++ sectors

FAT 1�

FAT 2

Data + Root

Логічна організація FAT 32

*

16

FAT область

Область даних + кореневий каталог

Системна область

Сектор 0

Сектор n

- Ці структури записуються під час форматування тому.

17 of 55

*

17

Розмітка

  • Щоб проаналізувати файлову систему, ви повинні знати початкову адресу кожної області!

  • Існуючи програмні продукти дозволяють переходити до цих областей
  • Початкові адреси зарезервованої області та області FAT можна взяти з VBR.

18 of 55

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

  • Перший сектор логічного диска
  • Містить BPB (блок параметрів BIOS), який містить всю інформацію про розмір і структуру тому
  • Містить також підпис BIOS 0x55AA в останніх 2 байтах
  • У системі FAT32 існує копія завантажувального сектора на 6 секторів після оригіналу

8

19 of 55

+000hex перехід до коду завантаження 3 байта

offset meaning content length

9

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

зміщення значення контент довжина

20 of 55

+004hex OEM (original equipment manufacturer) -Name 8 байт

offset meaning content length

10

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

зміщення значення контент довжина

21 of 55

BIOS-Parameter-Block (BPB)

11

22 of 55

offset meaning content length

+00Bhex кількість байт в секторі (512) 2 байта

12

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

зміщення значення контент довжина

23 of 55

+00D hex кількість секторів в кластері 1 байт

offset meaning content length

13

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

зміщення значення контент довжина

24 of 55

+00E hex кількість зарезервованих секторів 2 байта

offset meaning content length

14

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

зміщення значення контент довжина

25 of 55

+010 hex кількість FAT-копій 1 байт

offset meaning content length

15

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

зміщення значення контент довжина

26 of 55

+011 hex кількість записів корн. каталогу 2 байта� для FAT 32 – 0 не лімітовано

offset meaning content length

16

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

зміщення значення контент довжина

27 of 55

+013 hex кількість секторів на дорожку 2 байта� �

offset meaning content length

17

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

зміщення значення контент довжина

28 of 55

+015 hex медіа-дескриптор (F8 – HDD, F0 – FD) 1 байт

offset meaning content length

18

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

зміщення значення контент довжина

29 of 55

20

30 of 55

Boot area�32++ sectors

FAT 1�

FAT 2

Data + Root

Логічна організація FAT 32

*

30

FAT область

Область даних + корневий каталог

Системна область

Сектор 0

Сектор n

- Ці структури записуються під час форматування тому.

31 of 55

*

31

Метадані файлової системи

  • Метадані файлової системи містять всю інформацію про файли та каталоги.
  • Зокрема, номер початкового кластера (вміст файлу), а також позначки часу й атрибути.
  • У системах FAT усі ці дані зберігаються в структурі каталогів FAT.

32 of 55

*

32

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

Метадані файлової системи

33 of 55

Кореневий каталог

  • Зазвичай починається одразу після 2-го FAT
  • Містить підкаталог і файли кореня
  • Для FAT12/16 кореневий каталог має фіксований розмір
  • Для FAT 32 кореневий каталог є частиною області даних і об’єднаний через FAT як файл
  • Для кожного запису в кореневому каталозі зарезервовано 32 байти

22

34 of 55

Записи кореневого кталогу (приклад)

Приклад 6 записів

1 запис – 32 байти

Ім’я файлу

Розширення

Атрибут

Час

Дата

Стартовий кластер

Розмір файлу

35 of 55

Підкаталоги

  • Містить записи каталогу та файлів
  • Для кожного запису зарезервовано 32 байти
  • Перші два записи є покажчиками на каталоги
  • а) . = покажчик на себе
  • іb) .. = покажчик на батьківський кластер

23

36 of 55

ISEC 2010 – Cybercrime Investigation Training

Стартовий кластер

24

37 of 55

File Allocation Table (FAT)

  • Центральна організаційна структура файлової системи
  • Для кожного кластера на диску є запис у FAT
  • Кожен запис охоплює певну кількість секторів, фіксованих операційною системою, які називаються кластерами
  • Містить інформацію про те, де на диску зберігаються файли

25

38 of 55

File Allocation Table (FAT)

FAT 12

FAT 16

FAT 32

значення

0

0

0

Невикористовуваний кластер

3 – 0xFEF

3 – 0xFFEF

3 – 0xFFFFFEF

Номер наступного кластера файлу

0xFF0 – 0xFF6

0xFFF0 – 0xFFF6

0xFFFFFFF0 –�0xFFFFFFF6

Зарезервований кластер

0xFF7

0xFFF7

0xFFFFFFF7

Поганий кластер

0xFF8 – 0xFFF

0xFFF8 – 0xFFFF

0xFFFFFFF8 –�0xFFFFFFFF

Кінець файлу

End of file�EOF

Можливі значення

26

39 of 55

FAT-Ланцюг

Test.txt ………………… 249

із запису каталогу ми отримуємо початковий кластер, який є точкою входу для таблиці FAT

FAT

Стартовий кластер

0

678

249

678

355

355

EOF

У FAT ми знайдемо решту необхідних кластерів

27

40 of 55

Test.txt ………………… 249

FAT

Startcluster

0

EOF

249

678

355

27

FAT-Ланцюг

із запису каталогу ми отримуємо початковий кластер, який є точкою входу для таблиці FAT

У FAT ми знайдемо решту необхідних кластерів

41 of 55

ISEC 2010 – Cybercrime Investigation Training

41

42 of 55

File Allocation Table

ISEC 2010 – Cybercrime Investigation Training

Cluster 2

EOF

кластер 2 є початком області даних

Перші два кластера зарезервовані (може бути і більше)

42

43 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

File Allocation Table

Fat-записи для файлу, який потребує 3 кластерів.

43

44 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

Для наступного файлу потрібні 2 ½ кластери. Він починається в першому вільному кластері.

вільний?

ні

no

так

9

11

EOF

вільний?

File Allocation Table

Для наступного файлу потрібні 3 кластери. Він починається в першому вільному кластері.

44

45 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

File Allocation Table

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

Структура кореневого каталогу

45

46 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

File Allocation Table

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

..

46

Структура кореневого каталогу

47 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

..

Test.txt

2

575

15/01/00

15/01/00

15/05/00

1 Кластер = 1024 байт

File Allocation Table

47

Структура кореневого каталогу

48 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

..

Test.txt

2

575

15/01/00

15/01/00

15/05/00

Bild1.Gif

3

2560

11/08/99

11/08/99

10/05/99

1 Кластер = 1024 байт

File Allocation Table

48

Структура кореневого каталогу

49 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

..

Test.txt

2

575

15/01/00

15/01/00

15/05/00

Bild1.Gif

3

2560

11/08/99

11/08/99

10/05/99

Such.Doc

7

1005

15/09/00

14/09/00

10/08/00

1 Кластер = 1024 байт

File Allocation Table

49

Структура кореневого каталогу

50 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

..

Test.txt

2

575

15/01/00

15/01/00

15/05/00

Bild1.Gif

3

2560

11/08/99

11/08/99

10/05/99

Such.Doc

7

1005

15/09/00

14/09/00

10/08/00

Report.doc

8

350

01/01/99

05/06/98

04/06/98

1 Кластер = 1024 байт

File Allocation Table

50

Структура кореневого каталогу

51 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

..

Test.txt

2

575

15/01/00

15/01/00

15/05/00

Bild1.Gif

3

2560

11/08/99

11/08/99

10/05/99

Such.Doc

7

1005

15/09/00

14/09/00

10/08/00

Report.doc

8

350

01/01/99

05/06/98

04/06/98

Bild2.Gif

10

1023

19/03/00

19/03/00

19/03/00

1 Кластер = 1024 байт

File Allocation Table

51

Структура кореневого каталогу

52 of 55

ISEC 2010 – Cybercrime Investigation Training

EOF

4

5

EOF

EOF

EOF

EOF

9

11

EOF

Ім’я

кластер

довжина

Час доступу

Час запису

Час створення

.

..

Test.txt

2

575

15/01/00

15/01/00

15/05/00

Bild1.Gif

3

2560

11/08/99

11/08/99

10/05/99

Such.Doc

7

1005

15/09/00

14/09/00

10/08/00

Report.doc

8

350

01/01/99

05/06/98

04/06/98

Bild2.Gif

10

1023

19/03/00

19/03/00

19/03/00

Test1.txt

6

2575

15/11/00

15/11/00

15/11/00

3 кластери

З каталогу отримуємо стартовий кластер у FAT

FAT знайде решту кластерів

1 Кластер = 1024 байт

Скільки потрібно кластерів?

File Allocation Table

52

Структура кореневого каталогу

53 of 55

Створення файлу

У процесі створення файлу ПК виконує 3 дії:

Буде створено запис файлу з необхідною інформацією

У FAT буде створено запис, який відповідає початковому кластеру із запису файлу

Дані записуються

53

54 of 55

Видалення файлів у FAT

  1. Перший символ ім'я файлу в кореневому каталозі замінюється на значення E5.
  2. Ланцюжок кластерів у таблиці FAT очищено. Замість номерів кластерів введено значення 00 - кластери позначаються як вільні.
  3. У кореневому каталозі залишаються ім'я файлу (без першого символу), його атрибут, посилання на номер першого кластера файлу.
  4. Операційна система робить запис нового файлу в кореневому каталозі. Подальша інформація записується на новий вільний кластер

55 of 55

Алгоритм відновлення файлів

  1. Визначте номер першого кластера файлу з кореневого каталогу
  2. Відновіть ланцюжок кластерів цього файлу

Вільний кластер

Кластер файлу

Зайнятий кластер

Сценарії відновлення файлу

56

57

58

59

60

61

56

57

58

59

60

61

56

61

58

59

60

57

А

B

C

Перший кластер – 56

Розмір файлу – 7094 B

Розмір кластера – 2048 B

Кількість кластерів в файлі - 4

А. Відновлюється інформація з перших 4 вільних кластерів. файл буде відновлено без помилок

В. Файл буде відновлено без помилок. ми повинні розуміти, що кластери 57 і 60 відносяться до іншого файлу (з FAT).

С. Якщо кластер 57 та 60 — це інформація з іншого видаленого файлу, відновлення містить помилки