use*_*352 5 linux executable linux-kernel aslr
据我了解:
CPU 上有一个内存管理单元,用于控制对实际内存的访问。任何内存调用都流经这个单元,它将虚拟地址转换为实际内存地址。这允许计算机在 64 位机器上拥有 2^64 字节的虚拟内存空间。当没有足够的 RAM 时,CPU 或 MMU 会在需要时从磁盘交换页面进出。
Linux 上的 ELF 二进制文件包含一个标头,其中列出了二进制文件中二进制文件部分的地址(以及其他信息),其中包括代码部分和数据部分等。
ELF 标头还指定需要哪些共享库。它们由内核存储在内存中,当执行二进制文件时,它们的地址由内核提供给进程。
所以我更具体的问题是,作为 ASLR 的一部分,二进制文件和堆和堆栈的所有部分是否都从基位置随机偏移?
(对不起,如果其中任何一个是非常错误的,我在汇编/C/C++ 编程方面不是很有经验,并试图弄清楚二进制可执行文件如何工作的较小细节。)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |