fmtstr_payload

[TOC]

适用情况

  • 这个工具只适用于栈上的格式化字符串,可以参考offset变量的设置要求
  • 这个工具写入的数据直接是一个size_t类型,所以如果限制输入长度,这个工具效果可能没有那么好
  • 这个工具适用于栈上某个地方存的可能是0x7f开头的libc函数,但是我想写入一个elf文件里面的函数比如0x401488,这时候就很适用;或者栈上的数据是一个满的64位数字,想要写入一个0x7f开头的libc函数,这种情况比较适用
  • 查看了官方文档发现它好像大部分都用的%n来写入,所以写入的是一个size_t类型

fmtstr_payload

from pwn import *
from pwnlib.util.packing import p64
from pwnlib.util.packing import u64
context(os='linux', arch='amd64', log_level='debug')
writes={
  
}
payload=fmtstr_payload(offset=6,writes=writes,write_size='short')

参数设置

  • 见官方文档