【发布时间】:2018-05-05 11:29:48
【问题描述】:
在启用 ASLR 的 Linux 中,用户堆栈地址所在的地址范围是否存在?堆,指令地址(文本部分)呢? 一般来说,是否可以查看地址并判断它是用于数据还是用于代码?
编辑: 我正在尝试编写一个 Pintool,它在返回后查看 EIP 并检查 EIP 是否指向数据区域。假设此系统上未启用 NX。
由于某种原因,这被否决了。幸运的是,可以在这里找到答案: https://security.stackexchange.com/questions/185315/stack-location-range-on-linux-for-user-process/185330#185330
【问题讨论】:
-
您想用这些信息解决什么问题?为什么程序会关心使用了哪些地址范围?您是否正在尝试编写绕过 ASLR 的漏洞利用程序?
-
不,实际上恰恰相反:-)。我正在尝试编写一个 Pintool,它在返回后查看 EIP 并检查 EIP 是否指向数据区域。假设此系统上未启用 NX。
-
为什么投反对票?请解释一下。
-
我没有投反对票,但您应该阅读 [how-to-ask] 以了解如何写出好问题。您需要编写一些无法正常工作的代码,因此我们可以帮助您修复它。关于Linux设计的问题Unix & Linux比较合适。
-
@Barmar,实际上,我相信在这种情况下,无需查看代码就可以提供建议。请参阅“security.stackexchange.com/questions/185315/…”。我在那里问过同样的问题,并收到了有用的答复。我将在此处对答案链接进行编辑。
标签: linux stack-overflow