gpt4 book ai didi

linux - Linux ASLR 究竟如何随机化堆栈位置

转载 作者:太空狗 更新时间:2023-10-29 11:21:38 28 4
gpt4 key购买 nike

我使用的是 32 位 x86 Ubuntu 桌面。我查看了/proc/[pid]/mmaps,发现堆栈基地址总是在变化(例如,在以下情况中为 0xbfe76000)。所以我猜内核(或 ELF 加载器)必须在每次进程启动时随机化堆栈位置。

我想知道堆栈基地址随机化的确切代码(在内核或 ELF 加载器中)是什么/在哪里。因为我想分配(例如通过 mmap)0xC0000000 下面的几页,我只是不确定堆栈是否有可能位于,比方说,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]

最佳答案

不是直接的答案(ASLR 机制在不同的内核版本中略有改进)。最近的 4.6 内核出现了几次 aslr 字符串。

但是关于您的问题,您可以简单地通过 /proc/self/maps 查询内核以找到堆栈段,然后使用 MAP_FIXED 标志来 mmap 映射这些段之外的内容。

关于linux - Linux ASLR 究竟如何随机化堆栈位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37328249/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com