1 of 57

Аналіз файлових систем (Win) NTFS�Цифрова криміналістика

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 57

00.00.2010

2

Fußzeile - Titelthema

Концепція NTFS

  • Файлова система нових технологій (NTFS) була розроблена Microsoft і є файловою системою за замовчуванням для Microsoft Windows NT, Windows 2000, Windows XP і Windows Server.
  • NTFS є набагато складнішою файловою системою, ніж FAT, оскільки вона має багато функцій і дуже масштабована.
  • На жаль, немає опублікованої специфікації від Microsoft, яка б описувала компонування на диску.
  • FAT все ще існуватиме в мобільних і невеликих пристроях зберігання даних, але NTFS, ймовірно, буде найпоширенішою файловою системою для розслідувань Windows.

3 of 57

00.00.2010

3

Fußzeile - Titelthema

Konzept hinter NTFS

  • Все в NTFS є файлом.
  • Вся файлова система вважається областю даних, і будь-який сектор може бути призначений для файлу.
  • Єдиним узгодженим макетом є те, що перші сектори тому містять завантажувальний сектор і завантажувальний код. = Кластер 0.
  • Це включає основні адміністративні дані файлової системи, які зазвичай приховані іншими файловими системами.
  • Однією з найважливіших концепцій у розумінні дизайну NTFS є те, що важливі дані розподіляються у файлах.

4 of 57

00.00.2010

4

Fußzeile - Titelthema

Konzept hinter NTFS

  • вміст файлу зберігається в кластерах або в самому $MFT
  • кластерами керують у файлі растрового зображення ($Bitmap).
  • Щоб запобігти фрагментації $MFT, Microsoft резервує частину файлової системи для MFT. (зона MFT = 12,5 % файлової системи).
  • Кожен файл і каталог мають принаймні один запис у таблиці $MFT=Master File Table.

5 of 57

FAT-Система

NTFS-Система

Фізичне розташування системних файлів

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

1 сектор (FAT12/16)

32++ для FAT 32

FAT 1 та 2

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

Область даних

Завантажувальна область 1 сектор

MFT

Область даних

Область даних

6 of 57

Номер сектора завантажувального блоку зберігається в таблиці розділів MBR

Завантажувальний блок містить вказівник у BPB (блок параметрів Bios) зі зміщенням 0x30 на�

Master File Table ($MFT)

І ще один покажчик (зі зсувом 0x38) на

Master File Table 2 ($MFTMIRR)

Завантажувальний блок

7 of 57

Завантажувальний блок

Копія завантажувальних блоків зберігається в останньому секторі розділу, який описано в MBR.

Цей сектор не є частиною тому і не може бути видалений або перезаписаний файловою системою.

8 of 57

Структура завантажувального блоку

Зміщення

Довжина

Зміст

0

3

Перехід до завантажувального коду

3

8

Системний ID: "NTFS "

B

2

Кількість байтів у секторі

D

1

Кількість секторів у кластері

E

7

не використовується

15

1

Медіа-дескриптор

16

2

не використовується

18

2

Кількість секторів в дорожці

1A

2

heads

1C

4

Приховані сектори

20

4

не використовується

24

4

завжди 80 00 80 00?

28

8

Кількість секторів в томі

30

8

Стартовий кластер Master File Table ($MFT)

38

8

Стартовий кластер копії Master File Table ($MFTMirr)

40

4

Cluster per FILE record

44

4

Cluster per Index buffer

48

8

Серійний номер

50

4

чексума

54

Завантажувальний код

1FE

2

Magic boot sector ID: AA 55

Bios parameter block Extended Bios parameter block

9 of 57

Номер кластеру MFT

Кластер/запис

BIOS-сігнатура

Зміщення

Довжина

Опис

40 dec

8

кількість секторів в томі

48 dec

8

Стартовий кластер Master File Table ($MFT)

56 dec

8

Стартовий кластер копії Master File Table ($MFTMirr)

64 dec

1

кількість кластерів на запис FILE (якщо значення >0, це означає кількість кластерів для цієї структури; якщо значення <0, це байтове значення, яке має бути обчислене за спеціальною формулою; 2^(-1*кластер /MFT- або Indexrecord))

65 dec

3

Не використовується

68 dec

4

кількість кластерів на запис індексу

Номер кластеру MFTMirr

Кількість секторів

Кластер/INDX-запис

10 of 57

