繁体   English   中英

猜测配置膨胀zlib压缩数据

[英]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 算法,那么我可以尝试获取原始文件的配置部分(或前/后处理)是什么?

上下文:用于压缩这些文件的解决方案不再编辑,编辑器从未回复我们的消息。 我们只有一个编译的查看器,但需要精确的算法来迁移到替代解决方案。 我们知道这些文件没有损坏,因为当前查看器能够正确显示它们。

如果它可以帮助:

  • 这是数据的头部:789C 95 54 5D 6F D3 30 14 ...
  • 和尾巴:.. 79 AE C5 E2 17 82 5E 3F 85

不需要“配置”。 zlib 的 inflate 会将任何有效的压缩 zlib 流无损地膨胀到原始内容。

因此,尽管有您的证明,但您的数据在此过程中会在某处被损坏或故意修改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM