[ELF文件] 可执行文件

本文分析了ELF可执行文件的结构变化,包括ELF Header的更新、Section Header Table的调整、Program Header Table的新增以及Segment和内存加载地址的设定。通过链接,.text和.data段的加载地址改变,.bss和.rela.text段被删除。同时,讨论了相对跳转和绝对跳转在指令中的应用,以及如何依据.rela.text段进行重定位。
摘要由CSDN通过智能技术生成

现在我们接着上次的步骤分析可执行文件 largest,看看链接器都做了什么改动。

[test@localhost Assembler]$ readelf -a largest
ELF 头:
  Magic:  7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  Class:                             ELF64
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              EXEC (可执行文件)
  Machine:                           Advanced Micro Devices X86-64
  Version:                           0x1
  入口点地址:              0x4000b0
  程序头起点:              64 (bytes into file)
  Start of section headers:          664 (bytes into file)
  标志:             0x0
  本头的大小:       64 (字节)
  程序头大小:       56 (字节)
  Number of program headers:         2
  节头大小:         64 (字节)
  节头数量:         6
  字符串表索引节头: 3

节头:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .text             PROGBITS         00000000004000b0  000000b0
       000000000000002d  0000000000000000  AX       0     0     1
  [ 2] .data             PROGBITS         00000000006000dd  000000dd
       0000000000000038  0000000000000000  WA       0     0     1
  [ 3] .shstrtab         STRTAB           0000000000000000  00000115
       0000000000000027  0000000000000000           0     0     1
  [ 4] .symtab           SYMTAB           0000000000000000  00000140
       0000000000000108  0000000000000018     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值