0

我正在阅读《Violent Python 》一书,其中一个示例是 zip 文件破解程序,它针对 zip 文件测试潜在密码的字典文件(文本文件)。

我正在尝试使用该docopt库来解析命令行并为我提供这两个文件的文件名。这是我的代码。

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Basic zip bruteforcer

Usage:
  your_script.py (-f <file>) (-z <zip> )
  your_script.py -h | --help

Options:
  -h --help     Show this screen.
  -f --file     specify dictionary file. (Required argument)
  -z --zip      specify zip file.(Required argument)
  -t --thread   Thread count. (Optional)
  -v --verbose  Turn debug on. (Optional)
"""
from docopt import docopt
import zipfile
from threading import Thread

def extractzip(zfile, password):
    try:
        zfile.extractall(pwd = password)
        print 'password found: ', password
    except:
        return

def main():
    zfile = zipfile.ZipFile(zip)
    with open(file, 'r') as pass_file:
        for line in pass_file.readlines():
            password = line.strip('\n')
            t = Thread(target = extractzip, args = (zfile, password))
            t.start()  

if __name__ == "__main__":
    arguments = docopt(__doc__, version='0.1a')
    extractzip(arguments['<file>'], ['<zip>'])

这是我的代码。

4

1 回答 1

0

你可以做类似的事情

  print arguments['<file>']

获取文件名,以及类似的 zip 文件。我个人没有使用 extractzip 并且不确定它是如何工作的。但由于参数只是一个列表,您可以通过直接访问所需的索引轻松获取值。

于 2015-08-23T10:58:26.297 回答