【发布时间】:2015-06-18 20:23:26
【问题描述】:
我能够读取 USB 驱动器损坏的文件系统的原始数据。 有什么简单的方法可以让我使用这些原始数据仅恢复文本和 docx 文件吗? (编程语言:C++)
【问题讨论】:
标签: c++ filesystems data-recovery fat32
我能够读取 USB 驱动器损坏的文件系统的原始数据。 有什么简单的方法可以让我使用这些原始数据仅恢复文本和 docx 文件吗? (编程语言:C++)
【问题讨论】:
标签: c++ filesystems data-recovery fat32
或许可以做到,但并不简单。
首先,您需要解析文件系统(我假设它是来自标签的 fat32)。实际上,您需要解析File Allocation Table(如果它已损坏并且您的驱动器上启用了FAT 的镜像副本,那么您可以尝试使用它)。根据损坏情况,您可能会提取一些文件。阅读this article 了解有关 FAT32 结构的更多信息,您可以使用this Microsoft 规范作为更严格的指南。理解文件系统的好方法是使用示例文件制作一些小型 USB 或逻辑驱动器,并使用一些十六进制编辑器手动解析它(例如免费 wxHexEditor 或专有 WinHex)。
您可以尝试在您的 Hex 图像中搜索 ASCII 字符序列,但是您需要手动对其进行排序。
对于 docx,这种格式在内部是 XML 文件和资源的集合,以 zip 压缩。因此,从原始十六进制图像中恢复它将是一项复杂的任务
【讨论】:
ASCII 字符,对于原始文本文件,您可以循环浏览图像并检查十六进制值是否在ASCII 范围内,并且它们的序列比一些长价值。它将以未排序的顺序从您的图像图像中提取所有文本数据(包括ASCII 文件名)。但它很简单,如果您的驱动器上只有几个文本文件,它可能会很有用。