$MFT – Master File Table

  • Кожен файл і каталог мають принаймні один запис у MFT, включаючи сам MFT
  • Файли та каталоги можуть мати більше одного запису MFT
  • Дані можуть бути резидентними та нерезидентними
  • Кожен запис ідентифікується 64-бітним номером файлу (48-бітний номер файлу визначає розташування запису в MFT, 16-бітний порядковий номер використовується для перевірки узгодженості – він збільшується щоразу, коли вноситься зміна до запису)

$MFT

10

11 of 57

Master File Table

  • $MFT може лише збільшити розмір із додаванням записів
  • $MFT ніколи не зменшується в розмірі
  • Коли файли видаляються, їхні записи MFT позначаються як доступні для повторного використання
  • Коли створюється новий файл, використовується наступний доступний запис MFT – це може перезаписати попередній запис
  • Кожен запис може використовувати не всі виділені 1024 байти та може містити провисання

11

12 of 57

Master File Table

 

 

 

 

 

 

 

 

 

 

Заголовок

Стандартна інформація

Ім’я

записи

Атрибути

дата

13 of 57

NTFS-Система

Завант.область

NT-завантажувач

MFT

Область даних

Область даних

MFT

MFT-запис 0

MFT-запис 1

тощо

14 of 57

Файли метаданих

Номер запису

Ім’я файлу

Опис

0

$MFT

Індекс кожного файлу в томі

1

$ MFTMirr

Копія перших 4 MFT записів

2

$LogFile

Файл реєстрації транзакцій

3

$Volume

Назва, версія та стан тому

4

$AttrDef

Визначення атрибутів

5

. (dot)

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

6

$Bitmap

Бітова карта кластерів

7

$Boot

Завантажувальний запис

8

$BadClus

Погані кластери в томі

9/Any

$Quota

Інформація про квоту

9

$Secure

Дескриптори безпеки тому

10

$UpCase

Таблиця символів верхнього регістру

11

$Extend

Каталог із додатковими файлами метаданих

12-15

Позначений у використанні, але порожній

16-23

Позначений у використанні, але порожній

Any

$ObjId

Унікальні ідентифікатори файлів/каталогів

Any

$Reparse

Повторний аналіз інформації про точку

Any

$UsnJrnl

Ведення змін в журналі

>24

Файли та каталоги

14

15 of 57

15

$BitMap — це спеціальний файл у файловій системі NTFS. У цьому файлі зберігаються всі використані та невикористані кластери на томі NTFS. Коли файл займає місце на томі NTFS, його розташування позначається в $BitMap.Спосіб відстеження розподілу кластерів відносно простий. Кожен біт у Bitmap представляє 1 кластер, якщо цей біт дорівнює «1», тоді кластер використовується. Наприклад, якщо байт у BitMap дорівнює «F», це означає, що 4 кластери використовуються як F (hex)  = 1111 у двійковому форматі.Отже, якщо два байти $BitMap мають значення «FF», це означає, що використовуються 8 кластерів, оскільки FF = 11111111.

Коли файл видаляється, кластер стає нерозподіленим або невикористовуваним (що дозволяє новим даним перезаписати його), а біти повертаються до нуля. Якщо 8 послідовних кластерів використовувалися файлами FF, а потім було видалено один файл, який зайняв лише 1 кластер із цих 8,  запис $BitMap зміниться з FF на 7F, оскільки 7F = 1111111. На знімку екрана нижче показано $BitMap (через EnCase) після того, як диск було щойно відформатовано. Хоча файлів, створених користувачем, немає, $BitMap усе ще має кластери, виділені через системні файли NTFS у розділі. Показані шістнадцяткові значення: FF FF FF FF FF FF FF FF FF 07 00 00 00 00 00, це означає, що використовується 67 кластерів.

16 of 57

16

$Bitmap

17 of 57

17

$BadClus є одним із 16 ключових файлів метаданих NTFS. Його роль полягає у відстеженні секторів, які пошкоджені/неможливі для використання на диску.

Bad Clus  має номер запису MFT 8, а в MFT він знаходиться трохи нижче $BitMap і $Boot.

Файл $BadClus, як випливає з назви, призначений для зберігання посилання на погані кластери на жорсткому диску. Це та сама концепція, що і $BitMap, яка зберігає список доступних і недоступних секторів у всьому розділі.

Однак $BadClus відстежує сектори, які вважаються поганими/несправними та не повинні записуватися в них. Якщо в секторі є дані, вони залишаться там, навіть якщо $BadClus позначає сектор як поганий.

Це не означає, що сектор поганий, лише те, що файлова система NTFS так вважає.

