0
A
回答
10
是的。
但是请注意,在fork
之后,父母和孩子都应用相同的随机化(毕竟他们是彼此的副本!)。
如果孩子和父母打电话给mmap(NULL, ...)
,然后他们的地址映射将开始发散。
更新:
是不是你的说法矛盾吗?
根本不是。紧接在fork
之后,父地址和子地址空间是相同的(这就是fork
所做的定义)。但是ASLR对父母和孩子仍然有效。随机化不能“及时回溯”并随机化已经做出的决定,但是任何未来的决定(例如何处放置下一个mmap
)将随机化,并且可能导致父母和孩子的不同结果。
它是否与基本的mmap或操作系统编写者在mmap中引入随机性以及安全性有关?
也许你不明白什么是ASLR?
总之,使用ASLR时,操作系统将为r andomize placement of main stack, and placement of any non-MAP_FIXED
mmaps。
当你fork
,主要的堆放置已经确定,所以父母和孩子将有相同的。未来mmap
是唯一可以(也将会)受ASLR影响的事情。
相关问题
- 1. 什么是地址空间布局随机化
- 2. 地址空间布局随机化(ALSR)和mmap
- 3. 什么是进程的地址空间?
- 4. 虚拟地址系统上的进程地址空间
- 5. linux内核的内核地址空间的布局是什么?
- 6. 警告:错误禁用地址空间随机化:操作不允许
- 7. 地址空间库或进程
- 8. 进程的内存地址空间
- 9. Actionscript中的程序化砌体/空间布局布局
- 10. 如何随机化布局的Android
- 11. TCP Buffer是否在进程内存的地址空间?
- 12. 在空布局jframe上布局布局
- 13. 基地址随机化的目的
- 14. Android蓝牙LE MAC地址随机化
- 15. Linux进程虚拟地址空间的地址范围
- 16. 在群集上分布式随机
- 17. DLL在进程地址空间中使用的页面
- 18. 随机布局算法
- 19. 随机平铺布局
- 20. WinForms布局随机搞砸
- 21. 分叉进程
- 22. 在Bash中随机分布
- 23. 是整个过程的虚拟地址空间分割成页
- 24. 二叉树是二叉搜索树,如果树分布在多台机器上
- 25. 在Linux用户空间进程中,vsyscall页面的地址是什么?
- 26. 随机OSC地址pyOSC
- 27. 随机内存地址
- 28. 线程在别人的地址空间
- 29. 变量在c程序中变化的地址空间
- 30. DNS的IP地址是否随时间而变化?
你先说是,然后说他们会一样。你的言论是不是矛盾?还是你的意思是父进程的地址布局将在fork调用时动态地改变以匹配分叉进程的那一个?看起来不太可能。为什么mmap使他们分歧?这是否与基本的mmap或操作系统作家在mmap中引入了随机性以及安全性? – MetallicPriest
@MetallicPriest:孩子与父母具有相同的随机化:即使两个进程都以相同的内存映射开始,该内存映射也是随机的。在不同的规模上,'preload -r'设置库的随机预加载地址,每次加载库时加载器都会尝试加载它在相同的地址,但该地址仍然是随机的(并且与具有相同地址的其他系统不同发行版)。 – ninjalj
接受完整而有礼貌的答案让我感觉很好。 – gnometorule