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
注意:option 是用于指定附加选项的方法。目前存在以下选项:
FORWARD:指定从文件头向文件尾搜索(可选),直到达到 max-size。 REVERSE:指定从文件尾向文件头搜索,直到达到 max-size。 NEXT:指定从文件头搜索到刚过文件尾的数据。这允许你指定那些你知道“不在”你要查找的数据中的内容,并应终止搜索,直到达到 max-size。
请将所有错误报告发送至 nick dot mikus AT gmail d0t com。请包含错误的描述、你是如何发现的,以及你的联系信息。
Foremost 由美国空军特别调查办公室的特工 Kris Kendall 和特工 Jesse Kornblum 于 2001 年 3 月开始编写。如果没有(排名不分先后)Rob Meekins、Dan Kalil 和 Chet Maciag 的帮助,这个程序就不会是今天这个样子。这个项目受到 Defense Computer Forensic Lab 于 1999 年编写的 CarvThis 的启发。
dd、Safeback 和 Encase 是受版权保护的作品,有关这些工具的任何问题都应直接咨询版权持有人。美国政府不认可使用这些或任何其他镜像工具。