hjaiuyg Ответов: 2

Чтение файла $mft с диска NTFS


Привет,
Для проекта, в котором я помогаю, мне нужно открыть $MFT (фактический файл) и вычислить его MD5.
Windows действительно признает его существование (т. е. создает файл в \\.\c:\$mft works), но любая попытка чтения из него возвращает ошибку Access denied.
попробовал другой подход с FSCTL_GET_RETRIEVAL_POINTERS, вызов работает, но я не смог найти ни одного примера кода о том, как пройти по файлу по одному кластеру за раз.
Парсер файловой системы NTFS Либ[^]- отличный проект, который действительно может делать то, что я хочу, но он использует лицензию GPL, поэтому я не могу взять код непосредственно с него.
кроме того, я думаю, что использование его в любом случае может быть несколько излишним.
Любая информация будет приветствоваться.
Спасибо.

2 Ответов

Рейтинг:
2

small_programmer

Вы можете использовать эту библиотеку с открытым исходным кодом:
NtfsReader .NET Library / Wiki / Home[^][^]

Он написан на языке C#, но является хорошей и простой библиотекой для работы с файловой системой NTFS.


jeron1

Надеюсь, они решили it...in последние 6+ лет.

Рейтинг:
0

Andrew Brock

Вам нужно будет открыть жесткий диск (или, еще лучше, просто раздел) с прямым доступом, а затем написать свою собственную библиотеку файловой системы. Вы в значительной степени делали это. Просто использовать "\\\\.\\C:"

Хорошая новость заключается в том, что это не так сложно, как кажется.

Я бы СИЛЬНО рекомендую обзавестись шестнадцатеричным редактором. Я использую отличный Шестигранная Мастерская Точки Останова[^] но это не бесплатно. Попробуйте поискать 1, который может открывать жесткие диски.

Я бы рекомендовал вам сначала получить базовое представление о файловой системе FAT. Хотя идея NTFS заметно отличается, реализация основных функций почти идентична для доступа к файлам$, таким как $MFT.

Есть такой сайт http://www.ntfs.com/[^] который я использовал для того, чтобы помочь моему пониманию файловой системы NTFS, хотя я уже знал файловую систему FAT.

В дополнение. Вы можете прочитать части библиотеки синтаксического анализатора NTFS, о которой Вы упомянули, в этом нет никакого вреда, вы просто не можете скопировать из нее код.