过去的事情就像是画在沙地上的画,时间流逝,沙被风吹走,记忆模糊,最后化成茫茫的一片,再也无法分辨……这其实是人的自我保护功能,试想你能记住过去的每个细节,永志不忘,那么一生里最令你悲伤、疼痛、哀愁的画面就会不断的折磨你,你总也不能从过去的坏状态中走出来。

ZIP是通用的归档和压缩格式。zipfile模块提供了通用的创建、读取、写入、附加和显示压缩文件的方法,你可以简单地把它理解为Python中的zip解压缩软件。该模块可以解密带有密码的压缩文件,但不提供附加密码的压缩功能。

使用方法

打开压缩包

zz = zipfile.ZipFile(file, mode='r', compression=ZIP_STORED, allowZip64=True)
# 打开一个ZIP文件。返回的也是一个类似文件的ZipFile对象,可以读写。
@compression指明压缩格式,支持ZIP_STORED, ZIP_DEFLATED, ZIP_BZIP2和ZIP_LZMA。使用不支持的格式会抛出NotImplementedError异常。默认是ZIP_STORED格式。如果指定为ZIP_DEFLATED, ZIP_BZIP2或者ZIP_LZMA格式,但对应的支持模块zlib, bz2或者lzma不可用,则抛出RuntimeError异常。

压缩包写入文件

import zipfile
import os
z = zipfile.ZipFile("test.zip", "w")
z.write(r"d:\test\1.txt")   # 注意路径的写法
z.write(r"d:\test\2.txt")
z.write(r"d:\\test\test.txt")
z.write(r"d:\\test\test.py")
z.close()
print(os.getcwd())

解压缩文件

ZipFile.extract(member, path=None, pwd=None)

解压单个文件。核心方法之一。将ZIP文件中的某个成员解压到当前目录。member必须是完整名,path是指定的解压目录。解压的过程不会破坏原压缩文件。
ZipFile.extractall(path=None, members=None, pwd=None)
批量解压文件。默认是全部解压。核心方法之一。

使用进程池破解压缩包密码

import sys
import zipfile
from multiprocessing.dummy import  Pool as tp
import time
reload(sys)
import os
sys.setdefaultencoding('utf-8')
list_pass=list(set([i.replace("\n", "") for i in open("password.txt", "r").readlines()]))
# 破解的字典名为password.txt
zip_=raw_input("set zip file:")
zname = os.path.join(os.getcwd(),zip_)
print zname
zFile = zipfile.ZipFile(zname)
def scan(passw):
    try:
        zFile.extractall(pwd=passw)
        print '[+] Found password ' + passw + '\n'
        time.sleep(50)
    except Exception,e:
        pass
pool = tp(processes=8)
pool.map(scan,list_pass)
pool.join()
pool.close()

需要记住的是目录下有三个文件

  1. 破解压缩包.py (破解主程序)
  2. test.zip (等待破解的压缩包)
  3. password.txt (破解字典)

使用方法

双击启动,输入压缩包名字即可。


然后会自动开始爆破

打包好的下载地址:

链接: https://pan.baidu.com/s/1ZLj8CQkvUnowihrhQ_iHTQ 密码: 4aug