Поиск по сигнатурам – один из важнейших алгоритмов, делающих современные программы восстановления информации тем, чем они являются: универсальными инструментами, способными вытащить файлы с отформатированных, поврежденных и недоступных дисков.
Давайте сначала разберемся, как Windows хранит и удаляет файлы
Файлы хранятся в виде блоков информации, записанных на секторах жёсткого диска. Секторы могут располагаться как последовательно, один за другим, так и быть хаотично разбросанными по всей поверхности диска. Расположение секторов зависит от того, какие именно блоки были свободны в момент сохранения файла на диск. Если система не обнаружила на диске непрерывного свободного блока секторов достаточного размера для того, чтобы сохранить файл в виде непрерывной последовательности данных, система будет фрагментировать файл, записывая его отдельные части в свободные блоки.
Для того, чтобы ориентироваться в записанной информации, Windows создает запись в файловой системе с указанием того, какие именно секторы на диске занимает содержимое конкретного файла.
В момент, когда пользователь удаляет файл, Windows не стирает и не перезаписывает содержимое секторов на диске. Содержимое записи о файле в файловой системе также не удаляется, но подвергается модификации: система помечает запись как принадлежащую удалённому файлу. Соответственно, все сектора на диске, принадлежащие данному файлу, оказываются свободными – теперь Windows может сохранить в это пространство какой-нибудь другой файл. Но пока этого не произошло, можно попробовать восстановить содержимое удалённого файла. Для этого потребуется специальное ПО для восстановления информации.
Программы для восстановления удалённых файлов сканируют файловую систему в поиске записей, помеченных как удалённые. Проанализировав такие записи, становится возможным узнать точные адреса секторов на диске, в которые было записано содержимое оригинального файла. После быстрой дополнительной проверки – не принадлежат ли эти сектора какому-либо другому файлу, – программа считает данные из нужных секторов и сохранит их в новом файле. Задача решена!
Что происходит, если в файловой системе не осталось записи, указывающей на удалённый файл? В этом случае простейшие инструменты не срабатывают. Требуется другой подход – «сигнатурный поиск для восстановления данных».
Сигнатурный поиск
Поиск по сигнатурам позволяет программам для восстановления данных работать с поврежденными и отформатированными разделами, а также с дисками, заново разбитыми на разделы. Для технологии существует множество коммерческих названий. “Power Search”, “Content-Aware Analysis”, “Smart Scan” – все эти технологии от разных производителей работают по одному и тому же принципу.
Основной принцип работы алгоритмов сигнатурного поиска такой же, как у самых первых антивирусов. Как антивирус сканирует файл в поисках участков данных, совпадающих с известными фрагментами кода вирусов, так и алгоритмы сигнатурного поиска, использующиеся в программах для восстановления данных, считывают информацию с поверхности диска в надежде встретить знакомые участки данных. Заголовки многих типов файлов содержат характерные последовательности символов. К примеру, файлы в формате JPEG содержат последовательность символов “JFIF”, архивы ZIP начинаются с символов “PK”, а документы PDF начинаются с символов “%PDF-“.
Некоторые файлы (к примеру, текстовые и HTML файлы) не обладают характерными сигнатурами, но могут быть определены по косвенным признакам, т.к. содержат только символы из таблицы ASCII.
Еще примеры:
Файл | Начинается с сигнатуры |
---|---|
avi | 5249 |
bmp | 424D |
tif | 4949 |
doc | D0CF |
docx | 504B |
jpeg | FFD8 |
png | 8950 |
Для восстановления файла мало найти его начало, нужно также определить его конец. Конец файла можно найти, зная размер и адрес начала файла. Размер файла определяется либо анализом заголовка (ZIP, JPEG, AVI и т.п.), либо считыванием и анализом секторов диска, идущих сразу за заголовком. К примеру, концом текстового или HTML файла алгоритм будет считать первый же сектор, который будет содержать символы, не входящие в таблицу ASCII.
Сигнатурный поиск – не панацея. Перезапись содержимого диска и фрагментирование файлов (особенно – файлов большого размера) оказывают негативное влияние на возможность восстановления информации.
Хороший пример программной реализации сигнатурного поиска — Starus Partition Recovery. Ознакомительное видео. Программа в тестовой версии позволяет проанализировать носитель информации и просмотреть найденные для восстановления файлы. Для того, что бы сохранить файлы необходимо купить лицензию. Кстати, действует скидка 20% если при покупке через Pay Pro Global ввести в поле код купона «Discount 20».
Starus Partition Recovery использует гибридный подход к анализу диска, стараясь по возможности считать максимум информации из файловой системы и прибегая к сигнатурному анализу содержимого диска только в случаях крайней необходимости – при повреждении или отсутствии файловой системы, а также для поиска файлов, удалённых длительное время назад.
Как удалить файл чтоб его невозможно было восстановить
Существует целый класс программ, предназначенных для надёжного и безопасного уничтожения информации. Одна из лучших программ для удаления файлов и перезаписи свободного места на диске случайными данными – Eraser.