level4
前面4个level都是栈基址是固定的,所以我们可以猜测到栈帧的结构进行覆盖篡改,这一关就是引入了缓冲区溢出攻击的一种保护措施,就是栈基址随机化,让栈基址不可以猜测,我们来实施缓冲区溢出攻击,那么我们就要用到nop雪橇了。nop只是执行eip自加1不进行其他的操作。在我们无法猜测的时候,只需要找到最大的地址,然后前面用nop雪橇那么只要在nop段中都会自动划入。
这一level用的不再是getbuf而是getbufn,和testn,都是为了随机化栈基址。这一level运行bufbomb时要用到参数-n模式下。另外要求输入5次连续相同的string,我们需要借助一个不同的指令来完成这个输入。
也就是批量输入
首先来看一下getbufn函数的汇编代码:
可以看到buf的首地址为-0x208(%ebp)为十进制520个字节大小。<