假设我有一个正在运行的程序,我查看BSD中的/proc/[pid]/map (或 linux 中的/proc/[pid]/maps),我会看到如下一行:
0xbfbe0000 0xbfc00000 3 0 0xc74c4198 rwx 1 0 0x3000 COW NNC default - CH 1001
这是堆栈。我所有的 PC-BSD 程序都使用相同的堆栈边界 0xbfc00000。在 Linux 上,关闭 ASLR 后,也会发生类似的事情。
我想在某些程序上使用这些设置,但堆栈似乎甚至没有在 elf 程序头或节头中指定。
因此,如果我想更改设置,例如:
- 更改堆栈的执行权限
- 将堆栈边界设置为另一个值
有没有办法更改单个程序的“堆栈设置”?系统范围如何?