Якщо диск відформатовано «Швидко», $BadClus буде порожнім, оскільки він не знає, що є та не є поганим кластером. Якщо диск відформатовано за допомогою довшого методу, буде перевірено кожен кластер і $BadClus буде повністю оновлено.

18 of 57

Master File Table

  • Кожен запис MFT має заголовок і ряд атрибутів, які зберігаються послідовно за ідентифікаторами
  • Ідентифікатором є маркер початку поля, наприклад10 00 00 00, 20 00 00 00 та ін

18

$MFT Заголовок

Атрибут стандартної інформації

10 00 00 00

Атрибут імені файлу

30 00 00 00

Атрибут Object_ID

40 00 00 00

~

Атрибут даних

80 00 00 00

19 of 57

MFT заголовок запису

  • Кожен запис починається з рядка FILE і завершується шістнадцятковим значенням FF FF FF FF
  • Заголовок містить інформацію про запис MFT
  • Атрибути описують файл
  • Кожен компонент файлу є атрибутом, включаючи:
  • Ім'я файлу
  • Дескриптори безпеки
  • Потік даних

19

20 of 57

Master File Table

20

Attribute Name

Identifier

Attribute Name

Identifier

$STANDARD_INFORMATION

10 00 00 00

$INDEX_ROOT

90 00 00 00

$ATTRIBUTE_LIST

20 00 00 00

$INDEX_ALLOCATION

A0 00 00 00

$FILE_NAME

30 00 00 00

$BITMAP

B0 00 00 00

$OBJECT_ID

40 00 00 00

$REPARSE_POINT

C0 00 00 00

$SECURITY_DESCRIPTOR

50 00 00 00

$EA_INFORMATION

D0 00 00 00

$VOLUME_NAME

60 00 00 00

$EA

E0 00 00 00

$VOLUME_INFORMATION

70 00 00 00

$LOGGED_UTILITY_STREAM

00 01 00 00

$DATA

80 00 00 00

Не всі атрибути потрібні в кожному файлі. Які атрибути будуть потрібні, залежить від того, описує запис файл чи каталог. Атрибути з ID 0x10 00 00 00 і 0x 30 00 00 00 присутні завжди.

21 of 57

Заголовок MFT-запису

Атрибут: стандартна інформація

Атрибут: Ім’я файлу

Атрибут: Дані

Атрибут: бітова карта

Атрибути

Маркер кінця запису

22 of 57

MFT Заголовок запису

22

Зміщення

Розмір (байт)

Призначення

Зміщення

Розмір (байт)

Призначення

00

4

Ідентифікатор файлу

24

4

Логічний розмір запису MFT

04

2

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

28

4

Фізичний розмір запису MFT

06

2

Розмір послідовності оновлення та масиву

32

8

Посилання на базовий файл

08

8

Порядковий номер файлу журналу (LSN)

40

2

ID наступного атрибута

16

2

Порядковий номер

42

2

«00 00» Доповнення

18

2

Кількість жорстких посилань

44

4

Номер запису $MFT

20

2

Зсув до початку атрибутів

48

2

Оновлений порядковий номер виправлення

22

2

Мітки:

00 00 – Видалений файл

01 00 – Існуючий файл

02 00 – Видалений каталог

03 00 – Існуючий каталог

50

4

Оновлений масив послідовності

23 of 57

MFT Заголовок запису

23

24 of 57

Заголовки атрибутів

  • Атрибути можуть бути одного з чотирьох типів
  • Резидентний з іменем
  • Резидентний без імені
  • Нерезидентний з іменем
  • Нерезидентний без імені

24

25 of 57

Заголовок резидентного атрибута

25

Зміщення

Розмір

Призначення

0

4

Тип атрибута (наприклад 10 00 00 00)

4

4

Довжина атрибута (включаючи цей заголовок)

8

1

00 – резидентний 01 – не резидентний

9

1

Довжина імені в Unicode

10

2

Зміщення до назви

12

2

Мітки:

01 00 Стиснений

00 40 Зашифрований

00 80 Розріджений

14

2

ID атрибута

16

4

Довжина атрибута від кінця заголовка

20

2

Зсув до початку потоку атрибуту

22

1

Мітка Індексації (00 Ні 01 Так)

23

1

Padding

24

L

Потік атрибуту

26 of 57

Заголовок нерезидентного атрибуту

26

Зміщення

Розмір

Призначення

0

4

Тип атрибута (наприклад 10 00 00 00)

