为什么堆栈程序段具有可执行属性

时间:2013-03-31 14:46:34

标签: linux elf

这是来自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。

1 个答案:

答案 0 :(得分:1)

  

命令:gcc test.c

尝试gcc test.c -Wl,-z,noexecstack

这应该是任何合理的现代发行版的默认值。