【问题标题】:Why does linux use two GOT sections in x64? .GOT vs .got.plt为什么 linux 在 x64 中使用两个 GOT 部分? .GOT 与 .got.plt
【发布时间】:2020-06-07 19:22:42
【问题描述】:

我正在尝试找出这两个部分之间的区别,这似乎与question 重复,但那里给出的答案并没有解释太多,所以我想要更详细的和简洁的解释。

【问题讨论】:

    标签: linux x86 x86-64 elf got


    【解决方案1】:

    拆分是出于安全原因。默认情况下(过去只在-Wl,-z,relro 下).got 部分被重新映射为只读,一旦动态加载器在启动时解决了所有数据重定位(即在进入main 函数之前)以防止some types of exploits。由于lazy symbol binding.got.plt 无法重新映射(除非使用了LD_BIND_NOW-Wl,-z,now,在这种情况下惰性绑定被关闭并且.got.plt 也被重新映射)。

    【讨论】:

      猜你喜欢
      • 2012-07-25
      • 1970-01-01
      • 2017-08-20
      • 2015-12-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多