zipfile模块与线程

zipfile库

ZipFile.extract(member[,path[,pwd]])
将zip文档内的指定文件解压到当前目录。参数member指定要解压的文件名称或对应的ZipInfo对象;参数path指定了解析文件保存的文件夹;参数pwd为解压密码。

在这里插入图片描述
在这里插入图片描述

#!/usr/bin/env python
#Author:Rouzi Date:2019/12/23
import zipfile
def extractFile(zFile,password):
    try:
        zFile.extractall(pwd=password)
        return password
    except:
        return
def main():
    zFile = zipfile.ZipFile('evil.zip')
    passFiel = open('dictionary.txt')
    for line in passFiel.readlines():
        password = line.strip('\n')
        guess = extractFile(zFile,password)
        if guess:
            print ("[+]password="+password+'\n')
            exit(0)
if __name__=='__main__':
    main()
         

在这里插入图片描述

线程

在线程可以同时测试多个口令,而不是逐个测试,提高脚本性能。

#!/usr/bin/python
#Author:Rouzi Date:2019/12/23
import zipfile
import optparse
from threading import Thread
def extractFile(zFile,password):
    try:
        zFile.extractall(pwd=password)
        print ("[+]Found password="+password)
    except:
        pass
def main():
    parser = optparse.OptionParser("usage%prog "+"-f <zipfile> -d <dictionary>")
    parser.add_option('-f', dest='zname',type='string',help='specify dictionary file')
    parser.add_option('-d', dest='dname',type='string',help='specify dictionary file')
    (options,args)=parser.parse_args()
    if (options.zname == None) | (options.dname == None):
        print (parser.usage)
        exit(0)
    else:
        zname = options.zname
        dname = options.dname
    zFile = zipfile.ZipFile(zname)
    passFile = open(dname)
    for line in passFile.readlines():
        password = line.strip('\n')
        t = Thread(target=extractFile,args=(zFile,password))
        t.start()
if __name__ == '__main__':
    main()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值