写的一个格式化字符串工具,生成payload用,publicqi/one_fmt,欢迎star/fork/pull request。这里随便翻译下README
GitHub是在找不到好用的工具了,每次都要手动构造,所以写了一个工具。只支持Python2和64位。1.2.0应该是比较长时间里的最终版本了
安装
pip install one_fmt
用法
from one_fmt import *
fmt = Fmt(offset=24, written=8)
fmt[0x601040] = "DEADBEEF"
fmt[0x601050] = 0x1337babe
# 自定义index
fmt.index(0x601040, 10)
payload_level_hhn = fmt.build(0)
payload_level_hn = fmt.build(1)
payload_level_n = fmt.build(2)
level有三个,其中0 1 2分别使用%hhn %hn %n,因此可以控制长度。
自定义index的作用在于进一步缩短payload长度,比如0x601040如果在offset 10,那么就不需要再去构建地址,直接用%10n就可以写。这种情况下,地址的数值就不那么重要了。
TODO
- 添加Python3和32位的支持(随缘加吧)