源码:
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 <zipfile> -d <dictionary>")
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() 方法。
网友评论