J R*_*nto 25 zip hard-drive data-recovery docx microsoft-word
我有一个已格式化并重新安装其操作系统的硬盘。
问题是,它在格式化之前没有启动,而且我在格式化之前所做的数据备份,出于某种原因,没有所有文件。
缺少 Microsoft Word *.docx 文件。
现在我正在尝试使用Puran File Recovery 恢复文件,但它没有预先内置的 *.docx 扩展名扫描条目。
Puran File Recovery 有一个选项可以让我们创建自定义条目,我在filesignatures.net 中找到了起始字节签名,所以现在我能够在硬盘中找到许多 *.docx 标头。
我现在的问题是我在任何地方都找不到*.docx 文件的结尾字节是什么,以便我可以恢复一些文件。
Del*_*tik 72
一个.docx文件只是一个.zip文件。这是 Zip 文件的结构:
Zip 文件的结尾由中央目录记录( EOCD )的结尾指示。EOCD 的长度是可变的,因为它可以包含长达 65535 字节的注释。请参阅下面的 EOCD 布局的粗体部分:
+---------+--------+------------------------------ ---------------------------------------+ | 偏移| 字节 | 说明 | +---------+--------+------------------------------ ---------------------------------------+ | 0 | 4 | 中央目录签名结束 = 0x06054b50 | | 4 | 2 | 此盘数 | | 6 | 2 | 中央目录开始的磁盘| | 8 | 2 | 此磁盘上的中央目录记录数 | | 10 | 2 | 中央目录记录总数| | 12 | 4 | 中央目录的大小(字节)| | 16 | 4 | 中央目录开始的偏移量,相对于归档的开始| | 20 | 2 | 评论长度 (n) | | 22 | | | 评论 | +---------+--------+------------------------------ ---------------------------------------+
来自维基百科的表格» Zip(文件格式) »中央目录记录结束 (EOCD)
您可以通过查找0x06054b50(EOCD 的开头)来获得 Zip 文件的结尾,然后在此之后计算 16 个字节。将接下来的两个字节设置0x0000为忽略注释,您现在应该拥有有效 Zip 文件的结尾。
注意:这不考虑文件系统碎片。如果.docx/.zip文件在磁盘上碎片化,您的恢复方法将不起作用,因为您找到的签名会被破坏。您需要文件系统中的一些信息才能将碎片文件拼凑在一起;开始和结束签名没有此信息。
PhotoRec是我以前用过的一个软件,它有一些技巧来弄清楚如何将碎片文件拼凑在一起。 对您来说至关重要的是,PhotoRec 内置了对 Zip 文件的支持,因此如果您当前的签名搜索策略不适合您,您可能想要尝试 TestDisk/PhotoRec。
Nic*_*teo 12
Deltik 的回答是正确的。一些可能有用的信息:
End-Of-Central-Directory 标头的字节序列实际上将显示为 504b0506(反向顺序),如 xxd 等十六进制编辑器所见,或以字节寻址序列显示。
在有效的 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7092 次 |
| 最近记录: |