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
配置文件
“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