如果ASLR在IOS中发挥作用,随机化了heap的起始地址,那么如何从pid中获取当前进程和其他进程的heap的起始地址呢?
在随论文提供的 aslr.c 中:“iOS 内核开发”,似乎您试图获取当前进程的堆代码的起始地址自爆。
void* heap = malloc(0);
我测试了代码,发现返回值都不一样。根据 ISO/IEC 9899:TC2(即 C99 标准),§7.20.3 规定:
如果请求的空间大小为零,则行为是实现定义的:要么返回空指针,要么行为好像大小是某个非零值,但返回的指针不应用于访问对象.