暴力破解加密压缩文件脚本

源码:

import zipfile
import threading
import optparse

def extractFile(zFile,password):              #fuzz
        
    try:
        zFile.extractall(pwd=password)
        print 'password ='+password+'\n'

    except:
        pass

def main():
    parser = optparse.OptionParser("usage%prog "+\           #创建实例对象
            "-f  -d ")
    parser.add_option('-f',dest='zname',type='string',\      #增加参数选项
            help='specify zip file')
    parser.add_option('-d',dest='dname',type='string',\
            help='specify dictionary file')
    (options,args) = parser.parse_args()                     #调用optionparser的解析函数

    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 = threading.Thread(target=extractFile, args=(zFile,password))     #多线程工作
        t.start()

if __name__=='__main__':                                                    #程序入口
    main()
    

Abuot 库

一、optionparser

optionparser的执行过程:
1、导入optionparser : from optparse import OptionParser构造optionparser的对象:parser = OptionParser()

2、往optionparser对象中增加option :parser.add_option()

3、调用optionparser的解析函数:(options, args) = parser.parse_args()在options中使用解析到的options,在args中使用其他的args。

二、threading

通过直接从 threading.Thread 继承创建一个新的子类,并实例化后调用 start() 方法启动新线程,即它调用了线程的 run() 方法。

你可能感兴趣的:(暴力破解加密压缩文件脚本)