gpt4 book ai didi

linux - Linux 中使用 ASLR 的堆栈位置

转载 作者:太空宇宙 更新时间:2023-11-04 04:54:47 25 4
gpt4 key购买 nike

在Linux中,启用ASLR后,用户堆栈地址是否存在一个地址范围?堆、指令地址(文本部分)怎么样?一般来说,是否可以通过查看地址来判断它是用于数据还是用于代码?

编辑:我正在尝试编写一个 Pintool,它在返回后查看 EIP 并检查 EIP 是否指向数据区域。我们假设该系统上未启用 NX。

由于某种原因,这被否决了。幸运的是,可以在这里找到答案: https://security.stackexchange.com/questions/185315/stack-location-range-on-linux-for-user-process/185330#185330

最佳答案

cat/proc/self/maps 将显示主线程堆栈的初始位置。由于(至少)以下原因,这可能不准确:

  • 您不在主线程中
  • 程序的任何部分都是使用-fsplit-stack选项构建的,或者您调用一个执行类似操作的库
  • 您所在的信号处理程序会请求 sigaltstack 堆栈
  • 你使用奇怪的分配技巧,就像 CHICKEN Schedule 那样将堆栈用作堆
  • ...
<小时/>

另请注意,一般区域并非完全随机。请参阅 AddressSanitizer 项目以了解利用此功能的内容。

关于linux - Linux 中使用 ASLR 的堆栈位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50188914/

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