这是来自a.out的转储
STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2
filesz 0x00000000 memsz 0x00000000 flags rwx
为什么堆栈段具有可执行属性?
为什么没有带有rw-属性的堆段?
//在ubuntu 32bit机器上。程序是一个简单的问候世界。
命令:
ld test.o startup.s; objdump -dhSxt -M intel-pneumonic a.out
//startup.s有一个带有_start符号的小型汇编代码,它在main返回后调用main和exit。
答案 0 :(得分:1)
命令:gcc test.c
尝试gcc test.c -Wl,-z,noexecstack
。
这应该是任何合理的现代发行版的默认值。