optparser模块 与 ZIP爆破(Python)
optparser模块:
为脚本传递命令参数。
初始化:
- 带 Usage 选项(-h 的显示内容 Usage:):
>>> from optparse import OptionParser
>>> usage = "usage %prog -f <zipfile> -d <dictionary>" # %prog为Py文件名
>>> parser=OptionParser(usage) #这里为类添加了参数usage
>>> parser.print_help()
Usage: usage -f <zipfile> -d <dictionary> Options:
-h, --help show this help message and exit
- 不带 Usage 选项:
>>> parser = OptionParser()
添加选项:
add_option:()
- action: 验证输入数据类型是否和type 匹配,并将符合要求的这个参数存储到dest变量中。有以下几个属性:
store 默认值。
store_false 标记 配合下边的那个store_true来进行代码的“标记”,辅助流程控制。
store_true 标记。
- type : 参数数据类型,如-f,-d等的接下来的那个参数的数据类型,有string,int,float等等。
- dest : 保存临时变量,其值可以作为 options 的属性进行访问。存储的内容就是如-f,-d 等紧挨着的那个参数内容。
- default : 给dest的默认值。
- help: 提供用户友好的帮助信息,解释add_option方法的功能。
>>>parser.add_option('-f', '--file', dest='zname', type='string', help='zip file name')
>>>parser.add_option('-d', '--dictionary', dest='dname', type='string', help=' password dictionary')
ZIP爆破脚本:
# -*- coding: utf-8 -*-
import zipfile
import optparse
from threading import Thread def extractFile(zFile, password): #extractFile()函数 寻找与ZIP文件匹配的密码
try:
zFile.extractall(pwd = password)
print '[+] Found password ' + password + '\n'
except:
pass def main():
parser = optparse.OptionParser("usage %prog "+ "-f <zipfile> -d <dictionary>")
parser.add_option('-f', '--file', dest='zname', type='string', help='The zip file which you want to crack')
parser.add_option('-d', '--dictionary', dest='dname', type='string', help='The password dictionary')
(options, args) = parser.parse_args() #调用 parse_args() 来解析程序的命令行
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 = Thread(target = extractFile, args =(zFile, password)) #使用线程
t.start() if __name__ == '__main__':
main()
optparser模块 与 ZIP爆破(Python)的更多相关文章
- .zip爆破
.zip爆破 Python的优化问题 Python在计算密集型任务方面没有明显的多线程优化,多线程更加适合用于处理I/O密集型任务(如网络请求).爆破任务使用顺序执行即可. 编写Python脚本 一个 ...
- Kemaswill 机器学习 数据挖掘 推荐系统 Python optparser模块简介
Python optparser模块简介
- optparser 模块 提取IP,端口,用户名,密码参数模板
import optparse #class FtpClient(object): #自定义类可以自己修改 '''ftp客户端''' #def __init__(self): parser = opt ...
- python 全栈开发,Day29(昨日作业讲解,模块搜索路径,编译python文件,包以及包的import和from,软件开发规范)
一.昨日作业讲解 先来回顾一下昨日的内容 1.os模块 和操作系统交互 工作目录 文件夹 文件 操作系统命令 路径相关的 2.模块 最本质的区别 import会创建一个专属于模块的名字, 所有导入模块 ...
- python optparser模块
python的内置模块中对于命令行的解析模块共两个getopt 和 optparse .不过getopt过于简单,往往不能满足需求.此时可以使用optparse模块.这个模块相对于getopt更新,功 ...
- python函数,模块及eclipse配置python开发环境
一.eclipse的使用 1.作用 (1)最好用的IDE (2)可调式debug (3)查看可执行过程 (4)可查看源代码 2.安装eclipse及配置 目录安装Pythonpython for ec ...
- zip函数-Python 3
zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表. zip函数在获取数据后,生成字典(dict)时比较好用. for examples: # Code based on P ...
- ssh爆破(python脚本)
最近在乌云看到一份端口详解:为了锻炼自己,按照端口详解写脚本 #!/usr/local/bin/ python # -*- coding: UTF-8 -*- __author__ = 'yangxi ...
- python-模块入门二(模块循环导入,区分python文件的两种用途,模块搜索路径,软件开发的目录规范)
一.模块的循环导入问题 run.py # import m1 # 第一次导入 m1.py # 错误示范 ''' print('正在导入m1') from m2 import y #第一次导入m2 x= ...
随机推荐
- int 和String之间的相互转换
int ---> String 1. 和 "" 进行拼接 2. 使用String类中的静态方法valueOf: public static String valueOf(in ...
- 008-多线程-JUC集合-Queue-LinkedBlockingQueue
一.概述 LinkedBlockingQueue是一个单向链表实现的阻塞队列.该队列按 FIFO(先进先出)排序元素,新元素插入到队列的尾部,并且队列获取操作会获得位于队列头部的元素.链接队列的吞吐量 ...
- log4j.xml简单配置实现在控制台打印sql执行语句【加注释】
转: log4j.xml简单配置实现在控制台打印sql执行语句 2017年09月27日 13:02:34 艾然丶 阅读数 8804 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协 ...
- osgViewer::Viewer::Windows
osg自带窗口去掉边框 #ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include<iostream> #incl ...
- java判断字符串是否中文、日文
直接上代码: import java.io.UnsupportedEncodingException; public class StringUtil { /** * 去掉字符串中的标点符号.空格和数 ...
- 123457123456#0#-----com.twoapp.YiZhiFanPai08--前拼后广--儿童益智记忆翻牌jiemei
com.twoapp.YiZhiFanPai08--前拼后广--儿童益智记忆翻牌jiemei
- 微信支付 composer 方法 --- 实测有效
<h1 align="center">Pay</h1> <p align="center"> <a href=&quo ...
- leetcode1130 Minimum Cost Tree From Leaf Values
思路: 区间dp. 实现: class Solution { public: int mctFromLeafValues(vector<int>& arr) { int n = a ...
- 【ARM-Linux开发】嵌入式操作系统上的小型数据库移植SQLite
近段时间在学数据库,因为自身需求,所以注重研究了点嵌入式sqlite数据库,SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品 ...
- 网站架构(LNMP)
说明: 1)LNMP架构的组成(作用) 2)LNMP架构的部署 3)LNMP架构通讯原理 4)LNMP服务之间如何建立管理 nginx+php 运维负责 php+mysql 开发负责 5) 运 ...