[英]Guess configuration to inflate zlib compressed data
我想膨胀一个 zlib 压缩数据。 我在python中尝试了以下内容:
zlib.decompress(data)
-> 它返回以下错误:zlib.error: Error -3 while decompressing data:不正确的数据检查
所以我找到了一种忽略数据检查的方法:
def decompress_corrupted(data):
d = zlib.decompressobj(zlib.MAX_WBITS | 32)
f = BytesIO(data)
result_str = b''
buffer = f.read(1)
try:
while buffer:
result_str += d.decompress(buffer)
buffer = f.read(1)
except zlib.error:
pass
return result_str
但是产生的结果部分“损坏”:我得到一个 .rtf 内容,几乎没有错误。
我的问题:既然我知道压缩使用 zlib 算法,那么我可以尝试获取原始文件的配置部分(或前/后处理)是什么?
上下文:用于压缩这些文件的解决方案不再编辑,编辑器从未回复我们的消息。 我们只有一个编译的查看器,但需要精确的算法来迁移到替代解决方案。 我们知道这些文件没有损坏,因为当前查看器能够正确显示它们。
如果它可以帮助:
不需要“配置”。 zlib 的 inflate 会将任何有效的压缩 zlib 流无损地膨胀到原始内容。
因此,尽管有您的证明,但您的数据在此过程中会在某处被损坏或故意修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.