Журнал изменений относится к категории прикладных данных. В нем фиксируются изменения, вносимые в файлы. Имя файла журнала - \$Ех1ег^\$изп]гп1.;

информация хранится в атрибуте $DATA. Имя этого атрибута - $J. Для хранения файла не используется зарезервированная запись MFT. Атрибут $DATA с именем $J является разреженным и содержит список структур данных разных размеров, называемых записями журнала изменений. Также имеется атрибут $DATA с именем $Мах, содержащий информацию о максимальных пороговых значениях пользовательского журнала.

Как упоминалось в главе 12, данные журнала не являются необходимыми для выполнения основных функций файловой системы - хранения и выборки данных. По этой причине пометка в последнем столбце относится к необходимости данных в контексте хранения журнала изменений. Поля структуры данных записей $J перечислены в табл. 13.27.

Таблица 13.27. Структура данных элементов индекса $J файла $UsnJrnl

Диапазон

Описание

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

0-3

Размер записи журнала

Да

4-5

Основная версия

Да

6-7

Дополнительная версия

Да

8-15

Базовый адрес файла, к которому

Да

относится запись

16-23

Базовый адрес родительского каталога

Нет

файла, к которому относится запись

24-31

Номер USN для записи

Да

32-39

Временной штамп

Да

40-43

Флаги типов изменений (см. табл. 13.28)

Да

44-47

Информация об источнике

Нет

48-51

Код SID

Нет

52-55

Атрибуты файла

Нет

56-57

Размер имени файла

Да

58+

Имя файла

Да

В байтах 40-43 содержится описание причины для создания записи в журнале изменений. Поле состоит из нескольких флагов, и причин для создания записи может быть несколько. Определенные значения флагов перечислены в табл. 13.28.

Таблица 13.28. Значения поля типа изменений в записях $3

Флаг

Описание

0x00000001

Перезапись атрибута $ОАТА по умолчанию

0x00000002

Расширение атрибута $ОАТА по умолчанию

0x00000004

Усечение атрибута $ОАТА по умолчанию

0x00000010

Перезапись именованного атрибута $ОАТА

0x00000020

Расширение именованного атрибута $ОАТА

0x00000040

Усечение именованного атрибута $ОАТА

0x00000100

Создание файла или каталога

0x00000200

Удаление файла или каталога

Таблица 13.28 (продолжение)

Флаг

Описание

0x00000400

Изменение расширенных атрибутов файла

0x00000800

Изменение дескриптора безопасности

0x00001000

Переименование - запись в журнале изменений содержит старое имя

0x00002000

Переименование - запись в журнале изменений содержит новое имя

0x00004000

Изменение состояния индексирования содержимого

0x00008000

Изменение основных атрибутов файла или каталога

0x00010000

Создание или удаление жесткой ссылки

0x00020000

Изменение состояния сжатия

0x00040000

Изменение состояния шифрования

0x00080000

Изменение идентификатора объекта

0x00100000

Изменение точки подключения

0x00200000

Создание, удаление или изменение именованного атрибута $ОАТА

0x80000000

Закрытие файла или каталога

Источник в байтах 44-47 обычно равен 0, но в этом поле также может находиться ненулевое значение, если запись была создана в результате действий ОС, а не пользователя. Рассмотрим пример небольшого журнала изменений. Чтобы найти запись MFT для журнала, мы просмотрим содержимое каталога метаданных файловой системы \$Extend, представленного записью MFT 11:

# fis -f ntfs ntfs3.dd 11

г/г 25-144-2: SObjld:$0

г/г 24-144-3: $Quota:$0

г/г 24-144-2: $Quota:$Q

г/г 26-144-2: $Reparse:$R

г/г 27-128-3: SUsnJrnl:$J

г/г 27-128-4: SUsnJrnl:$Max

Мы видим, что данные хранятся в записи MFT 27. Для вывода содержимого атрибута $J используется программа icat:

# icat -f ntfs ntfs3.dd 27-128-3 xxd

0000000: 5000 0000 0200 0000 IcOO 0000 0000 0100 P...............

0000016: 0500 0000 0000 0500 0000 0000 0000 0000 ................

0000032: 3000 e2b9 eb69 c401 0001 0000 0000 0000 0____i..........

0000048: 0201 0000 2000 0000 1400 3c00 6600 6900 .........<.f.i.

0000064: 6c00 6500 2d00 3000 2e00 7400 7800 7400 1.e.-.0...t.x.t.

Первые 4 байта показывают, что длина записи журнала изменений составляет 80 байт, а байты 8-13 - что запись относится к записи MFT 28 (0x1с). Согласно байтам 24-31, номер USN записи равен 0, а байты 40-43 содержат флаги 0x00000001; это означает, что запись была создана из-за перезаписи атрибута $DATA по умолчанию. Из последних строк листинга видно, что запись относится к файлу file-0.txt.

Атрибут $Мах содержит общую административную информацию, относящуюся к журналу изменений. Его поля перечислены в табл. 13.29.

Таблица 13.29. Структура данных атрибута $Мах файла $UsrJrnl

Диапазон

Описание

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

0-7

Максимальный размер

Да

8-15

Выделенный размер

Да

16-23

USN ID

Да

24-31

Минимальный USN

Да

Вряд ли эта информация пригодится в процессе экспертизы, но для полноты картины я все же приведу содержимое атрибута $Мах:

# icat -f ntfs ntfs3.dd 27-128-4 xxd

0000000: 0000 8000 0000 0000 0000 1000 0000 0000 ................

0000016: 4057 7491 eb69 c401 0000 0000 0000 0000 @Wt..i..........

Итоги

Многочисленные структуры данных и указатели, используемые в NTFS, усложняют любой ручной анализ. В этой главе рассматриваются некоторые известные структуры данных. Следует подчеркнуть, что информация взята не из официальных спецификаций, но ее надежность проверена опытом. Нельзя исключать того, что некоторые значения или флаги еще не были идентифицированы.

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

• Linux NTFS Project. NTFS Documentation, 1996-2004. http://linux-ntfs.source-forge.net/ntfs/index.html

• Solomon, David and Mark Russinovich. Inside Windows 2000, 3rd ed. Redmond: Microsoft Press, 2000.

Также см. раздел «Библиография» главы 11.

Файл $logfile | Криминалистический анализ файловых систем | Ext2 и ext3: концепции и анализ


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



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

  • Март
    2020
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс