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()

在这里插入图片描述

发布了37 篇原创文章 · 获赞 29 · 访问量 3704

猜你喜欢

转载自blog.csdn.net/weixin_44253823/article/details/103665548