Попытка получить таблицу MFT из Python 3

Я пытаюсь прочитать таблицу MFT с моего локального диска из python. Конечно, если я напишу что-то вроде этого:

input_file = open('C:\$MFT', "rb")

я получу

[ Errno 13] Отказано в доступе: 'C:\$MFT'

Я пытался использовать pyMFTGrabber, но он не работает; У меня много "socket.errors".

Какой лучший и простой способ прочитать этот файл с помощью Python?
Может быть, это какой-то WinAPI или что-то еще? После прочтения хочу проанализировать с "analyzeMFT"


person user2319786    schedule 21.12.2013    source источник
comment
Попробуйте запустить эту программу с правами администратора?   -  person thefourtheye    schedule 21.12.2013
comment
Да, я выполняю его от имени администратора)   -  person user2319786    schedule 21.12.2013


Ответы (2)


С питоном довольно болезненно, так как он не совсем низкоуровневый.

Я думаю, что вы должны начать с этого, хотя:

L"\\?\C:\$MFT" — это пространство имен, которое необходимо использовать в MS VC++ API для создания дескриптора MFT.

Вам следует просмотреть исходный код упомянутого вами граббера pyMFTGrabber и прокрутите вниз, и он покажет вам, как автор получил доступ к файлу (выглядит точно — читает сектора вместо того, чтобы пытаться получить прямой доступ к $MFT, и он тоже выглядит довольно хорошо прокомментированным). Если вы читаете подробности проекта, там говорится, что это «Сценарий для извлечения записи основной таблицы файлов (MFT) для файловой системы NTFS из работающей системы».

person Rahul Manne    schedule 18.08.2014

Тем временем появились другие варианты: существует библиотека для анализа основной таблицы файлов ($MFT) из файловой системы NTFS, которая называется анализироватьMFT.

AnalyzeMFT.py предназначен для полного разбора файла MFT из файловой системы NTFS и максимально точного представления результатов в различных форматах.

Чтобы получить его, используйте pip (текущая версия 2.0.19) или установите его из источника, найденного на GitHub

pip install analyzeMFT
person wp78de    schedule 14.06.2018
comment
@ user2319786 Или, если это того стоит, вы можете взглянуть на код и посмотреть, как это делается. - person wp78de; 14.06.2018