ciscn_2019_es_2 使用checksec查看: 只开启了栈不可执行,放进IDA中查看: 主函数中直接给了vul() 函数,跟进去查看: 程序读取了两次数据,都是用变量s接收,但溢出所需的输入空间不够 so…空间不够,可以考虑使用栈迁移的方式: 两次s变量使用的都是同一空间,可以使用第一次read去泄露出ebp的地址,接着利用第二次read在s变量处写入ROP,在ret时,进行栈迁移,迁移到s处。 from