【发布时间】:2015-08-23 18:58:26
【问题描述】:
我正在阅读 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>'])
这是我的代码。
【问题讨论】:
-
我在阅读暴力 python 时也做了一个,但我隐约记得使用过 docopt 但其他一些解析器......
-
我也已经用 argpass 做到了,但想用 docopt。
标签: python python-2.7 docopt