gpt4 book ai didi

compilation - 为什么 ELF 可执行文件有一个固定的加载地址?

转载 作者:行者123 更新时间:2023-12-03 15:38:39 24 4
gpt4 key购买 nike

ELF 可执行文件具有固定的加载地址(32 位 x86 Linux 二进制文件上为 0x804800,64 位 x86_64 二进制文件上为 0x40000)。

我阅读了有关这些特定地址的历史原因的 SO 答案(例如, this one )。我仍然不明白的是为什么要使用固定的加载地址而不是随机的地址(给定一些范围内要随机化)?

最佳答案

why to use a fixed load address and not a randomized one


  • 传统上,这就是可执行文件的工作方式。如果你想要一个随机加载地址,构建一个 PIE二进制(这实际上是其中包含启动代码的共享库的特例)与 -fPIE并链接到 -pie标志。
  • -fPIE 建筑引入运行时开销,在某些情况下性能下降高达 10%,如果您有一个大型集群或者您需要最后一点性能,这可能是无法容忍的。
  • 关于compilation - 为什么 ELF 可执行文件有一个固定的加载地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549972/

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