# Scalpel ## Теоретическое введение У всех в жизни случалось что удалили файлы в той папке, где этого не следовало делать. Для Linux систем существует утилита Scalpel, которая позволяет восстановить удалённые файлы. Scalpel является форком проекта Foremost (с версии 0.69), начавший свою историю с 2005 года. Имеет свой github репозиторий и является более быстрым по скорости восстановления данных. **Возможности которые предоставляет Scalpel:** 1. Восстановление независимо от файловой системы 2. Выставление минимального и максимального размеров восстанавливаемого файла 3. Использование многопоточности на многоядерных системах 4. Асинхронные операции ввода/вывода дающие прирост при поиске по шаблону 5. Использование TRE регулярных выражений для поиска по началу и концу файла 6. Возможность восстановления из вложенных структур данных 7. Для гиков доступна возможность использования GPU, что доступно только для Linux и требует предустановленного NVIDIA CUDA SDK и небольших модификаций исходного кода (поиск c применением регулярных выражений не работает с GPU) ## Подготовка к работе Для работы со Scalpel можно создать новую виртуальную машину, с помощью VMware Workstation, и установлить операционную систему Parrot, одна из версий которой содержит в себе необходимую нам утилиту. ![](https://i.imgur.com/juDzUBi.png) Образ для виртуальной машины можно скачать с официального [сайта](https://www.parrotsec.org/) Parrot OS. Если у вас уже установален, например, Ubuntu, то можно установить утилиту через терминал с помощью команды: ` apt-get install scalpel` Создаём папки, куда будут воостанавливаться файлы: restore_1, restore_2, restore_usb. В первую воостановим файлы с жёсткого диска, во вторую с дополнительного раздела памяти, в третью с флеш-накопителя. ![](https://i.imgur.com/Ung7rZZ.png) Теперь запустим Scalpel и подготовим его для работы. Отредактируем файл конфигурации раскомментировав строки, которые отвечают за форматы jpg, pdf, doc, txt. С помощью команды `/etc/scalpel/scalpel.conf` открываем файл, и видно как раскомментирован формат файлов (txt). ![](https://i.imgur.com/AvRUxYC.png) ## Работа с утилитой Теперь мы можем приступать к **сканированию, начнём с основого диска**. Вводим следующую команду: `sudo scalpel /dev/sda1 -o /home/sveta/restore_1 -v` Видим как происходит сканирование. В зависимости от размера и типа диска, восстановление может занять некоторое время. ![](https://i.imgur.com/qCPg9lV.png) По завершении, в указанной нами папке restore_1 можно будет найти все восстановленные файлы. ![](https://i.imgur.com/C22ryPB.png) **Для восстановления файлов с флеш-носителя** вводим команду: `sudo scalpel /dev/sdb -o /home/sveta/restore_usb -v` Запускается сканирование. ![](https://i.imgur.com/Fm2lznJ.png) ![](https://i.imgur.com/BxwYbYa.png) Аналогично, с предыдущим сканированием в указанной директории найдем восстановленные файлы ![](https://i.imgur.com/54NYyae.png) **Для воссановления из другого раздела диска** используем: `sudo scalpel /dev/sda2 -o /home/sveta/restore_2 -v` После сканирования, найдем восстановленные файлы в папке restore_2. ![](https://i.imgur.com/soImqqB.png) ******** *Подготовлено в рамках Практической работы №2, студентfvb группы БСБО-07-19 Буздаловой Светланой, Меркуловым Максимом.*