4

4

Довжина атрибута (включаючи цей заголовок)

8

1

00 – резидентний 01 – не резидентний

9

1

Довжина імені в Unicode

10

2

Зміщення до назви

12

2

Мітки:

01 00 Стиснений

00 40 Зашифрований

00 80 Розріджений

14

2

ID атрибута

16

8

Стартовий VCN

24

8

Останній VCN

32

2

Зсув до потоку даних

34

2

Розмір блоку стиснення

36

4

Padding

40

8

Виділений розмір атрибута

48

8

Логічний розмір атрибута

56

8

Ініціалізований розмір даних потоку

64

Потік даних

27 of 57

Заголовок MFT-запису

Атрибут: стандартна інформація

Завжди резидентний

Атрибут: ім’я файлу

Завжди резидентний

Атрибут: Дані

Тут нерезидентний

Атрибут: бітова карта

Тут нерезидентний

Маркер кінця

28 of 57

Атрибут резидентний

Identificator

2

E

Flags 0x0001 compressed, 0x4000 encrypted, 0x8000 sparse

2

C

Offset to name(if no name; offset to datapart)

2

A

Length of the name (0x00 if no name)

1

9

non-resident Flag (0x00 resident; 0x01 non-resident)

1

8

Length of the attribute

4

4

Type (0x10, 0x30..)

4

0

призначення

розмір

зміщення

Index Flag and padding

2

16

Offset to datapart

2

14

Length of datapart

4

10

29 of 57

Атрибут нерезидентний

Identificator

2

E

Compress Flag

2

C

Offset to name(if no name; offset to datapart)

2

A

Length of the name (0x00 if no name-normal case)

1

9

non-resident Flag (0x00 resident; 0x01 non-resident)

1

8

Length of the attribute

4

4

Typ (0x10, 0x30..)

4

0

призначення

довжина

зміщення

Actual size

8

30

Actual size, or initialised size

8

38

Physical size = multiple of clustersize

8

28

2 byte compression and 4 byte padding

6

22

Offset to Datarun

2

20

Least VCN

8

18

Start VCN

8

10

призначення

довжина

зміщення

30 of 57

Атрибут стандартної інформації

  • Кожен запис MFT містить стандартний інформаційний атрибут
  • Він завжди є резидентним і має ідентифікатор 10 00 00 00
  • Всередині атрибута є чотири позначки дати/часу, атрибути файлів DOS, ідентифікатори власника та безпеки
  • Позначки дати й часу наведено у 64-розрядному форматі Windows FILETIME і зберігаються як UTC

30

31 of 57

Атрибут стандартної інформації

31

Зміщення

Розмір (байт)

Призначення

00

8

Дата/час створення файлу

08

8

Дата/час зміни файлу (останній запис).

16

8

Дата/час зміни запису

24

8

Дата/час останнього доступу

32

4

Атрибути файлів DOS

36

4

Максимальна кількість версій - вимкнено 00 00 00 00

40

4

Номер версії

44

4

ID Класу

48

4

ID власника

52

4

ID безпеки

56

8

Розмір даних квоти

64

8

Оновлений порядковий номер

32 of 57

Атрибут стандартної інформації

32

Мітка

Призначення

Мітка

Призначення

01 00 00 00

Тільки для читання

00 01 00 00

Тимчасовий

02 00 00 00

прихований

00 02 00 00

Розріджений файл

04 00 00 00

системний

00 04 00 00

Точка повторного аналізу

10 00 00 00

каталог

00 08 00 00

Стиснений

20 00 00 00

архів

00 10 00 00

Офлайн

40 00 00 00

пристрій

00 20 00 00

Вміст не проіндексовано

80 00 00 00

нормальний

00 40 00 00

Зашифровано

DOS атрибут

33 of 57

Атрибут стандартної інформації

Завжди резидентний

Attribut-Type (Std.)

length of Attr.

non-resident Flag

Offset to the data portion

34 of 57

Атрибут стандартної інформації

Завжди резидентний

Times UTC

Flags

35 of 57

Атрибут імені файлу

  • Кожен запис MFT містить атрибут імені файлу
  • Він завжди є резидентним і має ідентифікатор 30 00 00 00
  • Всередині атрибута є чотири позначки дати/часу, атрибути файлу DOS і, звичайно, назва файлу!
  • NTFS підтримує імена файлів довжиною до 255 символів
  • Файл може мати більше одного імені файлу, напр. файл може мати коротку назву файлу у стилі DOS 8.3
  • Короткі імена файлів зберігаються як інший атрибут імені файлу в записі MFT

