gpt4 book ai didi

ios - 在 MacOS X 和 iOS 中 ASLR 到底随机化了什么

转载 作者:技术小花猫 更新时间:2023-10-29 10:32:28 25 4
gpt4 key购买 nike

有没有人有指向最新 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);

}

在 mountain lion 上,这会产生:

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 位十六进制数字所暗示的那样) .

  • 内核:从 Mountain Lion 和 iOS6 开始,内核通过在加载时使用 vm_kernel_slide 值“滑动”来随机化。并非所有 vm 页面都以这种方式滑动,但在大多数情况下,这是通过存储一些常量值(也可以通过系统调用 #439,kas_info 读取的,在 ML 而不是在 iOS 上读取:Apple 正在努力保持随机化值 secret ,并且在报告内核地址时不会泄露它,因此越狱者不会弄清楚他们可以跳转到/覆盖的位置 - 这在大多数情况下都适用)

希望对您有所帮助,

TG

关于ios - 在 MacOS X 和 iOS 中 ASLR 到底随机化了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12824045/

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