Аналіз файлової системи (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.
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
якщо не починається з десяткової цифри
двійкова система
десяткова система
Повторення
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 біта зарезервовані для додаткової інформації
Кластери з номерами
Кластер – це область певного розміру, в якій зберігаються дані файлу
Кластер
Область FAT FAT area
Кластери
Кожен кластер має запис в області FAT
Корневий каталог
Root Directory
32 байт – 1 запис
Номер першого кластера файлу зберігається в елементі каталогу, що містить запис файлу
Заванта-жувальна область
Boot area
32 сек-тора
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Кластер
Спрощена структура організації файлової системи FAT
Файлова система FAT (File Allocation Table)
5
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
Сектор
Сектор — це найменша записувана одиниця на жорсткому диску.
Один сектор = 512 байт
4096 байт (Розширений формат)
2048 байт (оптичні диски)
8
Кластер
Кластер — це найменша адресна одиниця в томі.
Він може мати розмір сектора => 1 сектор на кластер
512
Він також може містити 2 або більше секторів => від 2 до макс. 64 сектори на кластер. Кількість секторів на кластер зберігається в завантажувальному блоці (VBR)
Кількість секторів в кластері= 2N
Один сектор = 512 байт
9
2 сектори в кластері = 1024 Байт
1024 байт в кластері
Кластер
Кластер — це найменша адресна одиниця в томі.
Він може мати розмір сектора => 1 сектор на кластер
Він також може містити 2 або більше секторів => від 2 до макс. 64 сектори на кластер. Кількість секторів на кластер зберігається в завантажувальному блоці (VBR)
FAT 12
3
FAT 16
4
FAT 32
5
Стандартна кількість секторів на кластер (з FAT12) становить
Стандартна кількість секторів на кластер (з FAT16) становить
Стандартна кількість секторів на кластер (з FAT32) становить
Розмітка
*
14
*
15
Розмітка
Розмір цієї області = кількість FAT * розмір FAT
Копія основної таблиці FAT, вона ідентична. Використовується для відновлення у разі пошкодження основної
Boot area�32++ sectors
FAT 1�
FAT 2
Data + Root
Логічна організація FAT 32
*
16
FAT область
Область даних + кореневий каталог
Системна область
Сектор 0
Сектор n
- Ці структури записуються під час форматування тому.
*
17
Розмітка
Завантажувальний сектор
8
+000hex перехід до коду завантаження 3 байта
offset meaning content length
9
Завантажувальний сектор
зміщення значення контент довжина
+004hex OEM (original equipment manufacturer) -Name 8 байт
offset meaning content length
10
Завантажувальний сектор
зміщення значення контент довжина
BIOS-Parameter-Block (BPB)
11
offset meaning content length
+00Bhex кількість байт в секторі (512) 2 байта
12
Завантажувальний сектор
зміщення значення контент довжина
+00D hex кількість секторів в кластері 1 байт
offset meaning content length
13
Завантажувальний сектор
зміщення значення контент довжина
+00E hex кількість зарезервованих секторів 2 байта
offset meaning content length
14
Завантажувальний сектор
зміщення значення контент довжина
+010 hex кількість FAT-копій 1 байт
offset meaning content length
15
Завантажувальний сектор
зміщення значення контент довжина
+011 hex кількість записів корн. каталогу 2 байта� для FAT 32 – 0 не лімітовано
offset meaning content length
16
Завантажувальний сектор
зміщення значення контент довжина
+013 hex кількість секторів на дорожку 2 байта� �
offset meaning content length
17
Завантажувальний сектор
зміщення значення контент довжина
+015 hex медіа-дескриптор (F8 – HDD, F0 – FD) 1 байт
offset meaning content length
18
Завантажувальний сектор
зміщення значення контент довжина
20
Boot area�32++ sectors
FAT 1�
FAT 2
Data + Root
Логічна організація FAT 32
*
30
FAT область
Область даних + корневий каталог
Системна область
Сектор 0
Сектор n
- Ці структури записуються під час форматування тому.
*
31
Метадані файлової системи
*
32
Метадані файлової системи
Кореневий каталог
22
Записи кореневого кталогу (приклад)
Приклад 6 записів
1 запис – 32 байти
Ім’я файлу
Розширення
Атрибут
Час
Дата
Стартовий кластер
Розмір файлу
Підкаталоги
23
ISEC 2010 – Cybercrime Investigation Training
Стартовий кластер
24
File Allocation Table (FAT)
25
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
FAT-Ланцюг
Test.txt ………………… 249
із запису каталогу ми отримуємо початковий кластер, який є точкою входу для таблиці FAT
FAT
Стартовий кластер
0
678
249
678
355
355
EOF
У FAT ми знайдемо решту необхідних кластерів
27
Test.txt ………………… 249
FAT
Startcluster
0
EOF
249
678
355
27
FAT-Ланцюг
із запису каталогу ми отримуємо початковий кластер, який є точкою входу для таблиці FAT
У FAT ми знайдемо решту необхідних кластерів
ISEC 2010 – Cybercrime Investigation Training
41
File Allocation Table
ISEC 2010 – Cybercrime Investigation Training
Cluster 2
EOF
кластер 2 є початком області даних
Перші два кластера зарезервовані (може бути і більше)
42
ISEC 2010 – Cybercrime Investigation Training
EOF
4
5
EOF
File Allocation Table
Fat-записи для файлу, який потребує 3 кластерів.
43
ISEC 2010 – Cybercrime Investigation Training
EOF
4
5
EOF
EOF
EOF
EOF
Для наступного файлу потрібні 2 ½ кластери. Він починається в першому вільному кластері.
вільний?
ні
no
так
9
11
EOF
вільний?
File Allocation Table
Для наступного файлу потрібні 3 кластери. Він починається в першому вільному кластері.
44
ISEC 2010 – Cybercrime Investigation Training
EOF
4
5
EOF
EOF
EOF
EOF
9
11
EOF
File Allocation Table
Ім’я | кластер | довжина | Час доступу | Час запису | Час створення |
. | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
Структура кореневого каталогу
45
ISEC 2010 – Cybercrime Investigation Training
EOF
4
5
EOF
EOF
EOF
EOF
9
11
EOF
File Allocation Table
Ім’я | кластер | довжина | Час доступу | Час запису | Час створення |
. | | | | | |
.. | | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
46
Структура кореневого каталогу
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
Структура кореневого каталогу
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
Структура кореневого каталогу
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
Структура кореневого каталогу
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
Структура кореневого каталогу
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
Структура кореневого каталогу
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
Структура кореневого каталогу
Створення файлу
У процесі створення файлу ПК виконує 3 дії:
Буде створено запис файлу з необхідною інформацією
У FAT буде створено запис, який відповідає початковому кластеру із запису файлу
Дані записуються
53
Видалення файлів у FAT
Алгоритм відновлення файлів
Вільний кластер
Кластер файлу
Зайнятий кластер
Сценарії відновлення файлу
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 — це інформація з іншого видаленого файлу, відновлення містить помилки