缓冲区溢出:NOP雪橇无法正常工作

时间:2017-07-09 19:27:05

标签: linux assembly gdb buffer-overflow

嘿我正在尝试在基本的C程序上进行缓冲区溢出,我在gdb中使用的shellcode格式为

NOP雪橇然后msfvenom有效载荷连接回我自己的机器,最后是NOP雪橇某处的内存地址。

运行gdb时,在执行shellcode之前,我可以看到NOP指令从0x7fffffffe010开始,这是我在shellcode末尾的地址。执行shellcode后,rip寄存器位于0x7fffffffe010,但是它给了我警告:

 Cannot insert breakpoint 0.
 Cannot access memory at address 0x40000

 0x00007fffffffe010 in ?? ()

我认为rip现在会读取NOP并进入有效负载连接回我的机器我无法理解为什么它不起作用。

1 个答案:

答案 0 :(得分:1)

解决了!

我需要编译没有堆栈保护和可执行堆栈的c,即:

gcc -fno-stack-protector -z execstack -o output file.c