【发布时间】:2020-04-20 08:45:35
【问题描述】:
【问题讨论】:
-
可能页面没有执行权限?
-
我如何检查这个?
-
抱歉,我只能帮到你了。
标签: c gdb reverse-engineering
【问题讨论】:
标签: c gdb reverse-engineering
但是当程序返回第一个 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。
【讨论】: