Excalibur维护日记

之前看一些大神都有自己写的pwn题写exp用的python库,想着自己也写一个自用,方便exp的编写

虽然不是什么好东西,也只有几行简单的代码,但本着开源分享的原则,今天研究了一下传到pypi上了

23年暑假写的时候正在狂刷fate,然后直接粉上吾王,于是给库其名为Excalibur。至于为什么有个2 ,传的时候发现重名了......

此博客记录一下这个库的上传和维护过程。

中文文档

Excalibur2

Description

一个打pwn的ctfer的简单集成库

本Python库收录了常见的PWN题函数,旨在简化pwn题中脚本编写的过程呢个,帮助广大pwner节约时间,提高解题效率

十分欢迎各位师傅使用Excalibur,同时欢迎对鄙人的代码提出意见和指导

Install

安装

pip3 install Excalibur2

检查是否有更新版本

python3 -m Excalibur2.__update__

更新

pip3 install Excalibur2 --upgrade

Help

Python内置帮助

python3 -m pydoc Excalibur2

查看帮助文档

import Excalibur2

help(Excalibur2)

查看函数帮助

from Excalibur2 import *

help(function)

more details Please visit https://lmarch2.top/posts/8c945bd4/

Release

2.4, Feb 8, 2024

contextset更名为setcontext
新增prhl函数
proc默认参数设置为./pwn
添加自动计算有基址的地址
修复了csu和ropgadget函数bug
修改部分alias
翻译成英文,txt格式

2.2, Feb 8, 2024

修复了一些由包名称引起的问题

2.1, Feb 8, 2024

支持自定义调试终端,添加检查更新功能

2.0, Feb 8, 2024

本包诞 生之日

将Python库打包至pypi时遇到的坑

2FA验证

首先你需要在pypi上创建账户(testpypi上也是,两个网站服务器相互独立),接着使用TOTP APP身份验证,我选择的是FreeOTP,并且选择在f-droid上下载(安卓手机,没有谷歌商店,懒得编译源码)

image-20240209005231896

步骤

一种使用pyproject.toml,一种使用setup.py,这里跟着官方教程选择pyproject.toml

步骤官方文档里写的很清楚,这里不再赘述,简单来说就是创建如下目录和文件

packaging_tutorial/
├── LICENSE
├── pyproject.toml
├── README.md
├── src/
│ └── example_package_YOUR_USERNAME_HERE/
│ ├── __init__.py
│ └── example.py
└── tests/

强烈建议照着官方教程先在testpypi测试平台上检测上传是否无误,无误后再转战pypi

API令牌验证上传

创建API token(保存好)

执行命令python3 -m build python3 -m twine upload dist/*

提示输入用户名——__token__

输入密码——刚刚的API秘钥

版本管理

更新版本之后,可以build之后再dist文件夹下创建以版本号为名称的文件夹,把压缩包和whl放到对应文件夹下,上传的时候记得修改路径和pyproject.toml里的版本号

源码

源码有点冗长,不在此占用空间,详见GitHub

https://github.com/lmarch2/Excalibur2

Others

顺便记录一下颜色转义码

定义 ANSI 转义码

  • RED = '\033[91m'
  • GREEN = '\033[92m'
  • YELLOW = '\033[93m
  • BLUE = '\033[94m
  • MAGENTA = '\033[95m
  • CYAN = '\033[96m'
  • RESET = '\033[0m'

colored_text = Color.RED + text + Color.RESET

posted @ 2024-02-16 17:38  lmarch2  阅读(21)  评论(0编辑  收藏  举报