有关拉链炸弹的问题自然使我进入了有关该主题的Wikipedia页面。本文提到了一个45.1kb zip文件的示例,该文件解压缩为1.3艾字节。
首先,用于创建此类文件的原则/技术是什么?我不想真正做到这一点,而对简化的“工作原理”所涉及概念的解释更感兴趣。
ps
本文提到了9层zip文件,因此这不是将一堆零压缩的简单案例。为什么9个,为什么每个10个?
从维基百科页面引用:
一个Zip炸弹的例子是45.1.zip文件,它是45.1 KB的压缩数据, 包含9层嵌套的zip文件(每组10个),每个底层归档文件包含1.30 GB的文件 ,总计1.30 EB的未压缩数据。
因此,您所需要的只是一个充满零的1.3GB文件,将其压缩为ZIP文件,制作10个副本,将其打包为ZIP文件,然后重复此过程9次。
这样,您将获得一个文件,该文件在完全解压缩后会产生大量的数据,而无需您从该数量开始。
此外,嵌套的存档使病毒扫描程序(这些“炸弹”的主要目标)之类的程序变得更聪明,更难以解压缩“太大”的存档,因为直到最后一级为止,数据总量没那么多,直到达到该级别,您才可以“看到”最低级别的文件的大小,并且每个文件都不是“太大”的-只有数量巨大才有问题。