2008-12-10 56 views
1

我已经能够将原始数据从其他无法访问的USB驱动器复制到大约250MB的单片文件。在那个字节blob中的某个地方大约有40个Word文档。如何从USB设备恢复的数据中提取Word文档?

  1. 在哪里可以找到有关Word文档的内部结构的文件,这样我可以解析字节流,认识到其中的Word文档的开始和结束,并提取一个副本?

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

  3. 任何人都可以提出一个已经存在的软件解决方案来解决这个问题吗?

回答

5

两种方法:

可以在linux中将文件挂载为卷。如果你的二进制blob没有被破坏,你可能会分解文件系统来找出你的文件所在的位置。是(是)它是FAT分区还是NTFS?

如果不行,我会寻找this string of bytes

D0 CF 11 E0 A1 B1 1A E1 

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

此外,尝试在Word中按原样重新创建文档片断,将其保存到文件并提取块以在blob中进行搜索(使用grep二进制文件或其他)。如果你有来自文件所有部分的信息,你应该能够解码它们所在的BLOB中的WHERE。将它重新放回到一个可用的DOC二进制文件看起来很遥远,但恢复文本的其余部分不应该是不可能的。

2

Apache POI项目有一个库,用于读写各种MS Office文档。如果这些文件位于新的XML基础格式OOXML中,那么您将在XML压缩时查找压缩文件的开头。

+0

我很难读取.docx文件作为zip文件,所以不要指望太多。 OTOH我在那里遇到很多其他问题,如64mg NaCl – BCS 2008-12-10 07:17:53

相关问题