Liu*_*kys 5 zip gzip recovery corrupt
破坏压缩文件的最常见方法是无意中进行ASCII模式FTP传输,这会导致CR和/或LF字符的多对一丢弃.
显然,存在信息丢失,解决此问题的最佳方法是在FTP二进制模式下再次传输.
但是,如果原件丢失了,重要的是,数据的可恢复性如何?
[实际上,我已经知道我认为最好的答案(这是非常困难但有时可能 - 我会稍后发布),以及常见的非答案(许多现成的修复CRC的程序而无需修复数据) ),但我认为在stackoverflow beta期间尝试这个问题会很有趣,看看是否有其他人已经走下成功恢复路径或发现了我不知道的工具.
来自Bukys 软件
已知 256 个字节中大约有 1 个字节被损坏,并且仅在值为“\012”的字节中发生损坏。因此字节错误率为 1/256(输入的 0.39%),并且 2/256 字节(输入的 0.78%)是可疑的。但由于每个损坏的字节只有三位受到影响,因此误码率仅为 3/(256*8):0.15% 是坏的,0.29% 是可疑的。
...
压缩输入中的错误会扰乱所有后续字节的解压缩过程...解压缩输出如此之快就被识别为错误这一事实令人充满希望——搜索正确答案可以快速识别错误答案。
最终,结合了多种技术,成功地从这些文件中提取了合理的数据:
- 特定于域的字段和带引号的字符串的解析
- 根据先前数据进行机器学习,损坏概率较低
- 容忍由于其他原因导致的文件损坏(例如日志记录时磁盘已满)
- Lookahead 用于指导沿着最高概率路径进行搜索
这些技术可以确定地识别 75% 的必要修复,其余部分则以最高概率优先的方式进行探索,以便立即识别出合理的重建。