利用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 21 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
Aug 30 Python
Python算法之图的遍历
Nov 16 Python
Python找出最小的K个数实例代码
Jan 04 Python
django用户登录和注销的实现方法
Jul 16 Python
python使用pdfminer解析pdf文件的方法示例
Dec 20 Python
利用anaconda保证64位和32位的python共存
Mar 09 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
python文件及目录操作代码汇总
Jul 08 Python
浅谈keras中Dropout在预测过程中是否仍要起作用
Jul 09 Python
python如何快速生成时间戳
Jul 21 Python
UI自动化定位常用实现方法代码示例
Oct 27 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生成带有雪花背景的验证码
2006/10/09 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
php+mysqli使用面向对象方式查询数据库实例
2015/01/29 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
2015/12/19 PHP
javascript demo 基本技巧
2009/12/18 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
Boostrap基础教程之JavaScript插件篇
2016/09/08 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
2016/09/28 Javascript
jquery无法为动态生成的元素添加点击事件的解决方法(推荐)
2016/12/26 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
js将URL网址转为16进制加密与解密函数
2020/03/04 Javascript
axios解决高并发的方法:axios.all()与axios.spread()的操作
2020/11/09 Javascript
[06:10]6.81新信使新套装!给你一个炫酷的DOTA2
2014/05/06 DOTA
[59:42]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python获取系统默认字符编码的方法
2015/06/04 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
机械制造与自动化应届生求职信
2013/11/16 职场文书
银行职员思想汇报
2013/12/31 职场文书
市场营销职业生涯规划书范文
2014/01/12 职场文书
工作保证书范文
2014/04/29 职场文书
党员公开承诺书内容
2014/05/20 职场文书
《语言的突破》读后感3篇
2019/12/12 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android
Python之matplotlib绘制折线图
2022/04/13 Python
Python序列化模块JSON与Pickle
2022/06/05 Python