35

36 of 57

Атрибут імені файлу

36

Зміщення

Розмір (байт)

Призначення

00

6

Довідник батьківського каталогу (посилальний номер файлу батьківського каталогу)

06

2

Порядковий номер (із батьківського заголовка запису MFT)

08

8

Дата/час створення файлу

16

8

Дата/час зміни файлу (останній запис).

24

8

Дата/час зміни запису

32

8

Дата/час останнього доступу

40

8

Фізичний розмір файлу

48

8

Логічний розмір файлу

56

4

Атрибути файлів DOS

60

4

Розширені атрибути/Повторний аналіз

64

1

Кількість символів у назві файлу

65

1

Тип простору імен (00-Posix 01-Win32 02-DOS Коротке ім’я файлу 03-Win32/Dos є однаковим і потрібен лише один атрибут імені файлу)

66

L

Ім'я файлу (Юнікод)

37 of 57

Атрибут імені файлу

завжди резидент

Attribut-Typ (Name)

Length of Attr.

non-resident Flag

Offset to the data portion

38 of 57

Атрибут імені файлу

завжди резидент

Times are UTC

Physical size

Actual size

Record number of the father directory

39 of 57

Атрибут імені файлу

завжди резидент

Times are UTC

Flags

Number of characters for the name

Record number of the father directory

40 of 57

Атрибут імені файлу

завжди резидент

Times are UTC

Type the name �0x00 Posix�0x01 WIN32�0x02 DOS8.3 Name�0x03 WIN 32+8.3 Name

File name in Unicode

File Name attribute always resident

41 of 57

Покажчик на початковий каталог, тобто каталог, де зберігається файл, що відповідає номеру в MFT.�

Приклад: каталог "DIR1" знаходиться в корені (файл № 5) і має в MFT номер 500, тобто це 500-й запис. Покажчик на батьківський каталог "Dir1" містить номер 5 (корінь), а всі файли, які містяться в каталозі "DIR1", мають номер 500 як посилання на базовий каталог.

MFT

Dir1, Покажчик на батьківський каталог = 5

тощо

499

498

500

Файл 1, покажчик на батьківський каталог = 500

Файл 2, Покажчик на батьківський каталог = 500

501

502

Логіка нумерації розміщення файлів та каталогів

42 of 57

Атрибут дата (резидентний)

Вміст файлу як самі дані розглядатиметься в NTFS як атрибут.

Якщо тип даних атрибута настільки малий, що він поміщається в записі MFT (як у стандарті та атрибуті імені файлу), це частина головної таблиці файлів.

Header

Standard Info�03.06.2004, 19.38

Name: �MFT.txt

Data: In the Masterfile

end identifier FF FF FF FF

43 of 57

Запис MFT із частиною резидентних даних

Attribut-Type (Data)

length of Attr.

resident Flag

Offset to the data portion

Contents of Boot.ini

Attribut-Type (Std.)

Attribut-Type (Name)

length of Attr.

length of Attr.

44 of 57

Атрибут дата (нерезидентний)

Атрибути, які не є резидентними, тобто частина даних яких не вміщується в запис MFT, повинні зберігатися поза MFT.

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

Кожен запуск визначається початковим кластером і його довжиною

Початковий кластер циклу зберігається як зсув до початкового кластера попередніх циклів. Зсув 1 Проходить 0.

Довжина циклів даних залежить від доступних суміжних кластерів і тому є змінною.

Data Runs

45 of 57

Атрибут дата (нерезидентний)

Якщо тип даних атрибута занадто великий, щоб поміститися в запис MFT, дані повинні десь зберігатися в нерозподілених кластерах на диску.

У MFT має бути посилання на один або більше суміжних діапазонів кластерів.

Header

Standard Info�03.06.2004, 19.38

Name: �BIG.txt

Date:�31 02 00 4F 3C 00..

End-ID

FF FF FF FF

Такий безперервний ланцюжок кластерів називається Run

46 of 57

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

Приклад:

Файл, потрібний для кластерів від 2 до 1002, має, відповідно, 1000 записів у FAT.

Початковий кластер — це запис каталогу (тут Кластер 2) у FAT

Тим часом потік у NTFS визначається його початковим кластером і його довжиною.

У наведеному вище прикладі NTFS збереже лише початковий кластер і необхідну кількість кластерів. -> 1000 кластерів з кластера 2

3

4

5

6

..

