首页 > 技术文章 > 暴力破解zip文件

darkpig 2016-07-19 10:36 原文

 1 #coding=utf-8
 2 
 3 """
 4 用户输入-z参数指定要破解的zip文件,输入-d参数输入字典文件,即可暴力破解加密的zip文件
 5 """
 6 
 7 import optparse,zipfile,threading
 8 
 9 foundpassword = False   #当密码找到后,将此置为True,避免继续验证字典中的其它word,提高效率
10 
11 def extract_zipfile(a_zipfile,password):
12    global foundpassword
13    try:
14       a_zipfile.extractall(pwd=password)  #若密码不对,会返回异常
15       print('找到密码:',password.decode('utf-8'))
16       foundpassword = True
17    except:
18       pass
19 
20 def main():
21    usage = 'Usage: %prog -z <zipfile> -d <dictionaryfile>'
22    parser = optparse.OptionParser(usage,version='v1.0')
23    parser.add_option('-z',dest='zname',
24                      help='待破解的zip文件')
25    parser.add_option('-d',dest='dname',
26                      help='指定字典文件')
27    (options,args) = parser.parse_args()
28    if options.zname == None or options.dname == None:
29       print(parser.usage)
30       exit(0)
31    else:
32       zname = options.zname
33       dname = options.dname
34    a_zipfile = zipfile.ZipFile(zname)
35    dictFile = open(dname,'rb')
36    for word in dictFile:
37       password = word.strip(b'\r\n')
38       t = threading.Thread(target=extract_zipfile,args=(a_zipfile,password))
39       t.start()
40       if foundpassword == True:
41          exit(0)
42 
43 if __name__ == '__main__':
44    main()
45    

运行后的结果为:

1 c:\Python34\python.exe CrackZipfile.py  -z e:\Archive.zip -d e:\dictionary.txt
2 找到密码: 1q3e5t

 

推荐阅读