利用Python实现原创工具的Logo与Help


Posted in Python onDecember 03, 2018

前言

当我们使用Python完成自己的原创的工具时,比如:端口扫描、弱口令爆破等。你是否想过添加自己的Logo,以及简要的帮助信息?

如下:

Sqlmap的Logo

利用Python实现原创工具的Logo与Help

Nmap的说明文档

利用Python实现原创工具的Logo与Help

本文接下来介绍Linux下的figlet工具,以及Python用于解析命令行参数和选项的标准模块argparse。

Figlet使用

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

安装

sudo apt-get install figlet

目录文件

利用Python实现原创工具的Logo与Help

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

常用语法

figlet AnonySec -f standard.flf

① AnonySec 为我们要生成Logo的字符串

② -f standard.flf 为选择不同风格的模板

效果展示

利用Python实现原创工具的Logo与Help

【注:其他使用参数,请自行查阅】

Argparse模块使用

argparse是python用于解析命令行参数和选项的标准模块,向原创工具中加入帮助信息,编写可读性非常好的程序。
大家对linux下的工具一定有印象吧,使用- -help查看帮助文档。此模块正是打造这样的帮助文档。

导入模块

from argparse import ArgumentParser

可以直接import argparse,只不过写代码的时候比较麻烦。

实例化对象

parser = ArgumentParser()

实例化一个ArgumentParser类的对象

添加说明文档

parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1")

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

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

② dest=“ip”   将 -i 后面的字符串赋值给 ip

③ help=“******”   此参数的说明信息

parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number")

① type=“int”   此参数的默认类型为int型

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

赋值

args = parser.parse_args()

将上述添加的参数进行赋值。

完整代码

parser = ArgumentParser()
parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1")
parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number")
args = parser.parse_args()

print 'The ip is: %s .' %args.ip
print 'The thread number is: %s .' %args.thread_count

print是用来测试是否赋值成功。若赋值成功,就可以调用args.ip与args.thread_count来使用了。

【注:其他使用参数,请自行查阅】

附:Base64-Logo

logo_code = 'ICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXyAgICAgICAgICAgIAogICAvIFwgICBfIF9fICAgX19fICBfIF9fICBfICAgXy8gX19ffCAgX19fICBfX18gCiAgLyBfIFwgfCAnXyBcIC8gXyBcfCAnXyBcfCB8IHwgXF9fXyBcIC8gXyBcLyBfX3wKIC8gX19fIFx8IHwgfCB8IChfKSB8IHwgfCB8IHxffCB8X19fKSB8ICBfXy8gKF9fIAovXy8gICBcX1xffCB8X3xcX19fL3xffCB8X3xcX18sIHxfX19fLyBcX19ffFxfX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX18vCgpQb3dlcmVkIGJ5IEFub255U2VjCkJsb2cnczogaHR0cDovL3d3dy5hbm9ueXNlYy5jbg=='
logo = base64.b64decode(logo_code)
print logo

logo_code是事先使用base64加密过的,目的是让Logo的嵌入不显得那么突兀。只需要base64解密一次,就可以将它输出至屏幕。

实例效果图

利用Python实现原创工具的Logo与Help

附源码

# coding:utf-8
# powered by AnonySec

import base64
from argparse import ArgumentParser

logo_code = 'ICAgIF8gICAgICAgICAgICAgICAgICAgICAgICAgICAgX19fXyAgICAgICAgICAgIAogICAvIFwgICBfIF9fICAgX19fICBfIF9fICBfICAgXy8gX19ffCAgX19fICBfX18gCiAgLyBfIFwgfCAnXyBcIC8gXyBcfCAnXyBcfCB8IHwgXF9fXyBcIC8gXyBcLyBfX3wKIC8gX19fIFx8IHwgfCB8IChfKSB8IHwgfCB8IHxffCB8X19fKSB8ICBfXy8gKF9fIAovXy8gICBcX1xffCB8X3xcX19fL3xffCB8X3xcX18sIHxfX19fLyBcX19ffFxfX198CiAgICAgICAgICAgICAgICAgICAgICAgICAgIHxfX18vCgpQb3dlcmVkIGJ5IEFub255U2VjCkJsb2cnczogaHR0cDovL3d3dy5hbm9ueXNlYy5jbg=='
logo = base64.b64decode(logo_code)
print logo
print ''

parser = ArgumentParser()
parser.add_argument("-i", dest="ip", help="Please enter the ip,for example 192.168.1.1")
parser.add_argument("-t", dest="thread_count", type=int, default=100, help="Please enter the thread number")
args = parser.parse_args()
#parser.print_help()

print 'The ip is: %s .' %args.ip
print 'The thread number is: %s .' %args.thread_count
print ''

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python paramiko模块学习分享
Aug 23 Python
python中Matplotlib实现绘制3D图的示例代码
Sep 04 Python
Python爬虫包BeautifulSoup简介与安装(一)
Jun 17 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
Sep 17 Python
python tkinter实现界面切换的示例代码
Jun 14 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
Python求正态分布曲线下面积实例
Nov 20 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
详解python itertools功能
Feb 07 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
基于pandas向csv添加新的行和列
May 25 Python
对pycharm 修改程序运行所需内存详解
Dec 03 #Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 #Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 #Python
浅谈Pycharm调用同级目录下的py脚本bug
Dec 03 #Python
Python实现的特征提取操作示例
Dec 03 #Python
解决python3 Pycharm上连接数据库时报错的问题
Dec 03 #Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 #Python
You might like
咖啡因含量是由谁决定的?低因咖啡怎么来?低因咖啡适合什么人喝
2021/03/06 新手入门
在Zeus Web Server中安装PHP语言支持
2006/10/09 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
2014/08/23 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
10个值得深思的PHP面试题
2016/11/14 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP后台备份MySQL数据库的源码实例
2019/03/18 PHP
thinkphp3.2同时连接两个数据库的简单方法
2019/08/13 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
基于jQuery的仿flash的广告轮播
2010/11/05 Javascript
JS鼠标滑过图片时切换图片实现思路
2013/09/12 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
基于socket.io+express实现多房间聊天
2016/03/17 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
jQuery实现的无限级下拉菜单功能示例
2016/09/12 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
简单学习5种处理Vue.js异常的方法
2019/06/17 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
Python循环语句之break与continue的用法
2015/10/14 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
使用Python生成200个激活码的实现方法
2019/11/22 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
海滩咖啡馆:Beach Cafe
2018/02/02 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
函授毕业生自我鉴定
2013/11/06 职场文书
出纳岗位职责范本
2013/12/01 职场文书
毕业生的自我评价分享
2013/12/18 职场文书
解除劳动合同协议书范本
2014/09/13 职场文书
工作简历的自我评价
2019/05/16 职场文书
微信小程序基础教程之echart的使用
2021/06/01 Javascript
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python
移除Selenium中window.navigator.webdriver值
2022/06/10 Python