首页 > 关于效率源 > 新闻和事件 > 产品新闻
如何修复损坏的ZIP加密压缩包?
2021年10月14日

作为效率源自主研发的首款集文档、图片、视频、音频、压缩文件等多类型文件修复功能于一体的工具上月,FRM5200星火文件修复大师一经推出,我们就陆续接到了大量的咨询与试用申请。

为了让大家更加深入了解该产品,今天,我们将通过分享一个案例,来揭秘FRM5200星火文件修复大师如何修复损坏的ZIP加密压缩包?


案例背景

杨女士电脑的ZIP压缩包“sql2000.zip”由于误操作被删除,一周后才发现该文件已被删除。据她陈述,该文件由数据库备份文件通过7-Zip工具压缩打包,并设置了加密密码。通过数据恢复手段从磁盘中恢复该文件后,双击打开文件时提示:

如何修复损坏的ZIP加密压缩包?

Zip压缩包“sql2000.zip”目录下原有的18个文件现在仅显示文件“c012012log.ldf *”,在双击该文件解压时提示:

如何修复损坏的ZIP加密压缩包?

杨女士使用某ZIP修复工具对其进行修复,由于该工具不支持加密的ZIP压缩包修复,因此未能修复出任何文件。目前的国内外ZIP修复工具,大部分都不支持加密文件的修复。

如何修复损坏的ZIP加密压缩包?

技术原理

效率源技术工程师通过Winhex工具查看该文件的二进制数据,发现其与正常ZIP压缩包的数据存在一定差异。

该文件尾部的二进制数据:

如何修复损坏的ZIP加密压缩包?

正常ZIP压缩包尾部的二进制数据:

如何修复损坏的ZIP加密压缩包?

针对上述情况,效率源技术工程师对ZIP压缩包文件结构进行研究,其总体结构如下所示:

如何修复损坏的ZIP加密压缩包?

ZIP压缩包中每个文件对应一个文件记录和一个目录记录。每个文件记录包括:文件记录头(local file header)、加密头(encryption header)、文件数据(file data)、数据描述(data descriptor)。文件记录头中记录了文件的相关信息、解密参数、解压缩参数;加密头中记录了生成解密秘钥的相关信息;目录记录中仅有一个记录头,其同样记录了文件的相关信息、解密参数、解压缩参数。

对于加密的ZIP压缩包,效率源技术工程师发现,其中的文件原始数据先进行压缩,再进行加密,最后作为文件数据(file data)存放于文件记录中。通过一系列深入研究,效率源技术工程师找到了通过加密密码生成解密秘钥的方法——在已知密码的情况下,只要文件记录头(或目录记录头)、加密头没有受到损坏,即可实现相应文件数据的解密和解压缩,达到修复该文件的目的。

经过上述研究,总结出一种损坏的zip加密压缩包的修复方法,如下所示:

如何修复损坏的ZIP加密压缩包?

步骤1:通过特殊标记在损坏zip压缩包中检索目录记录,并检查其结构是否正确;

步骤2:通过特殊标记在损坏zip压缩包中检索文件记录,并检查其结构是否正确;

步骤3:通过加密密码、文件记录头(或目录记录头)和加密头生成解密文件数据所需的秘钥;

步骤4:通过文件记录头(或目录记录头)中记录的解密算法和步骤3生成的秘钥对文件数据进行解密;

步骤5:通过文件记录头(或目录记录头)中记录的解压缩算法对步骤4解密后的文件数据进行解压缩;

步骤6:按目录结构创建文件,并将步骤5解压缩后的文件数据写入新文件中。

该方法在zip压缩包遭受严重损坏和设置了加密密码时,依然有较高的几率修复其中的文件。并且在修复损坏的zip压缩包的同时,也完成了文件的解压缩。

案例实操

上述方法现已集成于“FRM5200星火文件修复大师”中,在知晓加密密码的情况下,通过FRM5200星火文件修复大师对损坏的加密zip压缩包“sql2000.zip”进行修复。

步骤1:打开FRM5200星火文件修复大师,选择压缩文件修复模式,添加压缩文件,开始修复。

如何修复损坏的ZIP加密压缩包?

步骤2:当程序提示输入密码时,输入正确的密码,点击确定继续修复。

如何修复损坏的ZIP加密压缩包?


步骤3:完成修复后,可查看压缩包内的文件,并将其进行导出。

如何修复损坏的ZIP加密压缩包?
如何修复损坏的ZIP加密压缩包?

FRM5200星火文件修复大师帮助杨女士成功修复了sql2000目录下18个文件中的17个,仅有1个文件因为损坏严重而无法修复。修复出来的数据库备份文件,能够导入SQL SERVER数据库中继续使用。

如何修复损坏的ZIP加密压缩包?



想了解更多产品信息,欢迎到“效率源”公众号后台留言