【发布时间】:2011-02-02 19:22:10
【问题描述】:
我有一些 dd 图像,我想知道使用 C 从这些图像中提取文件的最佳方法。这些图像是混合文件系统(fat32、ntfs、ext2/3)的,进行提取的主机会是一个 Ubuntu 机器,所以你可以假设内核头文件和 GNU C 库等。
本地最好,但可以完成这项工作的外部库也可以。一个示例的链接将是完美的。
【问题讨论】:
标签: c linux image file extract
我有一些 dd 图像,我想知道使用 C 从这些图像中提取文件的最佳方法。这些图像是混合文件系统(fat32、ntfs、ext2/3)的,进行提取的主机会是一个 Ubuntu 机器,所以你可以假设内核头文件和 GNU C 库等。
本地最好,但可以完成这项工作的外部库也可以。一个示例的链接将是完美的。
【问题讨论】:
标签: c linux image file extract
这是一项重大的努力。您必须从根本上重新实现 NTFS、FAT 和 EXT2 的文件系统驱动程序。我已经为 FAT 和 NTFS 完成了这项工作,但花了两年多的时间,尽管其中大部分是对 NTFS 进行逆向工程。
考虑使用 mount 命令的file mount 选项,这样您就可以使用 Ubuntu 文件系统驱动程序,而不必重新发明非常大的轮子。然后你就可以细读挂载的文件系统了。
【讨论】:
为什么要用 C 编程?
sudo mount -o loop,offset=[offset] -t auto [where] [what]
【讨论】:
man 2 mount,对于循环设备,有足够多的简单示例随处可见(因为没有手册页)。
查看The Sleuth Kit,它应该适用于您列出的所有文件系统类型:
Sleuth Kit 的原始部分是一个 C 库和命令行文件和卷系统取证分析工具的集合。文件系统工具允许您以非侵入方式检查可疑计算机的文件系统。由于这些工具不依赖操作系统来处理文件系统,因此会显示已删除和隐藏的内容。它在 Windows 和 Unix 平台上运行。
如果您正在寻找可以使用的示例代码,Sleuth Kit 的现有工具集是一个很好的起点。
【讨论】: