恢复损坏的zip或gzip文件?

Liu*_*kys 5 zip gzip recovery corrupt

破坏压缩文件的最常见方法是无意中进行ASCII模式FTP传输,这会导致CR和/或LF字符的多对一丢弃.

显然,存在信息丢失,解决此问题的最佳方法是在FTP二进制模式下再次传输.

但是,如果原件丢失了,重要的是,数据的可恢复性如何?

[实际上,我已经知道我认为最好的答案(这是非常困难但有时可能 - 我会稍后发布),以及常见的非答案(许多现成的修复CRC的程序而无需修复数据) ),但我认为在stackoverflow beta期间尝试这个问题会很有趣,看看是否有其他人已经走下成功恢复路径或发现了我不知道的工具.

Ada*_*vis 4

来自Bukys 软件

已知 256 个字节中大约有 1 个字节被损坏,并且仅在值为“\012”的字节中发生损坏。因此字节错误率为 1/256(输入的 0.39%),并且 2/256 字节(输入的 0.78%)是可疑的。但由于每个损坏的字节只有三位受到影响,因此误码率仅为 3/(256*8):0.15% 是坏的,0.29% 是可疑的。

...

压缩输入中的错误会扰乱所有后续字节的解压缩过程...解压缩输出如此之快就被识别为错误这一事实令人充满希望——搜索正确答案可以快速识别错误答案。

最终,结合了多种技术,成功地从这些文件中提取了合理的数据:

  • 特定于域的字段和带引号的字符串的解析
  • 根据先前数据进行机器学习,损坏概率较低
  • 容忍由于其他原因导致的文件损坏(例如日志记录时磁盘已满)
  • Lookahead 用于指导沿着最高概率路径进行搜索

这些技术可以确定地识别 75% 的必要修复,其余部分则以最高概率优先的方式进行探索,以便立即识别出合理的重建。