首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何制作Zip炸弹?

如何制作Zip炸弹?
EN

Stack Overflow用户
提问于 2009-09-22 12:04:10
回答 15查看 106K关注 0票数 141

这个问题有关zip炸弹的信息自然将我带到了维基百科页面关于这个话题。这篇文章提到了一个45.1kb的zip文件的例子,它可以解压缩到1.3EB。

创建这样一个文件首先要用到的原则/技术是什么?我实际上并不想这样做,我更感兴趣的是对所涉及的概念的简化的“如何工作”的解释。

附注:

这篇文章提到了9层zip文件,所以这不是一个简单的压缩一堆零的例子。为什么是9个文件,为什么每个文件有10个文件?

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2009-09-22 12:21:40

引用自维基百科页面:

Zip炸弹的一个例子是文件45.1.zip,其是45.1千字节的压缩数据,

包含9层嵌套的zip文件,每组10个,每个底层归档文件包含一个1.30 10的文件

总共1.30艾字节的未压缩数据。

因此,您所需要的只是一个1.3 is的充满零的文件,将其压缩为ZIP文件,复制10个副本,将这些文件打包为ZIP文件,然后重复此过程9次。

这样,你得到一个文件,当完全解压时,它会产生一个荒谬的数据量,而不需要你从这个数量开始。

此外,嵌套的归档文件使像病毒扫描程序(这些“炸弹”的主要目标)这样的程序变得更难聪明,并拒绝解压“太大”的归档文件,因为直到最后一层数据总量不是那么多,你才能“看到”最低层的文件有多大,直到你达到那个级别,并且每个单独的文件都不“太大”-只有巨大的数字才是有问题的。

票数 97
EN

Stack Overflow用户

发布于 2009-09-22 12:07:09

创建一个1.3艾字节的零文件。

右键单击>发送到压缩(压缩)文件夹。

票数 51
EN

Stack Overflow用户

发布于 2009-09-22 12:30:27

在Linux下,使用以下命令可以轻松完成此操作:

dd if=/dev/zero bs=1024 count=10000 | zip zipbomb.zip -

将count替换为要压缩的KB数。上面的例子创建了一个10MiB的zip炸弹(根本不是一个炸弹,但它展示了这个过程)。

您不需要硬盘空间来存储所有未压缩的数据。

票数 42
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1459673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档