zoukankan      html  css  js  c++  java
  • 暴力破解zip文件

     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'
    ')
    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:Python34python.exe CrackZipfile.py  -z e:Archive.zip -d e:dictionary.txt
    2 找到密码: 1q3e5t
  • 相关阅读:
    poj 1743 Musical Theme 后缀数组
    poj 1743 Musical Theme 后缀数组
    cf 432D Prefixes and Suffixes kmp
    cf 432D Prefixes and Suffixes kmp
    hdu Data Structure? 线段树
    关于position和anchorPoint之间的关系
    ios POST 信息
    CALayers的代码示例
    CALayers详解
    ios中得sqlite使用基础
  • 原文地址:https://www.cnblogs.com/darkpig/p/5683799.html
Copyright © 2011-2022 走看看