10

..

..

7

11

..

..

..

8

9

12

1000

1001

EOF

Різниця між адресацією в FAT та NTFS

47 of 57

Запис MFT із не резидентними даними

Attrib.-Type (Data)

Lange of Attr.

non-resident Flag

Attrib.-Type (Std.)

Attrib.-Type (Name)

Lange of Attr.

Lange of Attr.

Зміщення

Довжина

Опис

10

8

стартовий VCN

18

8

останній VCN

20

2

Зміщення до потоку даних

22

6

Стиснення та 4 байти доповнення

28

8

Фізичний розмір = кратний розміру кластера

30

8

Реальний розмір

38

8

Фактичний або ініціалізований розмір

48 of 57

Запис MFT із не резидентними даними

Offset to the data portion

Attrib.-Type (Std.)

Attrib.-Type (Name)

Lange of Attr.

Lange of Attr.

Зміщення

Довжина

Опис

10

8

стартовий VCN

18

8

останній VCN

20

2

Зміщення до потоку даних

22

6

Стиснення та 4 байти доповнення

28

8

Фізичний розмір = кратний розміру кластера

30

8

Реальний розмір

38

8

Фактичний або ініціалізований розмір

Header of the attribute $ Data

49 of 57

Заголовок артибута $Data

Runlist

Запис MFT із не резидентними даними

50 of 57

Кількість байт для довжини потоку (2)

Приклад потоку (Run)

Кількість кластерів в потоці (0x1370)

Кількість байтів для зміщення (3)

Номер кластера відносно попереднього потоку (0x053ABA)

Початок наступного потоку

0x00-> якщо немає наступних потоків

51 of 57

Декодування одиночного потоку даних

Потік даних 31 03 58 BC 37

51

Другий Ніббл

Кількість байтів, що використовуються для позначення кількості безперервних кластерів у потоці

Перший Ніббл

Кількість байтів, що використовуються для позначення початкового кластера

Кількість суміжних кластерів у потоці (3)

Зміщення – коли є лише один потік даних, це значення є початковим номером логічного кластера (3652696)

3

1

03

58 BC 37

52 of 57

Attrib.-Type (Data)

Lange of Attr.

Offset to the data portion

non-resident Flag

Side portion of the attributes (Runlist)

Приклад двох потоків

53 of 57

Кількість байтів для довжини потоку (1)

Кількість кластерів в потоці (0x04)

Кількість байтів для зміщення (3)

Номер кластера відносно попереднього циклу (0x021A1F)

Приклад двох потоків

54 of 57

 

Runlist

31 04 1F 1A 02 21 02 2C 37 00...............................

Зміщення

Довжина

04h Cluster from Offset 0x21A1F (137759 dec) 1. Run

02h Cluster from Offset 0x21A1F+0x372C=0x2514B (151883 dec) 2. Run

00 End

Runlist

55 of 57

Run 1:

Header = 0x21 - 1 Byte Lange, 2 Byte Offset

Lange = 0x18 (1 Byte)

Offset = 0x5634 (2 Bytes)

Run 2:

Header = 0x00 – End�

Summary: �0x18 Cluster @ LCN (logical cluster number) 0x5634

Example 1 is a fragmented file, which is 0x18 cluster from LCN 0x5634

Example 1 - Normal file

Data Runs:

21 18 34 56 00

21 18 34 56 - 00 (grouped)

56 of 57

Example 2 - Normal file Fragmented

Data Runs:

31 38 73 25 34 32 14 01 E5 11 02 31 42 AA 00 03 00

31 38 73 25 34 - 32 14 01 E5 11 02 - 31 42 AA 00 03 - 00 (grouped)

Run 1:

Header = 0x31 - 1 Byte Lange, 3 Byte Offset

Lange = 0x38

Offset = 0x342573

Run 2:

Header = 0x32 - 2 Byte Lange, 3 Byte Offset

Lange = 0x114

Offset = 0x363758 (0x211E5 plus 0x342573)

57 of 57

Run 4:

Header = 0x00 - End

Summary :

0x38 Clusters @ LCN 0x342573

0x114 Clusters @ LCN 0x363758

0x42 Clusters @ LCN 0x393802

Example 2 is a fragmented file with a size of 0x18E cluster, with fragments at the LCN 0x342573, 0x363758 and 0x393802.

Run 3:

Header = 0x31 - 1 Byte Lange, 3 Byte Offset

Lange = 0x42

Offset = 0x393802 (0x300AA plus 0x363758)