zip解压炸弹
在文章的开头,让我们先来介绍一下zip解压炸弹是个 什么妖怪!
解压炸弹是指解压缩后能够产生巨大的数据量的可疑压缩文件!默认设置是文件扫描中产生500MB以上解压数据的是“解压炸弹”,实时监控中是100MB,邮件监控是30MB。这样的压缩文件解压缩可能对解压程序造成严重负担或崩溃(可能用来攻击压缩软件以及占用大量电脑资源,或者杀毒软件的解压缩功能)。解压炸弹内,还可能存在病毒,解压中会自启动窃取用户信息
如何制作解压炸弹
42.zip 是很有名的zip炸弹。一个42KB的文件,解压完其实是个4.5PB的“炸弹”。zip炸弹文件中有大量刻意重复的数据,这种重复数据在压缩的时候是可以被丢弃的,这也就是压缩后的文件其实并不大的原因。这一百多万个最终文件,每个大小为 4.3 GB 。因此整个解压过程结束以后,会得到 1048576 * 4.6 GB = 4508876.8 GB 也就是 4508876.8 ÷ 1024 ÷ 1024 = 4.5 PB 这需要特殊的压缩算法和工具,但我们可以通过Python做一个简单的zip解压炸弹:
# -*- coding: utf-8 -*-
import os
def make_boom(file_path, file_num, string_len):
if not os.pat