首页 > 软件游戏 > 正文

David Fifield推出新款“解压炸弹包”:46MB文件可膨胀到4.5PB

ZIP 一直是主流的压缩文件格式,并且可追溯到几十年前的 5.25 和 3.5 英寸软盘时代。然而该技术作为一把双刃剑,也难免被别有用心的人所利用。 比如通过一个看似超小型的压缩包,制作一个内含巨量垃圾数据的“解压炸弹包”(zip bomb)。 其实早在去年,研究员 David Fifield 就曾展示过早期的解压炸弹包,能够将一个 42kB 的 zbsm.zip 文件迅速膨胀到 5.5GB 。

(图自:David Fifield,via ExtremeTech )

之后,他又继续努力,推出了一个表面上只有 10MB,但其实能够膨胀到 281TB 的 zb LG .zip 炸弹压缩包。

时间转眼到了 2019 年 7 月,David Fifield 又发表了他的最新研究成果 —— 一个表面上只有 46MB,但其实可以膨胀到 4.5PB 的 zbxl.zip 炸弹压缩包。

不过需要指出的是,由于其采用了 Zip64,所以兼容性较差。

(7 月 2 日,David Fifield 详细介绍了自己的 最新研究成果 )

zip 解压炸弹包使用递归算法的原因,归结于 ZIP 解析器中使用的 DEFLATE 算法无法实现高于 1032:1 的压缩率。 有趣的是,David Fifield 找到了一种绕过该限制的方法。

其写到:本文介绍了如何构造一款压缩比超过 DEFAATE 1032 的非递归解压炸弹包。其通过重置 zip 容器内的文件来实现,以便在多个文件中引用高度压缩数据的‘内核’,而不是制作它的多个副本。

解压炸弹的输入与输出大小,呈现的是二次方增长。即随着炸弹变大,压缩比也就更强。构造取决于 zip 和 DEFLATE 的特征,它不能直接移植到其它文件格式或压缩算法。

此外,该方案与大多数 zip 解析器兼容,不过‘流’解析器是个例外。后者在一次传递中解析,而无需事先查询 zip 文件的中心目录。

为使该方法见效,Fifield 必须重新审视数据是如何存储在 zip 文件中的,并且选择了适当的 Deflate 实现。

其选择了 bulk_deflate,一个专门用于压缩一串重复字节的自定义压缩器,能够比 zlib、info_ZIP 或 Zopfli 更密集地打包数据的工具。

尽管 bulk_deflate 优于这些解决方案,但 Fifield 指出,其在一般用例中的效率并不高,还必须借助被称作 ZIP64 的 zip 标准扩展,来创建一个内含超过 281TB 数据输出的文件。

但若使用 ZIP64,便可创建出一个内含有效无限长度的解压炸弹包。至于更多细节,还请移步至官网查看。

【来源:cnBeta.COM】

网友评论

三日内热门评论文章
热门IT产品
  1. ¥7599
    苹果iPhoneX 64GB
    ·
  2. ¥5799
    三星S9
    ·
  3. ¥4498
    vivo NEX旗舰版
    ·
  4. ¥4999
    OPPO Find X
    ·
  5. ¥1799
    努比亚Z18mini
    ·
  6. ¥1499
    OPPO A5
    ·
  7. ¥1999
    荣耀Play(4GB RAM)
    ·
  8. ¥1598
    vivo Y85
    ·
  9. ¥3499
    坚果R1(6GB RAM)
    ·
  10. ¥3599
    一加6(8GB RAM)
    ·
为您推荐
  • 相关阅读
  • 业界资讯
  • 手机通讯
  • 电脑办公
  • 新奇数码
  • 软件游戏
  • 科学探索