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

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

    Давайте сначала разберемся, как 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. Ознакомительное видео. Программа в тестовой версии позволяет проанализировать носитель информации и просмотреть найденные для восстановления файлы.

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


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



    Такие программы используют массивы случайных чисел для физической перезаписи места на диске, занимаемого уничтожаемым файлом. Некоторые стандарты безопасности (например, стандарт, используемый в армии США) требуют нескольких циклов перезаписи и настаивают на использовании криптографически стойких генераторов случайных чисел. На практике, для частных пользователей и большинства коммерческих организаций с головой хватит и единственного цикла перезаписи.

    Поделиться публикацией
    Комментарии 7
      +2
      Как-то слишком поверхностно. Ожидал увидеть больше деталей работы с поврежденной файловой системой…
        +1
        зависит от типа файловой системы и характера повреждений. Например если в FAT побьется одна из копий таблицы файлов (их 2) то можно восставновить все. Если побьются обе — то только те файлы, описания которых в таблице валидны. Если затереть вообще обе таблицы — то восстановить можно будет на 100% только файлы размером не более размера кластера, остальное как повезет.
        Для NTFS, даже если какие-либо цепочки описаний затрутся (а таблица $MFT опять же в двух копия лежит, одна в начале раздела, другая в центре) то можно сигнатурно искать $MFT и FILE0 записи и восстановить большую часть файлов.
          0
          Дык рекламируют свою программу восстановления, остальной текст для маскировки.
            0
            Пост в хабе «Я пиарюсь», какая маскировка?
              +1
              Рекламы продукта под техническую статью
                0
                Так это и есть техническая статья, рассказано о том как Windows хранит файлы, как работает алгоритм сигнатурного поиска, как безвозвратно удалить файл… Прочтите хотя бы.
          +2
          С приходом TRIM на SSD у криминалистов-восстанавливальщиков появились большие проблемы.

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

          Самое читаемое