1.main函数F5,发现没有什么进入vuln函数 缓冲区覆盖返回地址的大小是0x10+8,有存在栈溢出,shift+F12没有找到/bin/sh和system函数,但是有libc函数,所以可以利用对其做初始化的__libc_csu_init函数来控制寄存器的数据。2.空格查看__libc_csu_init函数的汇编如下(1)可以发现在0x40059A到0x40054A中pop了一堆寄存器,因为pop指令是使从栈中弹出来的值储存在寄存器里,所以我们可以通过栈溢出来修改栈上的数据,使其弹出我们想要的值到寄存器中,因此,我们可以控制rbx,rbp,r12,r13,r14,r15这六个寄存...