昨天我删除了一个(碎片化的)存档文件,结果发现它无法正确提取,所以我陷入了困境。幸运的是,驱动器上没有太多可用空间,因此标记为可用空间的大部分来自现已删除的存档。我打开磁盘编辑器,然后——痛苦地— 设法从 FAT 中获取标记为未使用的簇范围列表。然后我的任务是将这些簇范围保存到文件中,以便我可以检查它们以确定哪些部分来自存档,然后重新组合它们以尝试恢复已删除的文件。
这实际上是一个巨大的麻烦,因为磁盘编辑器没有选择一系列簇的能力,所以我不得不导航到每个簇的开头并按住++Ctrl直到到达范围的末尾(这通常需要很长时间!)ShiftPgDn
我快速地在 Google 上搜索了一下,看看能否找到一个命令行工具(最好是 Windows和DOS 版本)允许我发出如下命令:
SAVESECT -c 0xBEEF 0xCAFE FOO.BAR ::save clusters 0xBEEF-0xCAFE to FOO.BAR
SAVESECT -s 1111 9876 BAZ.BIN ::save sectors 1111-9876 to BAZ.BIN
遗憾的是,我的搜索一无所获。
有什么想法吗?
谢谢!
答案1
您说您更喜欢在 Windows 中运行的工具(应用程序)。
嗯,有一款很棒的取证软件,在类 Unix 系统上运行得最好,叫做 Sleuth Kit (TSK)。它是一套应用程序。特别是,其中一款应用程序叫做blkls
。
尝试:
blkls /dev/sda1 1200-1250 1>> /media/usbdrive/<file>
<file>
您想将原始数据保存到哪里。
在该假设示例中,扇区/块 #s 1200 到 1250 将从映射的分区/卷(由 *nix 系统)复制到/dev/sda1
您选择的输出/目标文件(在可移动 USB 驱动器的已安装卷中)。最好将目标/目标设置为与数据源不同的物理设备。
一个基于 Debian 的专业实时 Linux 发行版,名为格鲁姆可以免费下载。它已经安装了最新版本的 TheSleuthKit。您可以下载 .iso 映像(使用 BitTorrent 或任何常规 HTTP 客户端(如 Web 浏览器))并将其刻录到 cd-r,然后从 cd-r 启动您的计算机。
当系统启动到 grml 时,您可以打开终端窗口并使用 Sleuth Kit。
如果您将 Windows 计算机启动到实时 Linux 发行版,那么您的内部硬盘驱动器(可能安装了 Windows 操作系统)将被映射到 Linux 文件系统中名为的虚拟“文件” /dev/sda
。
内部硬盘将被映射到“a”,并且操作系统找到的任何其他存储(块)设备将被映射到字母表中的后续字母,例如/dev/sdb
,/dev/sdc
等等。
存储设备上的每个分区都映射到一个数字,该数字附加在(设备)文件夹下的设备名称上/dev/
。
如果您的内置硬盘在第一个分区上安装了 Windows(即 NTFS 卷位于该硬盘驱动器第一个分区的边界内),它将被 *nix 操作系统映射到/dev/sda1
,或者如果它位于 的第二个分区上,那么/dev/sda
它将是/dev/sda2
。
/dev/
通过使用以下方法探测 *nix 操作系统如何映射文件
fdisk -l /dev/sd*
或者
blkid /dev/sd*
了解 SleuthKit 所运行的操作系统(您尝试从中提取数据的源卷)所映射到的分区映射,将使您能够使用 Sleuth Kit 的便捷工具。
答案2
dd(适用于 Win32)应该可以让你做你需要做的事。