我使用的是 32 位 x86 Ubuntu 桌面。我查看了 /proc/[pid]/mmaps,发现堆栈基地址总是在变化(例如,在以下情况下为 0xbfe76000)。所以我猜内核(或 ELF 加载器)必须在每次进程启动时随机化堆栈位置。
我想知道堆栈基地址随机化的确切代码(在内核或 ELF 加载器中)是什么/在哪里。因为我想在 0xC0000000 正下方分配(例如通过 mmap)几页,我只是不确定堆栈是否有可能位于,比如 0xbffff000。谢谢!
... ...
b7762000-b7763000 rw-p 00020000 fc:00 1188263 /lib/i386-linux-gnu/ld-2.19.so
bfe55000-bfe76000 rw-p 00000000 00:00 0 [stack]