ELF Dissasembly - “.init .text .plt”是什么意思?

ELF Dissasembly - what ".init .text .plt" means?

我正在看我的ELF反汇编,有些行是这样的:

.text:000105e0 00 b0 a0 e3  mov fp, #0
.text:000105e8 04 10 9d e4  pop {r1}; (ldr r1, [sp], #4)

其他人喜欢这样:

.plt:00010568 00 c6 8f e2    add    ip, pc, #0, 12
.plt:0001056c 10 ca 8c e2    add    ip, ip, #16, 20 ; 0x10000

以及其他喜欢的人:

.init:00010544 08 40 2d e9   push   {r3, lr}

反汇编行的.text、.plt 和.init 部分是什么意思?

.init、.text 和.plt 是链接器部分。

  1. .init 包含启动代码
  2. .text 包含程序代码
  3. .plt 用于在链接时调用地址未知的函数(但会在 运行 时由动态链接器解析)

此外还有许多其他可能的部分包含代码、数据或常量。