
Утилита для восстановления файлов (file carving), которая извлекает удалённые файлы из образов дисков и raw-накопителей путём сопоставления заголовков, концевых сигнатур и внутренних структур на основе настраиваемых правил.
Foremost — это программа для Linux, предназначенная для восстановления файлов на основе их заголовков и окончаний. Foremost может работать с файлами образов, например созданными с помощью dd, Safeback, Encase и т. п., или напрямую с диском. Заголовки и окончания задаются с помощью конфигурационного файла, поэтому вы можете выбирать, какие заголовки искать.
Для запуска foremost необходимо:
Вот как это сделать:
LINUX: $ tar zxvf foremost-xx.tar.gz $ cd foremost-xx $ make $ make install
BSD: $ tar zxvf foremost-xx.tar.gz $ cd foremost-xx $ make unix $ make install
SOLARIS: $ tar zxvf foremost-xx.tar.gz $ cd foremost-xx $ make solaris $ make install
OSX: $ tar zxvf foremost-xx.tar.gz $ cd foremost-xx $ make mac $ make macinstall
В системах со старыми версиями glibc (раньше 2.2.0) вы получите несколько безвредных предупреждений о том, что ftello и fseeko не определены. Вы можете их игнорировать.
Если вам когда-либо понадобится удалить foremost из системы, вы можете сделать это:
$ make uninstall
Описание аргументов командной строки можно найти в man-странице. Чтобы просмотреть её:
$ man foremost
Конфигурационный файл используется для управления тем, какие типы файлов foremost ищет. Образец конфигурационного файла, foremost.conf, включён в этот дистрибутив. Для каждого типа файла конфигурационный файл описывает расширение файла, зависит ли регистр заголовка и окончания, максимальный размер файла, а также заголовок и окончание файла. Поле окончания необязательно, а вот заголовок, размер, зависимость от регистра и расширение — нет!
Любая строка, начинающаяся с символа '#', считается комментарием и игнорируется. Таким образом, чтобы пропустить тип файла, просто поставьте '#' в начале этой строки.
Заголовки и окончания декодируются перед использованием. Чтобы указать значение в шестнадцатеричном виде, используйте \x[0-f][0-f], а для восьмеричного — [0-7][0-7][0-7]. Пробелы можно задать с помощью \s. Пример: "\x4F\123\I\sCCI" декодируется как "OSI CCI".
Для сопоставления с любым одиночным символом (так называемый подстановочный знак) используйте '?'. Если вам нужно искать сам символ '?', вам придётся изменить строку 'wildcard' и каждое вхождение старого подстановочного символа в конфигурационном файле. Не забывайте про шестнадцатеричные и восьмеричные значения! '?' равен 0x3f и \063.
Вот пример набора заголовков и окончаний:
gif y 155000 \x47\x49\x46\x38\x37\x61 \x00\x3b
gif y 155000 \x47\x49\x46\x38\x39\x61 \x00\x00\x3b
jpg y 200000 \xff\xd8\xff \xff\xd9
Примечание: опция — это способ указания дополнительных параметров. В настоящее время существуют следующие опции:
FORWARD: Задаёт поиск от заголовка до окончания (необязательно) в пределах max-size. REVERSE: Задаёт поиск от окончания до заголовка в пределах max-size. NEXT: Задаёт поиск от заголовка до данных, расположенных сразу после окончания. Это позволяет указать данные, которые, как вы знаете, 'НЕ' присутствуют в искомых данных, и которые должны завершить поиск, в пределах max-size.
Пожалуйста, сообщайте обо ВСЕХ ошибках по адресу nick dot mikus AT gmail d0t com. Пожалуйста, включите описание ошибки, как вы её обнаружили, и вашу контактную информацию.
Foremost был написан специальным агентом Крисом Кендаллом и специальным агентом Джесси Корнблюмом из Управления специальных расследований Военно-воздушных сил США, начиная с марта 2001 года. Эта программа не была бы такой, какая она есть сегодня, без помощи (в произвольном порядке): Роба Микинса, Дэна Калила и Чета Мачага. Этот проект был вдохновлён CarvThis, написанной Лабораторией компьютерной криминалистики Министерства обороны в 1999 году.
dd, Safeback и Encase являются охраняемыми авторским правом произведениями, и любые вопросы, касающиеся этих инструментов, следует направлять правообладателям. Правительство Соединённых Штатов не поддерживает использование этих или любых других инструментов создания образов.