【发布时间】:2018-04-23 18:53:35
【问题描述】:
考虑在最新的 Ubuntu 16.04 x86_64 系统上运行此代码:
void main(int argc, char *argv[])
{
while(1) {
char *x = (char *)mmap(0, 1000, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
printf("%p\n", x);
munmap(x, 1000);
}
}
谁的输出看起来像这样:
0x7f02ca14c000
0x7f02ca14c000
0x7f02ca14c000
0x7f02ca14c000
...
我已经预料到了,提供了零地址提示,并且全局启用了 ASLR 以在此处获取随机地址。
是否可以在随机地址上 mmap() 匿名共享内存?
【问题讨论】: