*.docx 文件格式的结束字节是什么

*.docx 文件格式的结束字节是什么

我有一个已格式化并重新安装了操作系统的硬盘。

问题是,格式化之前它无法启动,并且格式化之前我所做的数据备份由于某种原因没有所有文件。
缺少 Microsoft Word *.docx 文件。

现在我尝试使用Puran 文件恢复但它没有预先内置 *.docx 扩展名扫描条目。Puran
File Recovery 有一个选项,让我们创建自定义条目,我发现文件签名网起始字节签名,所以现在我能够在硬盘中找到许多 *.docx 标头。

我现在的问题是,我找不到任何地方结束字节*.docx 文件,以便我能够恢复一些文件。

答案1

A.docx文件只是一个.zip文件。Zip 文件的结构如下:

Zip 文件的结构

Zip 文件的结尾由中央目录记录结束欧共体发展委员会EOCD 的长度是可变的,因为它可以包含最多 65535 个字节长的注释。请参见下面的 EOCD 布局的粗体部分:

+---------+--------+--------------------------------------------------------------------------------+
| 偏移量 | 字节 | 描述 |
+---------+--------+--------------------------------------------------------------------------------+
| 0 | 4 | 中央目录签名结束 = 0x06054b50 |
| 4 | 2 | 该磁盘的编号 |
| 6 | 2 | 中心目录起始的磁盘 |
| 8 | 2 | 此磁盘上的中心目录记录数 |
| 10 | 2 | 中央目录记录总数 |
| 12 | 4 | 中心目录的大小(字节)|
| 16 | 4 | 中央目录开始相对于档案开始的偏移量 |
| 20 | 2 | 评论长度(n)|
| 22 | n |评论 |
+---------+--------+--------------------------------------------------------------------------------+

表格来自维基百科»Zip(文件格式)»中央目录记录结束 (EOCD)

您可以通过查找0x06054b50(EOCD 的开头)然后计数其后的 16 个字节来获取 Zip 文件的结尾。将接下来的两个字节设置为0x0000忽略注释,现在您应该已经获得了有效 Zip 文件的结尾。


笔记:这没有考虑文件系统碎片。如果.docx/.zip文件在磁​​盘上碎片化,您的恢复方法将不起作用,因为您找到的签名将被破坏。您需要文件系统中的一些信息才能将碎片文件拼凑在一起;开始和结束签名没有这些信息。

相簿是我以前使用过的一款软件,它有一些技巧可以帮助我拼凑碎片文件。 对你来说至关重要的是,PhotoRec 内置了对 Zip 文件的支持,所以你可能想要尝试 TestDisk/PhotoRec如果您当前的签名搜索策略不适合您。

答案2

Deltik 的回答是正确的。以下是一些可能有用的信息:

从十六进制编辑器(例如 xxd)或者字节寻址序列的角度来看,End-Of-Central-Directory Header 的字节序列实际上将显示为 504b0506(反向顺序)。

在有效的 OpenOfficeXML 文件(例如 .docx 文件)中,永远不会有中央目录结束注释(请参阅ECMA-376第2部分,第 76 页:“ZIP 文件注释”不应产生。但是,消费者无论如何都应该支持阅读包含此类注释的文件。)

此外,不支持多磁盘存档(请参见第 75 页),因此“此磁盘的编号”字段和“中央目录起始的磁盘”字段始终为 0。此外,“此磁盘上的中央目录记录数”和“中央目录记录总数”字段应该相等。

总而言之,任何 .docx 文件的最后 22 个字节应始终具有以下形式

 50 4b 05 06 00 00 00 00 ## ## ## ## ## ## ## ## ## ## ## ## 00 00
| signature |disk |CD-  |num. |num. |size of CD | CD offset |comment
|           |num. |disk |recs |recs |           |           |length

相关内容