嘿我正在尝试在基本的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并进入有效负载连接回我的机器我无法理解为什么它不起作用。
答案 0 :(得分:1)
解决了!
我需要编译没有堆栈保护和可执行堆栈的c,即:
gcc -fno-stack-protector -z execstack -o output file.c