Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .interp PROGBITS 08048134 000134 000013 00 A 0 0 1
[ 2] .note.ABI-tag NOTE 08048148 000148 000020 00 A 0 0 4
[ 3] .note.gnu.build-i NOTE 08048168 000168 000024 00 A 0 0 4
[ 4] .gnu.hash GNU_HASH 0804818c 00018c 00003c 04 A 5 0 4
[ 5] .dynsym DYNSYM 080481c8 0001c8 0000e0 10 A 6 1 4
[ 6] .dynstr STRTAB 080482a8 0002a8 0000b1 00 A 0 0 1
[ 7] .gnu.version VERSYM 0804835a 00035a 00001c 02 A 5 0 2
[ 8] .gnu.version_r VERNEED 08048378 000378 000020 00 A 6 1 4
[ 9] .rel.dyn REL 08048398 000398 000008 08 A 5 0 4
[10] .rel.plt REL 080483a0 0003a0 000028 08 A 5 12 4
[11] .init PROGBITS 080483c8 0003c8 000030 00 AX 0 0 4
[12] .plt PROGBITS 080483f8 0003f8 000060 04 AX 0 0 4
[13] .text PROGBITS 08048460 000460 00021c 00 AX 0 0 16
[14] .fini PROGBITS 0804867c 00067c 00001c 00 AX 0 0 4
[15] .rodata PROGBITS 08048698 000698 000088 00 A 0 0 4
[16] .eh_frame_hdr PROGBITS 08048720 000720 00001c 00 A 0 0 4
[17] .eh_frame PROGBITS 0804873c 00073c 000058 00 A 0 0 4
[18] .ctors PROGBITS 08049794 000794 000008 00 WA 0 0 4
[19] .dtors PROGBITS 0804979c 00079c 000008 00 WA 0 0 4
[20] .jcr PROGBITS 080497a4 0007a4 000004 00 WA 0 0 4
[21] .dynamic DYNAMIC 080497a8 0007a8 0000d0 08 WA 6 0 4
[22] .got PROGBITS 08049878 000878 000004 04 WA 0 0 4
[23] .got.plt PROGBITS 0804987c 00087c 000020 04 WA 0 0 4
[24] .data PROGBITS 0804989c 00089c 000008 00 WA 0 0 4
[25] .bss NOBITS 080498a4 0008a4 000008 00 WA 0 0 4
[26] .comment PROGBITS 00000000 0008a4 00013b 00 0 0 1
[27] .shstrtab STRTAB 00000000 0009df 0000fc 00 0 0 1
[28] .symtab SYMTAB 00000000 000f8c 000480 10 29 46 4
[29] .strtab STRTAB 00000000 00140c 00025d 00 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
看一下hello的符号表
[root@localhost mhello]# readelf -s hello
Symbol table '.dynsym' contains 14 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 00000000 4 OBJECT GLOBAL DEFAULT UND var_public_file_b
2: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
3: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
4: 00000000 451 FUNC GLOBAL DEFAULT UND __libc_start_main@GLIBC_2.0 (2)
5: 00000000 54 FUNC GLOBAL DEFAULT UND printf@GLIBC_2.0 (2)
6: 00000000 460 FUNC GLOBAL DEFAULT UND puts@GLIBC_2.0 (2)
7: 00000000 96 FUNC GLOBAL DEFAULT UND func_file_b
8: 080498ac 0 NOTYPE GLOBAL DEFAULT ABS _end
9: 080498a4 0 NOTYPE GLOBAL DEFAULT ABS _edata
10: 0804869c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used
11: 080498a4 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
12: 080483c8 0 FUNC GLOBAL DEFAULT 11 _init
13: 0804867c 0 FUNC GLOBAL DEFAULT 14 _fini
Symbol table '.symtab' contains 72 entries:
Num: Value Size Type Bind Vis Ndx Name
0: 00000000 0 NOTYPE LOCAL DEFAULT UND
1: 08048134 0 SECTION LOCAL DEFAULT 1
2: 08048148 0 SECTION LOCAL DEFAULT 2
3: 08048168 0 SECTION LOCAL DEFAULT 3
4: 0804818c 0 SECTION LOCAL DEFAULT 4
5: 080481c8 0 SECTION LOCAL DEFAULT 5
6: 080482a8 0 SECTION LOCAL DEFAULT 6
7: 0804835a 0 SECTION LOCAL DEFAULT 7
8: 08048378 0 SECTION LOCAL DEFAULT 8
9: 08048398 0 SECTION LOCAL DEFAULT 9
10: 080483a0 0 SECTION LOCAL DEFAULT 10
11: 080483c8 0 SECTION LOCAL DEFAULT 11
12: 080483f8 0 SECTION LOCAL DEFAULT 12
13: 08048460 0 SECTION LOCAL DEFAULT 13
14: 0804867c 0 SECTION LOCAL DEFAULT 14
15: 08048698 0 SECTION LOCAL DEFAULT 15
16: 08048720 0 SECTION LOCAL DEFAULT 16
17: 0804873c 0 SECTION LOCAL DEFAULT 17
18: 08049794 0 SECTION LOCAL DEFAULT 18
19: 0804979c 0 SECTION LOCAL DEFAULT 19
20: 080497a4 0 SECTION LOCAL DEFAULT 20
21: 080497a8 0 SECTION LOCAL DEFAULT 21
22: 08049878 0 SECTION LOCAL DEFAULT 22
23: 0804987c 0 SECTION LOCAL DEFAULT 23
24: 0804989c 0 SECTION LOCAL DEFAULT 24
25: 080498a4 0 SECTION LOCAL DEFAULT 25
26: 00000000 0 SECTION LOCAL DEFAULT 26
27: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
28: 08049794 0 OBJECT LOCAL DEFAULT 18 __CTOR_LIST__
29: 0804979c 0 OBJECT LOCAL DEFAULT 19 __DTOR_LIST__
30: 080497a4 0 OBJECT LOCAL DEFAULT 20 __JCR_LIST__
31: 08048490 0 FUNC LOCAL DEFAULT 13 __do_global_dtors_aux
32: 080498a4 1 OBJECT LOCAL DEFAULT 25 completed.5699
33: 080498a8 4 OBJECT LOCAL DEFAULT 25 dtor_idx.5701
34: 080484f0 0 FUNC LOCAL DEFAULT 13 frame_dummy
35: 00000000 0 FILE LOCAL DEFAULT ABS crtstuff.c
36: 08049798 0 OBJECT LOCAL DEFAULT 18 __CTOR_END__
37: 08048790 0 OBJECT LOCAL DEFAULT 17 __FRAME_END__
38: 080497a4 0 OBJECT LOCAL DEFAULT 20 __JCR_END__
39: 08048650 0 FUNC LOCAL DEFAULT 13 __do_global_ctors_aux
40: 00000000 0 FILE LOCAL DEFAULT ABS hello.c
41: 00000000 0 FILE LOCAL DEFAULT ABS file_a.c
42: 0804987c 0 OBJECT LOCAL HIDDEN 23 _GLOBAL_OFFSET_TABLE_
43: 08049794 0 NOTYPE LOCAL HIDDEN 18 __init_array_end
44: 08049794 0 NOTYPE LOCAL HIDDEN 18 __init_array_start
45: 080497a8 0 OBJECT LOCAL HIDDEN 21 _DYNAMIC
46: 0804989c 0 NOTYPE WEAK DEFAULT 24 data_start
47: 080485e0 5 FUNC GLOBAL DEFAULT 13 __libc_csu_fini
48: 08048460 0 FUNC GLOBAL DEFAULT 13 _start
49: 00000000 4 OBJECT GLOBAL DEFAULT UND var_public_file_b
50: 00000000 0 NOTYPE WEAK DEFAULT UND __gmon_start__
51: 00000000 0 NOTYPE WEAK DEFAULT UND _Jv_RegisterClasses
52: 08048698 4 OBJECT GLOBAL DEFAULT 15 _fp_hw
53: 0804867c 0 FUNC GLOBAL DEFAULT 14 _fini
54: 0804857c 96 FUNC GLOBAL DEFAULT 13 func_file_a
55: 00000000 451 FUNC GLOBAL DEFAULT UND __libc_start_main@@GLIBC_
56: 0804869c 4 OBJECT GLOBAL DEFAULT 15 _IO_stdin_used
57: 0804989c 0 NOTYPE GLOBAL DEFAULT 24 __data_start
58: 080498a0 4 OBJECT GLOBAL DEFAULT 24 var_public_file_a
59: 080486a0 0 OBJECT GLOBAL HIDDEN 15 __dso_handle
60: 080497a0 0 OBJECT GLOBAL HIDDEN 19 __DTOR_END__
61: 080485f0 90 FUNC GLOBAL DEFAULT 13 __libc_csu_init
62: 00000000 54 FUNC GLOBAL DEFAULT UND printf@@GLIBC_2.0
63: 080498a4 0 NOTYPE GLOBAL DEFAULT ABS __bss_start
64: 08048514 20 FUNC GLOBAL DEFAULT 13 func_hello
65: 080498ac 0 NOTYPE GLOBAL DEFAULT ABS _end
66: 00000000 460 FUNC GLOBAL DEFAULT UND puts@@GLIBC_2.0
67: 080498a4 0 NOTYPE GLOBAL DEFAULT ABS _edata
68: 00000000 96 FUNC GLOBAL DEFAULT UND func_file_b
69: 0804864a 0 FUNC GLOBAL HIDDEN 13 __i686.get_pc_thunk.bx
70: 08048528 84 FUNC GLOBAL DEFAULT 13 main
71: 080483c8 0 FUNC GLOBAL DEFAULT 11 _init
看一下hello的重定位表
[root@localhost mhello]# readelf -r hello
Relocation section '.rel.dyn' at offset 0x398 contains 1 entries:
Offset Info Type Sym.Value Sym. Name
08049878 00000206 R_386_GLOB_DAT 00000000 __gmon_start__
Relocation section '.rel.plt' at offset 0x3a0 contains 5 entries:
Offset Info Type Sym.Value Sym. Name
08049888 00000207 R_386_JUMP_SLOT 00000000 __gmon_start__
0804988c 00000407 R_386_JUMP_SLOT 00000000 __libc_start_main
08049890 00000507 R_386_JUMP_SLOT 00000000 printf
08049894 00000607 R_386_JUMP_SLOT 00000000 puts
08049898 00000707 R_386_JUMP_SLOT 00000000 func_file_b