【问题标题】:Getting SIGSEGV in NOP-Slide在 NOP-Slide 中获取 SIGSEGV
【发布时间】:2020-04-20 08:45:35
【问题描述】:

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

【问题讨论】:

  • 可能页面没有执行权限?
  • 我如何检查这个?
  • 抱歉,我只能帮到你了。

标签: c gdb reverse-engineering


【解决方案1】:

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

您的NOPs 似乎在堆栈中。

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

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

注意RW 而不是RWE 权限。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-16
    • 2012-10-27
    • 2011-09-09
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 2020-05-27
    • 2018-02-09
    相关资源
    最近更新 更多