- PVSM.RU - https://www.pvsm.ru -

Как работают алгоритмы сигнатурного поиска в программах восстановления данных

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

Давайте сначала разберемся, как 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 [1]. Ознакомительное видео [2]. Программа в тестовой версии позволяет проанализировать носитель информации и просмотреть найденные для восстановления файлы. Для того, что бы сохранить файлы необходимо купить лицензию. Кстати, действует скидка 20% если при покупке через Pay Pro Global ввести в поле код купона «Discount 20».

Starus Partition Recovery [1] использует гибридный подход к анализу диска, стараясь по возможности считать максимум информации из файловой системы и прибегая к сигнатурному анализу содержимого диска только в случаях крайней необходимости – при повреждении или отсутствии файловой системы, а также для поиска файлов, удалённых длительное время назад.

Как удалить файл чтоб его невозможно было восстановить

Существует целый класс программ, предназначенных для надёжного и безопасного уничтожения информации. Одна из лучших программ для удаления файлов и перезаписи свободного места на диске случайными данными – Eraser [3].

Автор: cigulev

Источник [4]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ya-piaryus/24791

Ссылки в тексте:

[1] Starus Partition Recovery: http://www.starusrecovery.ru/

[2] Ознакомительное видео: https://www.youtube.com/watch?v=twKsHoXXFj4

[3] Eraser: http://eraser.heidi.ie/

[4] Источник: http://habrahabr.ru/post/165809/