利用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 相关文章推荐
使用cx_freeze把python打包exe示例
Jan 24 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
Python实现模拟时钟代码推荐
Nov 08 Python
python实现两个文件合并功能
Apr 01 Python
Python读取数据集并消除数据中的空行方法
Jul 12 Python
基于python实现名片管理系统
Nov 30 Python
Python测试模块doctest使用解析
Aug 10 Python
python实现机器人卡牌
Oct 06 Python
pytorch中的卷积和池化计算方式详解
Jan 03 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
Python3如何使用多线程升程序运行速度
Aug 11 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 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编写大型网站问题集
2007/03/06 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
javascript 获取元素位置的快速方法 getBoundingClientRect()
2009/11/26 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
jquery.ui.draggable中文文档(原文翻译)
2013/11/15 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
jquery的trigger和triggerHandler的区别示例介绍
2014/04/20 Javascript
javascript实现延时显示提示框特效代码
2016/04/27 Javascript
微信小程序实时聊天WebSocket
2018/07/05 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
2018/10/19 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
layui 实现自动选择radio单选框(checked)的方法
2019/09/03 Javascript
JavaScript实现背景自动切换小案例
2019/09/27 Javascript
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
对Python 网络设备巡检脚本的实例讲解
2018/04/22 Python
利用Django-environ如何区分不同环境
2018/08/26 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
2020/05/15 Python
Django实现任意文件上传(最简单的方法)
2020/06/03 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
python怎么删除缓存文件
2020/07/19 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
印尼最大的在线购物网站:MatahariMall.com
2016/08/26 全球购物
您的时尚,您的生活方式:DTLR Villa
2019/12/25 全球购物
static函数与普通函数有什么区别
2015/12/25 面试题
Linux机考试题
2015/10/16 面试题
实习生自荐信范文分享
2013/11/27 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
2015年数学教研工作总结
2015/07/22 职场文书
趣味运动会广播稿
2015/08/19 职场文书
初一语文教学反思
2016/03/03 职场文书
发工资啦!教你用Python实现邮箱自动群发工资条
2021/05/10 Python
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python