1

我已经能够将原始数据从无法访问的 USB 驱动器复制到大约 250MB 的整体文件中。在那个字节的某个地方大约有 40 个 Word 文档。

  1. 我在哪里可以找到有关 Word 文档内部结构的文档,以便我可以解析字节流、识别 Word 文档的开始和结束位置并提取副本?

  2. 是否有任何特定于该任务的任何编程语言的库?

  3. 谁能建议一个已经存在的软件解决方案来解决这个问题?

4

2 回答 2

5

两种方法:

您可以在 linux 中将文件挂载为卷。如果您的二进制 blob 没有太损坏,您可能能够分解文件系统以找出文件所在的位置。它是(曾经)是 FAT 分区还是 NTFS?

如果这不起作用,我会寻找这个字节串

D0 CF 11 E0 A1 B1 1A E1

这些是办公文档文件签名的“神奇字节”。它们可能会随机出现在其他数据中,但这是一个开始。如果文件碎片化,您将遇到主要问题。

此外,尝试按原样在 Word 中重新创建文档片段,将其保存到文件中并提取块以在 blob 中搜索(使用 grep 二进制文件或其他)。如果您有来自文件所有部分的信息,您应该能够在它们所在的 blob 中解码 WHERE。将其重新拼凑到一个有效的 DOC 二进制文件中似乎有些牵强,但恢复文本的其余部分应该不是不可能的。

于 2008-12-10T04:52:28.007 回答
2

Apache POI项目有一个用于读写各种 MS Office 文档的库。如果文件采用新的 XML 基本OOXML格式,您将在压缩 XML 时寻找 zip 文件的开头。

于 2008-12-10T04:46:15.867 回答