Мне нужно прочитать файл MFT работающей Windows (XP или выше) и через него, чтобы достичь секторов HD, содержащих содержимое ($ DATA) определенного файла, который существует на машина.Чтение содержимого файла из MFT во время выполнения
Проблема заключается в том, что между временем считывания MFT до извлечения соответствующих секторов и их чтением структура файловой системы может изменяться, и местоположения могут быть неактуальными больше.
Есть ли способ «заморозить» систему в течение определенного времени? Возможно, гарантия того, что для этого файла не будет изменений? Заблокировать определенный файл, чтобы он не перемещался между секторами? (В том числе из-за оптимизаций и изменений в косвенном)
Конечно, я бы предпочел не копировать весь жесткий диск и работать статически, так как это медленная операция, которая в настоящее время не позволит нормальному использованию системы. Излишне говорить, что я не хочу использовать функции API для ОС или писать драйвер.
Из вопроса я не понимаю, действительно ли вы хотите прочитать содержимое атрибута $ DATA или фактические данные файла - это не одно и то же, из-за отложенных операций записи и нескольких других обстоятельств. –
Мне действительно нужны реальные данные, как это показано при вызове ReadFile. – Reflection
В другом странном направлении - вы можете установить переднюю загрузку, такую как WinPE, и выполнять свою работу оттуда. В такой среде вы являетесь единственным пользовательским процессом, и вы можете иметь свой путь со всеми файлами без помех. Я работаю над продуктом «ремонт и визуализация», который делает это. Мессинг с BCD - это немного танца, но фиксированное стабильное состояние файла настолько изумительно. Пользовательский процесс в winPE работает как admin, кстати. – Clay