Восстановление Удаленных Данных С Помощью Скальпеля

У каждого человека в жизни бывает такая ситуация, как rm -rf на папку, где этого делать не надо было.

Резервные копии — это хорошо, но что, если их у вас нет? Для систем Linux существует утилита Scalpel, позволяющая восстанавливать удаленные файлы по заданным шаблонам, в том числе с использованием регулярных выражений.

Scalpel — форк проекта Foremost (с версии 0.69), начавшего свою историю в 2005 году.

Имеет свой github хранилище и быстрее с точки зрения скорости и эффективности восстановления данных, чем Foremost. Говоря о разнице между этими двумя проектами, можно сказать, что Foremost, выпущенный после версии 0.69, имеет новые методы семантического восстановления данных.

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

Таким образом, можно сказать, что Foremost может более точно восстановить утерянные данные, когда Scalpel делает это гораздо быстрее.

Возможности, которые предоставляет Скальпель:

  1. Независимое восстановление файловой системы
  2. Установка минимального и максимального размера восстанавливаемого файла
  3. Использование многопоточности в многоядерных системах
  4. Асинхронные операции ввода-вывода, которые обеспечивают увеличение поиска шаблонов.

  5. Использование регулярных выражений TRE для поиска в начале и конце файла
  6. Возможность восстановления из вложенных структур данных.

  7. Для гиков доступна опция использования графического процессора, которая доступна только для Linux и требует предустановленного NVIDIA CUDA SDK и незначительных модификаций исходного кода (поиск по регулярным выражениям не работает с графическим процессором)
Scalpel обычно имеется среди пакетов соответствующего дистрибутива Linux, но его можно собрать и из сырых материалов, взяв из Репозиторий GitHub .

Приложение настраивается в файле /etc/scalpel/scalpel.conf, где задаются соответствующие шаблоны поиска файлов.

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

Если в файле нет шаблона нужного файла или, например, вы ищете определенный формат xml, то вам необходимо создать свой шаблон, описание которого аналогично правилам, представленным ниже.

Тип С учетом регистра Диапазон размеров Заголовок Нижний колонтитул Вариант поиска
Ави й 50000000 РИФ???ЭАВИ
док й 10000000 \xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00 \xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00 СЛЕДУЮЩИЙ
PDF й 500000 %PDF %EOF\x0d ОБЕСПЕЧИТЬ РЕГРЕСС
PDF й 500000 %PDF %EOF\x0a ОБЕСПЕЧИТЬ РЕГРЕСС
техас й 300:50000 /%.

{1,20}\.

tex/

/%.

{1,20}\.

tex\sEnd/

php й 100000 ОБЕСПЕЧИТЬ РЕГРЕСС
Коротко о спикерах
  • Тип – имеет значение только в контексте программы, не имеет никакого отношения к восстановленным файлам и будет использоваться только при отображении журнала и названий каталогов в восстановленных данных.

    Его не обязательно указывать, в этом случае просто поставьте NONE

  • С учетом регистра – учитывать ли регистр при поиске по заданному шаблону
  • Диапазон размеров – если указано простое число, то максимальный размер искомого файла, если через двоеточие, то min:max размер файла
  • Заголовок , Нижний колонтитул – шаблоны поиска начала и конца файла.

    Допустимо использование регулярных выражений TRE. Символ \s используется в качестве пробела; вы также можете использовать шестнадцатеричные и восьмеричные представления требуемых данных, например \x[0-f][0-f] или \[0-3][0-7][0-7]

Важно отметить, что допустимые значения для последнего поля параметра поиска:
  • ОБЕСПЕЧИТЬ РЕГРЕСС — этот параметр следует использовать, если в файле можно использовать несколько шаблонов окончания.

    Например, файлы PDF или PHP, которые могут содержать несколько скриптов, заключенных в рамки

  • СЛЕДУЮЩИЙ — используется когда нужно получить данные между началом и первым концом файла, если конец файла не обнаружен то будет взята область размера указанного в поле размера
  • FORWARD_NEXT — является стандартным поведением и его указание не является обязательным.

    В этом варианте происходит строгая проверка шаблона, и если в заданном объеме памяти найдено начало файла и не найдено его окончание, то этот раздел исключается из результатов поиска, если не указана опция -b при запуске программы будет взят раздел заданного размера с соответствующим началом, а в журнале приложения [audit.txt] будет написано об обрезанном файле (chop столбец)

Заметка В случае необходимости использовать вопросительный знак "?" в качестве желаемого значения в заголовке или конце файла, вам необходимо переопределить подстановочный знак, которым является вопросительный знак.

Для этого нужно в начале файла конфигурации написать

подстановочный знак S
Где S — новое обозначение подстановочного знака в выражении поиска или используйте шестнадцатеричное представление этого символа, эквивалентное \0x3f или \063. Теперь о практике Предположим, мы удалили файлы, описанные шаблонами в таблице выше.

Запишем эти шаблоны в файл конфигурации (в качестве разделителя столбцов используется символ табуляции) /etc/scalpel/scalpel.conf и запустим восстановление (предварительно я подготовил образ с данными для восстановления)

  
   

root# scalpel MyDrive.img -o recover Written by Golden G. Richard III, based on Foremost 0.69. Opening target "/home/username/Documents/repair_files/test/MyDrive.img" Image file pass 1/2. MyDrive.img: 100.0% |*****************************************************| 500.0 MB 00:00 ETA Allocating work queues. Work queues allocation complete. Building carve lists. Carve lists built. Workload: avi with header "\x52\x49\x46\x46\x3f\x3f\x3f\x3f\x41\x56\x49" and footer "" --> 1 files doc with header "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00" and footer "\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1\x00\x00" --> 2 files pdf with header "\x25\x50\x44\x46" and footer "\x25\x45\x4f\x46\x0d" --> 33 files pdf with header "\x25\x50\x44\x46" and footer "\x25\x45\x4f\x46\x0a" --> 19 files php with header "\x3c\x3f\x70\x68\x70" and footer "\x3f\x3e" --> 8 files Carving files from image. Image file pass 2/2. MyDrive.img: 100.0% *****************************************************| 500.0 MB 00:00 ETA Processing of image file complete. Cleaning up. Done. Scalpel is done, files carved = 63, elapsed = 6 seconds.

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



Scalpel version 1.60 audit file Started at Wed Jan 7 12:50:52 2015 Command line: scalpel MyDrive.img -o recover Output directory: /home/username/Documents/repair_files/test/recover Configuration file: /etc/scalpel/scalpel.conf Opening target "/home/username/Documents/repair_files/test/MyDrive.img" The following files were carved: File

Теги: #linux #настройка Linux #Восстановление данных #скальпель

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.