【问题标题】:Text file recovery on corrupted file system of Flashdrive闪存驱动器损坏的文件系统上的文本文件恢复
【发布时间】:2015-06-18 20:23:26
【问题描述】:

我能够读取 USB 驱动器损坏的文件系统的原始数据。 有什么简单的方法可以让我使用这些原始数据仅恢复文本和 docx 文件吗? (编程语言:C++)

【问题讨论】:

    标签: c++ filesystems data-recovery fat32


    【解决方案1】:

    或许可以做到,但并不简单。

    首先,您需要解析文件系统(我假设它是来自标签的 fat32)。实际上,您需要解析File Allocation Table(如果它已损坏并且您的驱动器上启用了FAT 的镜像副本,那么您可以尝试使用它)。根据损坏情况,您可能会提取一些文件。阅读this article 了解有关 FAT32 结构的更多信息,您可以使用this Microsoft 规范作为更严格的指南。理解文件系统的好方法是使用示例文件制作一些小型 USB 或逻辑驱动器,并使用一些十六进制编辑器手动解析它(例如免费 wxHexEditor 或专有 WinHex)。

    您可以尝试在您的 Hex 图像中搜索 ASCII 字符序列,但是您需要手动对其进行排序。

    对于 docx,这种格式在内部是 XML 文件和资源的集合,以 zip 压缩。因此,从原始十六进制图像中恢复它将是一项复杂的任务

    【讨论】:

    • 嗨@trvecvlt,感谢您的解决方案。只是对“解析文件分配表”有点好奇,你能简单解释一下吗?还有 ASCII 字符序列如何工作以恢复数据
    • @jodylan,我的回答中有 2 个链接,你应该先检查它们,如果一些更具体的细节不清楚,你可以在这里询问它们。整个主题对于 Q 和 A 格式来说非常重要。
    • @jodylan,以及大约ASCII 字符,对于原始文本文件,您可以循环浏览图像并检查十六进制值是否在ASCII 范围内,并且它们的序列比一些长价值。它将以未排序的顺序从您的图像图像中提取所有文本数据(包括ASCII 文件名)。但它很简单,如果您的驱动器上只有几个文本文件,它可能会很有用。
    • 只是想知道如何从这个十六进制值中提取文件。介意分享一些样本吗??
    • @jodylan,解析引导记录 -> 查找根集群 -> 递归解析子目录和文件 -> 查找您的文件 -> 提取集群链之后的数据。您可以尝试使用此实用程序:gitorious.org/unix-stuff/fat-util 作为示例,并检查此链接作为更多动手描述wiki.osdev.org/FAT
    猜你喜欢
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 2014-09-23
    • 2012-10-14
    • 1970-01-01
    • 2015-04-16
    相关资源
    最近更新 更多