Задать вопрос
@atapi086

Почему при сканировании $MFT в атрибутах возникает мусор?

Контекст
Пишу библиотеку для Python, которая быстро строит индекс следующего вида:
class FSIndexEntry:
    paths: list[pl.Path]
    f_size_logical: int
    f_size_allocated: int

Inode: TypeAlias = int
my_index: dict[Inode, FSIndexEntry]


Для этого открываю файл MFT при помощи pytsk:
elevate.elevate()

image = pytsk3.Img_Info("\\\\.\\Y:")
fs = pytsk3.FS_Info(image)

mft_file = fs.open_meta(inode=0)
mft_bytes = mft_file.read_random(0, mft_file.info.meta.size)


и делаю разбор файловых записей. Всё вроде как работает правильно, но есть небольшое количество очень странных записей с искажённым полем filename в атрибуте $FILE_NAME. Чаще всего искажены 1 или 2 буквы ближе к концу имени (но не крайние).
Пример: 680d2976dffe3387868789.jpeg

Я пробовал открывать файл MFT через HEX-редактор и там тоже filename искажён: 680d2b3356677282404934.jpeg

Но при всём этом в системе эта директория отображается верно: `Telegram Desktop`. Так же программы по типу Everything, WizTree и istat отображают название директории верно.

Вывод istat: 680d2c5e3e102150824144.jpeg

Вопрос: с чём это связано и каким образом нужно получать имя директории из $MFT?

P.S. я почти наверняка могу утверждать, что диск и файловая система исправны
  • Вопрос задан
  • 355 просмотров
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы