文件解压(pokemmo黑白rom文件下载)


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

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

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

在继续介绍之前,差评人想问一下大家用过什么压缩软件?

你赢了?

还是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 次方个文件,也就是 个。

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

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

也就是 .8 ÷ 1024 ÷ 1024 = 4.5 PB

还有比这更嚣张的。

一个叫做 droste.zip 的大小为 28 KB 的文件,一旦被打开了以后,就会无限解压缩生成一份同样的文件,永远永远。这个文件名的灵感应该取自Droste效应,意思是一张图片的一部分和整张图片一样,无限循环。如下图

这个名字

注意女仆手里的产品图

咳咳。跑题了。

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

比如制作人大概做过这样的事:

用引号重复这句话。用引号把这句话重复一遍。

然后解压后硬盘就。嘣!

当然可以。也有不同的思维方式。

有一部电影叫《彗星撞地球》,也表现出惊人的压缩比。

如果这部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炸弹的假攻击,这个话题也逐渐抛开了黑产品。

压缩算法一直是算法研究的热点,如霍夫曼树、LZW字典等。

仔细想想用程序解决信息问题的姿态,很有意思。

图片 BetaNews tylerbrownblog Tom’s Hardware steemit 参考资料: Quora 问题《 What is the most compressed file ever? 》 知乎问题 《 世界上最大的文件压缩率是多少? 》中,用户 @何先森饭扫光, @罗翔 的回答。 维基百科词条 “ 自产生程序 ” 维基百科词条 “ zip bomb ” 如果你好奇这些文件是怎么回事,差评君在这里提供下载链接,微信

“借一个说话可以变成借一万个说话”