一个42KB的文件,解压完其实是个4.5PB的“炸弹”。。

2018 年 9 月 12 日 黑客技术与网络安全

转载自微信公众号:差评(chaping321)



差友们,听说过 ZIP 炸弹吗?


一个很小很小的,几十 KB 的压缩过后的文件,解压以后有几百万 GB ,好像炸弹一样。


在继续介绍它之前,差评君想先问问各位都用过哪些压缩软件。。。


WinRAR ?


或者 2345 好压?


还是开源的 7 - Zip ?


其实压缩软件虽然五花八门,但目的都很单纯:


把文件占用空间缩小。


不过差评君上面提到的压缩软件,又不单纯是缩小空间。


JPG 图片 , MP3 音乐格式也起到了压缩作用。


但是 JPG, MP3 们执行的是有损压缩


一旦个文件被有损压缩的时候,会损失一部分数据。


损失的代价就是,你无法从被压缩的文件还原出压缩前的文件。


图片,音乐等多媒体在有的时候考虑可用性和传播性,对这样的结果是可以接受的。


但对许多通用数据来说,往往需要的是无损压缩,比如 .zip 。


对于无损压缩来说,算法非常重要,不同的算法能实现的压缩率和速度有很大差别。


如上图所示,主流的算法一般在 30% - 40% 。


而文章一开始介绍的 ZIP 炸弹,是一个名为 42.zip 的文件。


它的初始大小是 42KB , 解压密码是 42 。


解压之后的大小,足足有 4.5 PB 。


嗯。。。就是这么嚣张。


解压这个 42.zip 以后会出现 16 个压缩包,每个压缩包又包含 16 个,如此循环 5 次,最后得到 16 的 5 次方个文件,也就是 1048576 个。


这一百多万个最终文件,每个大小为 4.3 GB 。


因此整个解压过程结束以后,会得到 1048576 * 4.6 GB = 4508876.8 GB


也就是 4508876.8 ÷ 1024 ÷ 1024 = 4.5 PB


还有比它更嚣张的。


一个叫做 droste.zip 的大小为 28 KB 的文件,一旦被打开了以后,就会无限解压缩生成一份同样的文件,直到永远。


这个文件名灵感应该取自德罗斯特效应 ( Droste Effect ),是指一张图片的部分与整张图片相同,无限循环。。。如下图↓


这个名字源自一家叫德罗斯特的可可粉厂商做的商品包装。。。


注意女仆手上拿着的产品图


咳咳。。。扯远了。


总而言之,这个 droste.zip 的核心原理就是输出结果为自身。


举个例子,制作者大概做了这么一件事:


在引号里重复这句话 “ 在引号里重复这句话 ” 


然后解压缩之后,硬盘就。。。 BOOM !


当然。。。也有剑走偏锋思路不同的。


有一段名为 《 彗星撞地球 》 的影片,也展现了神奇的压缩比率。


这段 3D 影片如果直接放出来要 15 G 左右,效果。。。放在它出生的年代 2000 年还真不差。


这个压缩过的大小只有 64 KB, 压缩了 25 万倍 !


实现的原理其实不算通常意义上的压缩。


而是制作组 Warez 做了一个 64KB 的可执行 EXE 文件,运行的时候会调用显卡,CPU 及内存等等及时渲染动画。


打个比方,动画就好比连环画,传统影片是画好的一册,而这个 《 彗星撞地球 》 则是看的时候现场一幅幅画。


差评君用录屏软件录了 7 分钟都要 2.27 G 。( 当然,这和现代显示屏分辨率比较高有关系 )


那么问题来了。。。


一个文件的压缩率有极限吗?


有,可以由信息学之父克劳德·香农提出的信息熵函数算出来。


不过 42.zip 也好,droste.zip 也好,不适合套用香农提出的极限。


因为这两个文件为了达到惊人的压缩比,有大量刻意重复的数据,这种重复数据在压缩的时候是可以被丢弃的,没啥实质性内容的信息。


