利用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多进程同步Lock、Semaphore、Event实例
Nov 21 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
python getopt详解及简单实例
Dec 30 Python
Scrapy的简单使用教程
Oct 24 Python
python安装twisted的问题解析
Aug 21 Python
Cython编译python为so 代码加密示例
Dec 23 Python
OpenCV哈里斯(Harris)角点检测的实现
Jan 15 Python
pycharm实现在子类中添加一个父类没有的属性
Mar 12 Python
pycharm全局搜索的具体步骤
Jul 28 Python
python中的测试框架
Nov 13 Python
python 自动刷新网页的两种方法
Apr 20 Python
Python+Appium实现自动抢微信红包
May 21 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
Windows下安装Memcached的步骤说明
2010/04/25 PHP
Trying to clone an uncloneable object of class Imagic的解决方法
2012/01/11 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
php实现的双色球算法示例
2017/06/20 PHP
Yii框架通过请求组件处理get,post请求的方法分析
2019/09/03 PHP
Laravel手动返回错误码示例
2019/10/22 PHP
JavaScript 语言基础知识点总结(思维导图)
2013/11/10 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
JavaScript实现Java中Map容器的方法
2016/10/09 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
jquery根据name取得select选中的值实例(超简单)
2018/01/25 jQuery
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
JS实现简单贪吃蛇小游戏
2020/10/28 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
简介Python中用于处理字符串的center()方法
2015/05/18 Python
python单例模式实例解析
2018/08/28 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
Rakuten Kobo台湾:电子书、eReaders和Reading应用程式
2017/11/24 全球购物
客服专员岗位职责
2014/02/28 职场文书
小学毕业演讲稿
2014/04/25 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
销售员岗位职责
2015/02/10 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
结婚十年感言
2015/07/31 职场文书
SpringRetry重试框架的具体使用
2021/07/25 Java/Android