有没有人有一个文档的链接,在最新的 Mac OS (10.7) 和 iOS (6.0) 的什么情况下究竟是随机的?
我是说。我想看一个列表(类似)
代码段(在 A、B、C 的情况下)
堆栈(总是)
堆
数据段(从不)
最好每个事物具有多少位随机化。
我能找到的只是:“MacOS Lion 实现了完整的 ASLR”,而在其他地方,“完整的 ASLR 以不同的方式针对不同的操作系统实现”,这显然不是很丰富。
您可以轻松生成您要查找的列表,如下所示:
int global_j = 0;
void main ()
{
char *h = malloc(10);
int j = 0;
printf ("Globals are : %p, text is %p, stack is %p, heap is %p\n",
&global_j, main, &j, h);
}
在山狮上,这会产生:
bash-3.2# ./a
Globals are : 0x10fa55020, text is 0x10fa54eb0, stack is 0x7fff501ab864, heap is 0x7f9b294000e0
bash-3.2# ./a
Globals are : 0x106bbe020, text is 0x106bbdeb0, stack is 0x7fff59042864, heap is 0x7f9752c000e0
bash-3.2# ./a
Globals are : 0x108673020, text is 0x108672eb0, stack is 0x7fff5758d864, heap is 0x7fecc34000e0
bash-3.2# ./a
Globals are : 0x1059d2020, text is 0x1059d1eb0, stack is 0x7fff5a22e864, heap is 0x7f8f81c000e0
显示充分的随机化(请注意,由于对齐限制,页面内的偏移量不会随机化,但您仍然会得到一些 16-20 位随机化,正如 4-5 十六进制数字变化所暗示的那样)。
希望这可以帮助,
TG
没有馅饼:
可执行 - 已修复
数据 - 固定
堆 - 每次执行随机化
堆栈 - 固定
库 - 每个设备启动随机
链接器 - 已修复
使用馅饼:
可执行文件 - 每次执行随机
数据 - 每次执行随机
堆 - 每次执行随机化(更多熵)
堆栈 - 每次执行随机化
库 - 每个设备启动随机
链接器 - 每次执行随机化