Как написать программу, которая может восстанавливать файлы в FAT32

Как мне написать программу, которая может восстанавливать файлы в FAT32?

Ответов (3)

Решение

Это довольно сложно, но FAT32 очень хорошо документирована:

Однажды я написал инструмент для прямого доступа к FAT32, используя только эти ресурсы:

Но на самом деле я никогда не пробовал восстанавливать файлы. Если вы успешно восстановите файл, это зависит от нескольких факторов:

  1. Файл должен физически «существовать» на жестком диске.
  2. Вы должны знать, где начинается файл
  3. Вы должны знать, что ищете (Заголовки ..)

Это зависит от того, что случилось с файлами, которые вы пытаетесь восстановить. Данные могут все еще находиться в разделе или уже могут быть перезаписаны. Есть много готовых решений. Простой поиск в Google должен предоставить вам множество программ, которые могут попытаться восстановить данные, но нет 100% уверенности в том, что они вернутся. Если вы действительно хотите восстановить их самостоятельно, вам нужно будет что-то написать, чтобы прочитать необработанный раздел и игнорировать отсутствующие маркеры файлов.

вот программа (написанная Томасом Темпельманом. Этот парень великолепен), которая может вам помочь. Вы можете сделать копию раздела, игнорируя поврежденные биты, а затем работать с копией, чтобы ничего не испортить, и вы также можете восстановить данные непосредственно с ним.

Я думаю, вы имеете в виду вырезание данных , то есть чтение физического устройства и восстановление ранее несвязанных файлов на основе некоторых знаний (например, когда вы найдете две буквы, PK, это весьма вероятно, чем следует за zip-архивом, то же самое для JFIF для JPEG ).

В этом случае я предлагаю вам изучить исходный код PhotoRec - отличного (на мой взгляд, лучшего) инструмента с открытым исходным кодом для вырезания данных.