Задать вопрос
@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?
Диск и файловая система исправны.
  • Вопрос задан
  • 1465 просмотров
Подписаться 3 Средний 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

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