缓冲区溢出:NOP sled 不工作
Buffer Overflow: NOP sled not working
嘿,我想在一个基本的 C 程序上做一个缓冲区溢出,我在 gdb 中使用的 shellcode 的形式是
NOP sled 然后 msfvenom payload 连接回我自己的机器,最后是 NOP sled 中某处的内存地址。
当运行 gdb 时,在执行shellcode 之前,我可以看到NOP 指令从0x7fffffffe010 开始,这是我在shellcode 末尾的地址。执行 shellcode 后,rip 寄存器位于 0x7fffffffe010,但它给了我警告:
Cannot insert breakpoint 0.
Cannot access memory at address 0x40000
0x00007fffffffe010 in ?? ()
我认为 rip 现在会读取 NOP 并进入有效载荷以连接回我的机器我不明白为什么它不起作用。
解决了!
我需要在没有堆栈保护和可执行堆栈的情况下编译 c,即:
gcc -fno-stack-protector -z execstack -o output file.c
嘿,我想在一个基本的 C 程序上做一个缓冲区溢出,我在 gdb 中使用的 shellcode 的形式是
NOP sled 然后 msfvenom payload 连接回我自己的机器,最后是 NOP sled 中某处的内存地址。
当运行 gdb 时,在执行shellcode 之前,我可以看到NOP 指令从0x7fffffffe010 开始,这是我在shellcode 末尾的地址。执行 shellcode 后,rip 寄存器位于 0x7fffffffe010,但它给了我警告:
Cannot insert breakpoint 0.
Cannot access memory at address 0x40000
0x00007fffffffe010 in ?? ()
我认为 rip 现在会读取 NOP 并进入有效载荷以连接回我的机器我不明白为什么它不起作用。
解决了!
我需要在没有堆栈保护和可执行堆栈的情况下编译 c,即:
gcc -fno-stack-protector -z execstack -o output file.c