Восстановление файлов без подписей (магические числа)

Восстановление файлов без подписей (магические числа)

Можно ли восстановить файл из образа диска (образ dd), если верхний/нижний колонтитул файла, подпись были изменены/изменены или удалены?

Я имею в виду, например, если сигнатура растрового изображения (0x42 0x4d) или даже первые 30 байт были удалены или изменены?

Если нет, то какой есть альтернативный способ восстановления этого файла, не основанный на сигнатуре файла? Если возможно, как это сделать?

решение1

Вместо этого вы можете проанализировать остаточную структуру файловой системы.

Например,семейство файловых систем FATуказать, что файл был удален, перезаписав первый байт имени файла в записи каталога значением байта 0x3F. Остальные метаданные (включая большую часть имени файла) останутся там сразу после удаления, поэтому программа, которая обращается к диску напрямую, а не через операционную систему, может легко найти файл, так работает команда DOS "undelete".

Другие файловые системы похожи, хотя, как правило, о них доступно меньше информации — файлы из семейства FAT восстанавливать особенно легко.

решение2

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

Например, было бы чрезвычайно полезно знать заранее вероятный диапазон ширины изображения. Знание его приблизительной цветности также помогло бы.

Реальная проблема, скорее всего, будет в том, что сам файл может быть разбит на несмежных секторах, а информация, необходимая для его повторного объединения, также может быть стерта. Битовая карта, достаточно маленькая, чтобы поместиться в один кластер файловой системы, имела бы наилучшие шансы.

Другая вполне реальная возможность, которую следует рассмотреть, заключается в том, что то, что стерло первые байты, стерло и остальные или достаточно значительную их часть, что делает восстановление бесполезным, если вообще возможным.

Чтобы попытаться восстановить несжатую битовую карту DIB, вы должны искать последовательности байтов со свойством, что значения изменяются в триплетах (т. е., учитывая последовательность из N байтов, корреляция между пикселями, взятыми с индексом по модулю три, значительно выше, чем с любым другим индексом, не кратным трем). Затем вы должны проверить, существует ли подобная корреляция с более высоким индексом, который представляет собой ширину строки, округленную до ближайшего кратного четырем. Для определения начала/конца строки требуется дополнительный анализ.

Не зная больше о конкретном случае (файловая система, реальный используемый формат растрового изображения, размер растрового изображения,как он был удален/перезаписан, размер изображения dd, причина операции), я не могу дать вам больше, чем «возможно» относительно шансов на выздоровление.

Связанный контент