foremost基本用法

警告
无论我们将要使用哪种文件恢复工具来恢复文件,在开始之前,建议执行低级硬盘驱动器或者分区备份,因此避免了意外数据覆盖!

foremost最基本的使用方式 通过提供扫描删除文件的源, 可以是分区或者文件,比如使用DD生成的文件。
让我们看一个例子。

注意,不要在要恢复文件的分区中再写入数据,否则可能会导致文件数据被覆盖而无法恢复。

假设我们要扫描/dev/sdb1分区。

$sudo foremost -i /dev/sdb1

默认情况下,foremost程序将在启动它的目录下创建一个 output目录用来保存扫描到的文件。

在此目录中,我们尝试检索的每个支持的文件类型的子目录。
每个目录都将保存相应文件类型的文件:

output
├── audit.txt
├── avi
├── bmp
├── dll
├── doc
├── docx
├── exe
├── gif
├── htm
├── jar
├── jpg
├── mbd
├── mov
├── mp4
├── mpg
├── ole
├── pdf
├── png  
├── ppt
├── pptx
├── rar
├── rif
├── sdw
├── sx
├── sxc
├── sxi
├── sxw
├── vis
├── wav
├── wmv
├── xls
├── xlsx
└── zip

当foremost完成扫描后,空的目录将会被删除。

默认情况下,程序尝试检索所有支持的文件类型;要限制我们的搜索,我们可以使用“-T”选项,
例如,在下面的示例中,我们只搜索“GIF”和“PDF”文件:

$sudo foremost -t gif,pdf -i /dev/sdb1
在Linux上如何使用foremost恢复已删除的文件

配置文件

“foremost的配置文件”可用于指定程序不受本地支持的文件格式。
在文件中,我们可以找到几个注释的示例,显示了应该用于完成任务的语法。

“PNG”类型的示例:

# PNG   (used in web pages)
#	(NOTE THIS FORMAT HAS A BUILTIN EXTRACTION FUNCTION)
#  	png	y	200000	\x50\x4e\x47?	\xff\xfc\xfd\xfe

如果未使用“-c选项”明确指出配置文件的路径,则在当前工作目录中搜索并使用名为“Foremost.conf”的文件。
如果未找到,则使用“/etc/foremost.conf”默认配置文件。

添加对文件类型的支持

通过读取配置文件中提供的示例,我们可以轻松地添加对新文件类型的支持。

例如,我们添加对 “FLAC”文件的支持。

“FLAC”(免费无损音频编码)是一种非专有的无损音频格式,能够提供压缩音频而无需质量损失。
首先,我们知道这个文件类型头的十六进制形式是66 4C 61 43 00 00 00 22(即ASCII编码的“FLAC”),
我们可以使用“Hexdump”来验证FLAC文件头:

$hexdump -C
blind_guardian_war_of_wrath.flac|head
00000000  66 4c 61 43 00 00 00 22  12 00 12 00 00 00 0e 00  |fLaC..."........|
00000010  36 f2 0a c4 42 f0 00 4d  04 60 6d 0b 64 36 d7 bd  |6...B..M.`m.d6..|
00000020  3e 4c 0d 8b c1 46 b6 fe  cd 42 04 00 03 db 20 00  |>L...F...B.... .|
00000030  00 00 72 65 66 65 72 65  6e 63 65 20 6c 69 62 46  |..reference libF|
00000040  4c 41 43 20 31 2e 33 2e  31 20 32 30 31 34 31 31  |LAC 1.3.1 201411|
00000050  32 35 21 00 00 00 12 00  00 00 54 49 54 4c 45 3d  |25!.......TITLE=|
00000060  57 61 72 20 6f 66 20 57  72 61 74 68 11 00 00 00  |War of Wrath....|
00000070  52 45 4c 45 41 53 45 43  4f 55 4e 54 52 59 3d 44  |RELEASECOUNTRY=D|
00000080  45 0c 00 00 00 54 4f 54  41 4c 44 49 53 43 53 3d  |E....TOTALDISCS=|
00000090  32 0c 00 00 00 4c 41 42  45 4c 3d 56 69 72 67 69  |2....LABEL=Virgi|

在这里,我们将假设最大文件大小为30 MB,或者3000万字节。
让我们将条目添加到文件:

flac    y       30000000    \x66\x4c\x61\x43\x00\x00\x00\x22

“footer”签名是可选的,所以我们没有提供它。

现在foremost程序应该能够恢复已删除的FLAC文件。

让我们测试并验证它。

/dev/sdb1分区中删除一个flac格式的文件,然后继续运行命令:

$sudo foremost -i /dev/sdb1 -o $HOME/Documents/output

该程序能够检索已删除的FLAC文件,文件名是随机的:

/home/egdoc/Documents
└── output
    ├── audit.txt
    └── flac
        └── 00020482.flac

Audit.txt文件包含有关程序执行的操作的信息,在这种情况下:

Foremost version 1.5.7 by Jesse Kornblum, Kris
Kendall, and Nick Mikus
Audit File
Foremost started at Thu Sep 12 23:47:04 2019
Invocation: foremost -i /dev/sdb1 -o /home/egdoc/Documents/output
Output directory: /home/egdoc/Documents/output
Configuration file: /etc/foremost.conf
-----------------------------------------------------------------
File: /dev/sdb1
Start: Thu Sep 12 23:47:04 2019
Length: 200 MB (209715200 bytes)
Num	 Name (bs=512)	       Size	 File Offset	 Comment
0:	00020482.flac 	      28 MB 	   10486784
Finish: Thu Sep 12 23:47:04 2019
1 FILES EXTRACTED
flac:= 1
-----------------------------------------------------------------
Foremost finished at Thu Sep 12 23:47:04 2019

安装foremost

在Debian和Ubuntu上,我们可以使用“APT”:

$sudo apt install foremost

在最新的Fedora版本中,我们使用“DNF包管理器”来安装包,“DNF”是“Yum”的继承者。

$sudo dnf install foremost

如果我们使用archlinux,我们可以使用pacman安装

$sudo pacman -S foremost
日期:2020-07-07 20:56:29 来源:oir作者:oir