利用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实现数组插入新元素的方法
May 22 Python
使用Python导出Excel图表以及导出为图片的方法
Nov 07 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
Jun 02 Python
Python实现SMTP发送邮件详细教程
Mar 02 Python
Python网络爬虫与信息提取(实例讲解)
Aug 29 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
Mar 27 Python
使用coverage统计python web项目代码覆盖率的方法详解
Aug 05 Python
python__new__内置静态方法使用解析
Jan 07 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
Python办公自动化之Excel(中)
May 24 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 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
PHP SQLite类
2009/05/07 PHP
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
比较详细PHP生成静态页面教程
2012/01/10 PHP
php实现将base64格式图片保存在指定目录的方法
2016/10/13 PHP
使用PHPExcel导出Excel表
2018/09/08 PHP
Laravel5.1 框架表单验证操作实例详解
2020/01/07 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
Javascript中作用域的详细介绍
2016/10/06 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
微信小程序如何获取用户信息
2018/01/26 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
JavaScript实现一个带AI的井字棋游戏源码
2018/05/21 Javascript
Vuerouter的beforeEach与afterEach钩子函数的区别
2018/12/26 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
浅谈python中set使用
2016/06/30 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
详解python中的文件与目录操作
2017/07/11 Python
python正则表达式re之compile函数解析
2017/10/25 Python
修复CentOS7升级Python到3.6版本后yum不能正确使用的解决方法
2018/01/26 Python
使用pip安装python库的多种方式
2019/07/31 Python
python GUI库图形界面开发之PyQt5计数器控件QSpinBox详细使用方法与实例
2020/02/28 Python
python opencv肤色检测的实现示例
2020/12/21 Python
行政助理工作职责范本
2014/03/04 职场文书
出生公证书样本
2014/04/04 职场文书
项目安全员岗位职责
2015/02/15 职场文书
对公司的意见和建议
2015/06/04 职场文书
郭明义电影观后感
2015/06/08 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python