Файлы и каталоги 11Р82 также могут обладать расширенными атрибутами - парами «имя-значение», заданными пользователем или системой. Расширенные атрибуты хранятся в обычных блоках данных, адреса которых задаются в индексном узле. Каждый блок содержит список структур данных переменной длины, поля которых перечислены в табл. 17.9.

Таблица 17.9. Структура данных записи расширенного атрибута в UFS2

Диапазон

Описание

Необходимость

0-3

Длина записи

Да

4-4

Пространство имен (см. табл. 17.10)

Нет

5-5

Дополнение содержимого

Да

6-6

Длина имени

Да

7-(7+длина имени)

Имя

Да

(После имени, с выравниванием по границе 8 байт)

Значение

Да

Имя дополняется таким образом, чтобы значение начиналось с границы 8 байт. Значение также дополняется, чтобы следующая запись была выровнена по 8-байтовой границе. Величина выравнивания имени вычисляется по длине имени, а величина выравнивания значения задается в байте 5. Поле пространства имен содержит одно из значений, представленных в табл. 17.10.

Таблица 17.10. Значения поля пространства имен в расширенных атрибутах

Значение

Описание

1

Пользовательское пространство имен

2

Системное пространство имен

Содержимое блока расширенных атрибутов с двумя атрибутами выглядит так:

0000000: 3000 0000 0107 0673 6f75 7263 6500 0000 0......source...

0000016: 7777 7777 2е64 6967 6974 616с 2d65 7669 wwww.digital-evi

0000032: 6465 6e63 652e 6f72 6700 0000 0000 0000 dence.org.......

0000048: 2000 0000 0104 0464 6174 6500 0000 0000 ......date.....

0000064: 4175 6720 3132 2c20 3230 3034 0000 0000 Aug 12. 2004....

0000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................

Байты 0-3 показывают, что длина записи равна 48 байтам (0x30). Пространство имен в байте 4 равно 1; следовательно, атрибут является пользовательским. В содержимом присутствуют 7 байт дополнения, длина имени равна б байтам, а имя атрибута представляет собой строку «source». Имя заканчивается в байте 12, а ближайшая 8-байтовая граница находится в байте 16. Чтобы определить завершающий адрес значения, следует вычесть из длины записи начальный байт и длину дополнения (48-16-7=25). Значением атрибута является строка «www.digital-evidence.org».

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

Структуры данных записей каталогов предназначены для хранения имен файлов и каталогов. Они хранятся в блоках, выделенных каталогам. Каждая структура данных содержит имя файла и адрес индексного узла с метаданными. Поля записей каталогов в UFS1 и UFS2 представлены в табл. 17.11.

Таблица 17.11. Структура данных записей каталогов UFS1 и UFS2

Диапазон

Описание

Необходимость

0-3

Индексный узел

Да

4-5

Длина записи каталога

Да

6-6

Длина имени

Да

7-7

Тип файла (см. табл. 17.12)

Нет

8+

Имя в кодировке АБСІІ

Да

Допустимые значения поля типа файла перечислены в табл. 17.12. 'аблица 17.12. Значения поля типа в записи каталога

Значение

Описание

0

Неизвестный тип

1

FIFO

2

Символьное устройство

4

Каталог

6

Блочное устройство

8

Обычный файл

10

Символическая ссылка

12

Сокет

14

Дубликат

Разные типы файлов, кроме последнего, были описаны в главе 15. Последний тип используется в том случае, если файловая система монтировалась в режиме объединения, вследствие чего появляются два файла с одинаковыми именами. Для одного из файлов устанавливается флаг дубликата, и ОС не отображает его по запросу пользователя.

Поле длины записи каталога используется для поиска следующей выделенной записи, а поле длины имени - для определения конца имени и фактической длины записи. За информацией об освобождении и выделении записей каталогов обращайтесь к разделу «Категория данных имен файлов» главы 14.

Содержимое каталога UFS1 в тестовой файловой системе выглядит так:

# icat -f openbsd openbsd.dd 1921 xxd

0000000: 8107 0000 OcOO 0102 2e00 0000 0200 0000 ................

0000016: OcOO 0402 2e2e 0000 8c07 0000 1400 0809 ................

0000032: 6669 6c65 312e 7478 7400 93e7 8d07 0000 filel.txt.......

0000048: 1400 0809 6669 6c65 382e 7478 7400 93e7 ....file8.txt...

0000064: 8e07 0000 2800 0809 6669 6c65 372e 7478 file7.tx

0000080: 7400 93e7 8f07 0000 1400 0809 6669 6c65 t...........file

0000096: 362e 7478 7400 93e7 9007 0000 1400 0809 6.txt...........

0000112: 6669 6c65 352e 7478 7400 93e7 9107 0000 file5.txt.......

0000128: 2800 0809 6669 6c65 342e 7478 7400 93e7 (...file4.txt...

0000144: 9207 0000 1400 0809 6669 6c65 372e 7478 ........file7.tx

[...]

Содержимое каталогов подробно рассматривалось в главе 15, поэтому сейчас я ограничусь краткими пояснениями. Первые четыре байта описывают индексный узел записи «.»; как видно из листинга, это индексный узел 1921 (0x0781). Байты 24-27 содержат номер индексного узла для первой записи файла filel.txt; это индексный узел 1932 (0x078с). Байты 68-69 содержат поле длины для файла file7.txt. Его длина составляет 40 байт (0x28), хотя имя занимает всего 9 байт. Следующая запись (для файла file6.txt) была удалена, а поле длины файла file7.txt ссылается на запись после file6.txt.

Выходные данные fis для этого каталога выглядят так:

# fls -f openbsd -a openbsd.dd 1921 d/d 1921: d/d 2:

r/r 1932: filel.txt

r/r 1933: file8.txt

r/r 1934: file7.txt

r/- * 1935: file6.txt

r/r 1936: file5.txt

r/r 1937: file4.txt

r/- * 1938: file3.txt

r/r 1939: file2.txt

r/- * 1940: filel0.txt

r/r 1941: file9.txt

Итоги

В этой главе были описаны структуры данных файловых систем иР51 и иР52. По сравнению со своими аналогами из ЕхгХ они обычно занимают больше места и содержат больше необязательных данных; с другой стороны, эти данные повышают эффективность повседневной работы файловой системы.

Библиография

См. раздел «Библиография» главы 16.

Приложение

Индексные узлы ирб2 | Криминалистический анализ файловых систем | The sleuth kit и autopsy


Криминалистический анализ файловых систем



Новости за месяц

  • Апрель
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31