首页 > 解决方案 > 在 NOP-Slide 中获取 SIGSEGV

问题描述

在此处输入图像描述

我试图从 main 返回到 NOP-Slide,但是当程序返回到第一个 NOP 操作时,我得到了一个 SIGSEGV。我在这里有什么问题吗?看不出问题...

标签: cgdbreverse-engineering

解决方案


但是当程序返回第一个 NOP 操作时,我得到一个 SIGSEGV

看起来你NOP的 s 在堆栈上。

默认情况下,堆栈不是可执行的,因此SIGSEGV是预期的。您可以检查您的二进制文件是否是为不可执行的堆栈构建的,如下所示:

readelf -Wl a.out | grep GNU_STACK
  GNU_STACK      0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW  0x10

注意RW而不是RWE权限。

要使用可执行堆栈构建程序,请-Wl,-z,execstack在链接时使用。


推荐阅读