利用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学习 流程控制语句详解
Jun 01 Python
如何实现删除numpy.array中的行或列
May 08 Python
Python迭代器与生成器用法实例分析
Jul 09 Python
python 文件转成16进制数组的实例
Jul 09 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
Aug 08 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
python读取word 中指定位置的表格及表格数据
Oct 23 Python
在Python中使用turtle绘制多个同心圆示例
Nov 23 Python
python打开音乐文件的实例方法
Jul 21 Python
python 字符串格式化的示例
Sep 21 Python
python温度转换华氏温度实现代码
Dec 06 Python
Python 用__new__方法实现单例的操作
Dec 11 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中通过smtp发邮件的类,测试通过
2007/01/22 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
php实现遍历多维数组的方法
2015/11/25 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
Linux下使用jq友好的打印JSON技巧分享
2014/11/18 Javascript
AngularJS中$watch和$timeout的使用示例
2016/09/20 Javascript
Ubuntu 16.04 64位中搭建Node.js开发环境教程
2016/10/19 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
Node.js笔记之process模块解读
2018/05/31 Javascript
微信小程序自定义导航栏
2018/12/31 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
Python求导数的方法
2015/05/09 Python
详解Django框架中的视图级缓存
2015/07/23 Python
win与linux系统中python requests 安装
2016/12/04 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python shutil模块用法实例分析
2019/10/02 Python
Django之使用celery和NGINX生成静态页面实现性能优化
2019/10/08 Python
Python偏函数实现原理及应用
2020/11/20 Python
Kipling意大利官网:世界著名的时尚休闲包袋品牌
2019/06/05 全球购物
个人简历自我评价八例
2013/10/31 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
2015年见习期工作总结
2014/12/12 职场文书
公务员政审材料范文
2014/12/23 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
JavaScript中reduce()的用法
2022/05/11 Javascript