python3 的optparse库_Python使用optparse模块&&figlet打造自己的工具

本帖最后由 Aedoo 于 2018-3-21 09:58 编辑

(如果你觉得本篇文章让你获得了知识,请务必在下方点个赞,谢谢表哥们!)

0x00 前言

当我们使用Python完成了我们自创的小工具,比如一些字典生成、端口扫描、弱服务爆破等等等。

你是否想添加自己的装x的Logo(如sqlmap和metasploit)以及简明的说明文档(如Nmap和Hydra)吗?

如下,

sqlmap的Logo:

1.png (28.83 KB, 下载次数: 132)

2017-12-26 12:42 上传

Nmap的说明文档:

2.png (60.38 KB, 下载次数: 133)

2017-12-26 12:42 上传

本文接下来介绍Linux下的figlet工具以及Python的撰写工具帮助模块optparse。

0x01 Linux下的figlet使用

figlet是Linux下的一款工具,用于将输入的字符串输出为各种奇形怪状的Logo,可用于撰写自己的工具后,插入代表着自己原创工具的Logo标识。

ubuntu下安装figlet:

sudo apt-get install figlet

centos下安装figlet:(可能需要到墙外的世界)

[root@centos6 src]# tar zxf figlet-2.2.5.tar.gz

[root@centos6 src]# cd figlet-2.2.5

[root@centos6 figlet-2.2.5]# make figlet

安装之后查看一下帮助文件(centos):

3.png (21.24 KB, 下载次数: 115)

2017-12-26 12:42 上传

我们常用的语法就是:

[AppleScript] 纯文本查看 复制代码./figlet Aedoo -f fonts/standard.flf

Aedoo为我们要生成Logo的字符串。

-f fonts/standard.flf 为选择不通风格的模板。

另外的,-w 输出的宽度 、-C 选择一个控制文件(也在fonts目录下)

由于centos使用解压缩并编译运行,我们可以查看工具的字体模板,在目录fonts里。

4.png (16.23 KB, 下载次数: 123)

2017-12-26 12:42 上传

后缀为flf为字体模板文件,后缀为flc为控制文件。

我们随机选择几个字体文件试一下效果(请注意,我当前目录为fonts):

5.png (13.7 KB, 下载次数: 138)

2017-12-26 12:42 上传

6.png (14.31 KB, 下载次数: 146)

2017-12-26 12:42 上传

7.png (12.95 KB, 下载次数: 133)

2017-12-26 12:42 上传

8.png (12.52 KB, 下载次数: 142)

2017-12-26 12:42 上传

除此之外,还有不少有趣的模板,大家可自行安装使用。

0x02 Python工具模块optparse

optparse是一款打造自己的工具的模块(python2.7自带),他可以向我们的工具中加入帮助信息,大家对linux下的工具一定有印象吧,使用--help查看帮助文档。此模块正是打造这样的帮助文档。

a.导入模块

[Python] 纯文本查看 复制代码from optparse import OptionParser

当然也可以直接import optparse,只不过写代码的时候比较麻烦

b.实例化一个OptionParser类的对象

[Python] 纯文本查看 复制代码parser = OptionParser()

c.添加说明文档,这里举两个例子进行讲解(编码问题请点击纯文本查看)

[Python] 纯文本查看 复制代码parser.add_option("-i", dest="redis_ip", help="Input IP Duan Like 192.168.1.1/24")

上述这行代码的add_option()方法是向parser中添加。

-f   输入时紧跟此参数的一个字符串为此参数的值

--file 等同于-f

dest="file"  将紧跟-f的字符串赋值给file

help="****"  此参数的说明

[Python] 纯文本查看 复制代码parser.add_option("-t", dest="thread_count", type="int", default=10, help="The Thread Number")

(编码问题请点击纯文本查看)

type="int" 此参数的默认类型为int型

default=10  当不输入此参数时,此参数默认为10

d.赋值

[Python] 纯文本查看 复制代码(options, args) = parser.parse_args()

将上述添加的参数一一赋值。

如果:

python **.py -f php -t 100

此时options.file 是-f参数后面紧跟的输入的值,options.count是-t参数紧跟的值,赋值后:

options.file=php

options.count=100

完整使用代码如下:

9.png (34.79 KB, 下载次数: 129)

2017-12-26 12:42 上传

print是用来测试是否赋值成功的,赋值成功之后,就可以调用options.redis_ip来使用了。

在cmdshell中运行此py文件:

10.png (23.63 KB, 下载次数: 138)

2017-12-26 12:42 上传

运行效果如上。

尝试赋值一下:

11.png (5.03 KB, 下载次数: 128)

2017-12-26 12:42 上传

成功调用。

0x03 完整的工具实例效果图

使用多线程写了个Redis批量爆破的工具,放一下完整的效果图。

12.png (31.37 KB, 下载次数: 130)

2017-12-26 12:42 上传

应该不会很Low吧。。。。。

0x04 文中的测试代码分享

test.zip

(361 Bytes, 下载次数: 26)

2017-12-26 12:51 上传

点击文件名下载附件

下载积分: 魔法币 -5

如有问题,请回复留言,我会作答。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值