
Инструмент карвинга и индексации файлов для цифровой криминалистики, восстанавливающий файлы из образов дисков на основе сопоставления шаблонов заголовков/концовок, регулярных выражений, многопоточности и опциональной обработки с ускорением на GPU.
По состоянию на 6/27/2013 Scalpel выпущен под лицензией Apache 2.0, и исходный код доступен в репозитории The Sleuth Kit на GitHub.
Он не поддерживается активно. Команда Autopsy начала работу по его тесной интеграции через привязки Java/JNI, но столкнулась с несколькими утечками памяти, и эти усилия были прекращены.
Официальные релизы не выпускаются. Вы можете отправлять pull request'ы, но их рассмотрение может занять некоторое время.
Scalpel — это приложение для восстановления (carving) файлов и индексации, работающее в Linux и Windows. Первая версия Scalpel, выпущенная в 2005 году, была основана на Foremost 0.69. С момента последнего публичного релиза 1.60 было выпущено несколько внутренних версий, в первую очередь для поддержки наших собственных исследований. Новейший публичный релиз v2.0 имеет ряд дополнительных возможностей, включая:
o минимальные размеры извлекаемых файлов (carve sizes).
o многопоточность для более быстрого выполнения на многоядерных процессорах.
o асинхронный ввод-вывод, позволяющий операциям с диском перекрываться с сопоставлением шаблонов — это даёт существенный прирост производительности.
o поддержку регулярных выражений для заголовков/окончаний (headers/footers).
o сопоставление встроенных заголовков/окончаний для более качественной обработки структурированных типов файлов, которые могут содержать встроенные файлы.
o для продвинутых пользователей — поддержку массово-многопоточной работы на графических процессорах (GPU). Эта функция доступна только в Linux и требует установки NVIDIA CUDA SDK, изменения scalpel.h для включения режима GPU-потоков и компиляции с помощью инструментария CUDA. Наша реализация также требует графический процессор NVIDIA с вычислительной способностью (compute capability) >= 1.2, поэтому старые карты, поддерживающие CUDA, вероятно, не будут работать. NVIDIA GTX 260 относительно недорога, достаточно производительна и обладает нужной вычислительной способностью. Версия Scalpel с поддержкой GPU способна выполнять предварительный carving со скоростью, превышающей дисковую пропускную способность большинства файловых серверов, так что для больших задач дополнительные усилия по использованию этой функции могут быть оправданы. Обратите внимание: заголовки и окончания на основе регулярных выражений в настоящее время НЕ поддерживаются при использовании GPU-ускорения! Возможно, мы решим этот вопрос в одном из будущих релизов.
Scalpel выполняет операции по восстановлению (carving) файлов на основе шаблонов, описывающих определённые «типы» файлов или фрагментов данных. Эти шаблоны могут быть основаны либо на фиксированных бинарных строках, либо на регулярных выражениях. В поставляемый в дистрибутиве конфигурационный файл «scalpel.conf» включён ряд шаблонов по умолчанию. Комментарии в конфигурационном файле объясняют формат шаблонов carving, поддерживаемых Scalpel.
Важное примечание: в файле конфигурации по умолчанию «scalpel.conf» все поддерживаемые шаблоны файлов закомментированы — перед запуском Scalpel необходимо отредактировать этот файл, чтобы активировать нужные шаблоны. Не поддавайтесь желанию просто раскомментировать все шаблоны carving; это пустая трата времени и приведёт к огромному количеству ложных срабатываний. Вместо этого раскомментируйте только те шаблоны, которые соответствуют нужным вам типам файлов.
Опции Scalpel описаны на man-странице Scalpel — «scalpel.1». Вы также можете запустить Scalpel без аргументов командной строки, чтобы увидеть список опций.
ПРИМЕЧАНИЕ: На Unix-платформах и Mac OS X компиляция обязательна. Для Windows предоставляется предварительно скомпилированный scalpel.exe. Если вы всё же хотите перекомпилировать Scalpel в Windows, вам понадобится окружение mingw (gcc). Scalpel не компилируется с помощью компиляторов Visual Studio C. Обратите внимание, что наша среда компиляции для Windows в настоящее время 32-битная; мы не тестировали 64-битную версию mingw, но займёмся этим в будущем.
ИНСТРУКЦИИ ПО КОМПИЛЯЦИИ НА ПОДДЕРЖИВАЕМЫХ ПЛАТФОРМАХ:
Linux/Mac OS X:
% ./bootstrap
% ./configure
% make
Windows (mingw): cd src mingw32-make -f Makefile.win
и пользуйтесь. Если вы хотите установить бинарный файл и man-страницу в более постоянное место, просто скопируйте «scalpel» (или «scalpel.exe») и «scalpel.1» в соответствующие каталоги, например, в Linux — в «/usr/local/bin» и «/usr/local/man/man1» соответственно. В Windows вам также потребуется скопировать DLL-библиотеки pthreads и tre (библиотека регулярных выражений) в тот же каталог, где находится «scalpel.exe».
ДРУГИЕ ПОДДЕРЖИВАЕМЫЕ ПЛАТФОРМЫ
В настоящее время мы не поддерживаем Scalpel на вариантах Unix, отличных от Linux. Можете попробовать выполнить ./configure и make и посмотреть, что получится, но обязательно проведите тщательное тестирование, прежде чем использовать Scalpel в производственной работе. Если вы заинтересованы в поддержке версии Scalpel на альтернативных платформах, пожалуйста, свяжитесь с нами. Если вы заинтересованы в поддержке версии Scalpel с GPU-ускорением в Windows, нам тоже было бы интересно узнать о вас.
ОГРАНИЧЕНИЯ:
Carving физических и логических файлов устройств Windows (например, \.\physicaldrive0 или \.\c:) в настоящее время не поддерживается, поскольку для этого нам потребуется переписать некоторые части Scalpel, чтобы использовать функции ввода-вывода Windows вместо стандартных вызовов Unix. Возможно, эта возможность будет поддержана в будущем релизе.
Функции карты блоков (block map) в настоящее время отключены, так как мы переписываем эту подсистему для улучшения совместимости с Sleuthkit. Улучшенная версия функций карты блоков вернётся в одном из последующих релизов. Опция командной строки -s («skip») удалена и будет заменена более надёжным механизмом в следующем крупном релизе.
ЗАВИСИМОСТИ:
Scalpel использует библиотеку потоков POSIX. В Win32 Scalpel распространяется с Pthreads-win32 — библиотекой потоков POSIX для Win32, авторские права на которую: Copyright(C) 1998 John E. Bossom и Copyright(C) 1999,2005 участники проекта Pthreads-win32. Эта библиотека распространяется под лицензией LGPL.
Scalpel для Win32 использует библиотеку регулярных выражений tre и распространяется с tre-0.7.5, которая распространяется под лицензией LGPL.
Всего наилучшего,
--Golden and Vico.