那么。。。


如果动画还有点传播意义, 42.zip 和 droste. zip 还有啥意义呢?


这儿就要提就是 ZIP 炸弹之所以被称作 “ 炸弹 ” 的真正原因了。。。


除了会 “ 爆炸 ” , 这玩意儿其实是拿来攻击别人的。


某些病毒制作者利用杀毒软件会扫描压缩文件内部的特性,会把 ZIP 炸弹连带病毒一起发到目标电脑上。


而 ZIP 炸弹表面上看起来很小,易于传输,但实际上扫描起来非常花时间。


趁着杀毒软件忙着扫描 4.5 PB 的数据,被占用时,病毒软件就可以趁虚而入了 ~


差评君昨天说了啥来着。。。


干黑产的,角度刁钻得让人折腰。


不过现在很多杀毒软件已经有办法避开这种 zip 炸弹的佯攻了,这个话题渐渐地抛开了黑产。


一直以来压缩算法是算法研究里津津乐道的话题, Huffman 树, LZW 字典等等。。。


用程序解决信息问题的姿势,仔细一琢磨也挺有意思的不是?


图片来源

BetaNews

tylerbrownblog

Tom’s Hardware

steemit

参考资料

Quora 问题《 What is the most compressed file ever? 》

知乎问题 《 世界上最大的文件压缩率是多少? 》中,用户 @何先森饭扫光, @罗翔 的回答。

维基百科词条 “ 自产生程序 ”

维基百科词条 “ zip bomb ”



●编号698,输入编号直达本文

●输入m获取文章目录

推荐↓↓↓

Web开发

更多推荐18个技术类公众微信

涵盖:程序人生、算法与数据结构、黑客技术与网络安全、大数据技术、前端开发、Java、Python、Web开发、安卓开发、iOS开发、C/C++、.NET、Linux、数据库、运维等。

登录查看更多
0

相关内容

MP3是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户的听觉感受来说,重放的音质与最初的不压缩音频相比没有明显的下降。它是在1991年,由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。
最新《自动微分手册》77页pdf
专知会员服务
97+阅读 · 2020年6月6日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
168+阅读 · 2020年5月6日
斯坦福2020硬课《分布式算法与优化》
专知会员服务
117+阅读 · 2020年5月6日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
PC微信逆向:两种姿势教你解密数据库文件
黑客技术与网络安全
16+阅读 · 2019年8月30日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
别@微信团队了,我用Python给自己戴上了圣诞帽!
tensorflow LSTM + CTC实现端到端OCR
机器学习研究会
26+阅读 · 2017年11月16日
Tensorflow 好差劲 !
云头条
8+阅读 · 2017年10月9日
OCR 哪家强?反正我觉得这个工具是厉害的不得了。
高效率工具搜罗
4+阅读 · 2017年7月3日
Teacher-Student Training for Robust Tacotron-based TTS
VIP会员
相关VIP内容
最新《自动微分手册》77页pdf
专知会员服务
97+阅读 · 2020年6月6日
一份循环神经网络RNNs简明教程,37页ppt
专知会员服务
168+阅读 · 2020年5月6日
斯坦福2020硬课《分布式算法与优化》
专知会员服务
117+阅读 · 2020年5月6日
《代码整洁之道》:5大基本要点
专知会员服务
49+阅读 · 2020年3月3日
相关资讯
PC微信逆向:两种姿势教你解密数据库文件
黑客技术与网络安全
16+阅读 · 2019年8月30日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
别@微信团队了,我用Python给自己戴上了圣诞帽!
tensorflow LSTM + CTC实现端到端OCR
机器学习研究会
26+阅读 · 2017年11月16日
Tensorflow 好差劲 !
云头条
8+阅读 · 2017年10月9日
OCR 哪家强?反正我觉得这个工具是厉害的不得了。
高效率工具搜罗
4+阅读 · 2017年7月3日
Top
微信扫码咨询专知VIP会员