ELF文件入口地址

ELF文件的入口地址实际为代码段(文本段)的起始地址。用readelf可以查看elf文件的信息,其中包含入口地址信息:

 

$ readelf -h a.out

ELF Header:

  Magic:   7f 45 4c 46 01 01 01 00 00 00 00 00 00 00 00 00 

  Class:                             ELF32

  Data:                              2's complement, little endian

  Version:                           1 (current)

  OS/ABI:                            UNIX - System V

  ABI Version:                       0

  Type:                              EXEC (Executable file)

  Machine:                           Intel 80386

  Version:                           0x1

  Entry point address:               0x8048390

  Start of program headers:          52 (bytes into file)

  Start of section headers:          3548 (bytes into file)

  Flags:                             0x0

  Size of this header:               52 (bytes)

  Size of program headers:           32 (bytes)

  Number of program headers:         7

  Size of section headers:           40 (bytes)

  Number of section headers:         36

  Section header string table index: 33

 

这里显示入口地址为0x804390。objdump可以elf文件的符号信息:

$ objdump -t a.out | sort

080482e4 g     F .init  00000000              _init

080482e4 l    d  .init  00000000              .init

08048314 l    d  .plt   00000000              .plt

08048390 g     F .text  00000000              _start

08048390 l    d  .text  00000000              .text

080483c0 l     F .text  00000000              __do_global_dtors_aux

080483f0 l     F .text  00000000              frame_dummy

08048414 g     F .text  000000a1              main

 

这里可以看到0x8048390对应的标号为start,即text段的开始处。另外,下面有c中main的符号,这说明gcc将main插入到代码段开始位置。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值