0

这是来自 a.out 的转储

STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**2 filesz 0x00000000 memsz 0x00000000 flags rwx

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

为什么没有具有 rw- 属性的堆段?

//在 ubuntu 32 位机器上。程序是一个简单的hello world。

命令: ld test.o startup.s; objdump -dhSxt -M intel-pneumonic a.out //startup.s 有一个带有 _start 符号的小汇编代码,它调用 main 并在 main 返回后退出。

4

1 回答 1

1

命令:gcc test.c

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

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

于 2013-03-31T16:54:17.227 回答