1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
ELF Header:
Magic: 7f 45 4c 46 02 01 01 03 00 00 00 00 00 00 00 00
Class: ELF64
Data: 2's complement, little endian
Version: 1 (current)
OS/ABI: UNIX - GNU
ABI Version: 0
Type: DYN (Shared object file)
Machine: Advanced Micro Devices X86-64
Version: 0x1
Entry point address: 0x1f4f0
Start of program headers: 64 (bytes into file)
Start of section headers: 235080 (bytes into file)
Flags: 0x0
Size of this header: 64 (bytes)
Size of program headers: 56 (bytes)
Number of program headers: 11
Size of section headers: 64 (bytes)
Number of section headers: 24
Section header string table index: 23
Section Headers:
[Nr] Name Type Address Offset
Size EntSize Flags Link Info Align
[ 0] NULL 0000000000000000 00000000
0000000000000000 0000000000000000 0 0 0
[ 1] .note.gnu.pr[...] NOTE 00000000000002a8 000002a8
0000000000000020 0000000000000000 A 0 0 8
[ 2] .note.gnu.bu[...] NOTE 00000000000002c8 000002c8
0000000000000024 0000000000000000 A 0 0 4
[ 3] .hash HASH 00000000000002f0 000002f0
000000000000013c 0000000000000004 A 5 0 8
[ 4] .gnu.hash GNU_HASH 0000000000000430 00000430
0000000000000160 0000000000000000 A 5 0 8
[ 5] .dynsym DYNSYM 0000000000000590 00000590
00000000000003c0 0000000000000018 A 6 1 8
[ 6] .dynstr STRTAB 0000000000000950 00000950
00000000000002ca 0000000000000000 A 0 0 1
[ 7] .gnu.version VERSYM 0000000000000c1a 00000c1a
0000000000000050 0000000000000002 A 5 0 2
[ 8] .gnu.version_d VERDEF 0000000000000c70 00000c70
00000000000000ec 0000000000000000 A 6 7 8
[ 9] .rela.dyn RELA 0000000000000d60 00000d60
0000000000000048 0000000000000018 A 5 0 8
[10] .relr.dyn RELR 0000000000000da8 00000da8
0000000000000018 0000000000000008 A 0 0 8
[11] .text PROGBITS 0000000000001000 00001000
000000000002a135 0000000000000000 AX 0 0 32
[12] .rodata PROGBITS 000000000002c000 0002c000
00000000000064b0 0000000000000000 A 0 0 32
[13] .stapsdt.base PROGBITS 00000000000324b0 000324b0
0000000000000001 0000000000000000 A 0 0 1
[14] .eh_frame_hdr PROGBITS 00000000000324b4 000324b4
000000000000093c 0000000000000000 A 0 0 4
[15] .eh_frame PROGBITS 0000000000032df0 00032df0
0000000000002aec 0000000000000000 A 0 0 8
[16] .data.rel.ro PROGBITS 0000000000036360 00036360
0000000000001ae8 0000000000000000 WA 0 0 32
[17] .dynamic DYNAMIC 0000000000037e48 00037e48
0000000000000180 0000000000000010 WA 6 0 8
[18] .got PROGBITS 0000000000037fc8 00037fc8
0000000000000028 0000000000000008 WA 0 0 8
[19] .data PROGBITS 0000000000038000 00038000
0000000000001104 0000000000000000 WA 0 0 32
[20] .bss NOBITS 0000000000039110 00039104
00000000000001c8 0000000000000000 WA 0 0 16
[21] .note.stapsdt NOTE 0000000000000000 00039104
000000000000041c 0000000000000000 0 0 4
[22] .gnu_debuglink PROGBITS 0000000000000000 00039520
0000000000000034 0000000000000000 0 0 4
[23] .shstrtab STRTAB 0000000000000000 00039554
00000000000000f2 0000000000000000 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
L (link order), O (extra OS processing required), G (group), T (TLS),
C (compressed), x (unknown), o (OS specific), E (exclude),
R (retain), D (mbind), l (large), p (processor specific)
Program Headers:
Type Offset VirtAddr PhysAddr
FileSiz MemSiz Flags Align
LOAD 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000dc0 0x0000000000000dc0 R 0x1000
LOAD 0x0000000000001000 0x0000000000001000 0x0000000000001000
0x000000000002a135 0x000000000002a135 R E 0x1000
LOAD 0x000000000002c000 0x000000000002c000 0x000000000002c000
0x00000000000098dc 0x00000000000098dc R 0x1000
LOAD 0x0000000000036360 0x0000000000036360 0x0000000000036360
0x0000000000002da4 0x0000000000002f78 RW 0x1000
DYNAMIC 0x0000000000037e48 0x0000000000037e48 0x0000000000037e48
0x0000000000000180 0x0000000000000180 RW 0x8
NOTE 0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
0x0000000000000020 0x0000000000000020 R 0x8
NOTE 0x00000000000002c8 0x00000000000002c8 0x00000000000002c8
0x0000000000000024 0x0000000000000024 R 0x4
GNU_PROPERTY 0x00000000000002a8 0x00000000000002a8 0x00000000000002a8
0x0000000000000020 0x0000000000000020 R 0x8
GNU_EH_FRAME 0x00000000000324b4 0x00000000000324b4 0x00000000000324b4
0x000000000000093c 0x000000000000093c R 0x4
GNU_STACK 0x0000000000000000 0x0000000000000000 0x0000000000000000
0x0000000000000000 0x0000000000000000 RW 0x10
GNU_RELRO 0x0000000000036360 0x0000000000036360 0x0000000000036360
0x0000000000001ca0 0x0000000000001ca0 R 0x1
Section to Segment mapping:
Segment Sections...
00 .note.gnu.property .note.gnu.build-id .hash .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_d .rela.dyn .relr.dyn
01 .text
02 .rodata .stapsdt.base .eh_frame_hdr .eh_frame
03 .data.rel.ro .dynamic .got .data .bss
04 .dynamic
05 .note.gnu.property
06 .note.gnu.build-id
07 .note.gnu.property
08 .eh_frame_hdr
09
10 .data.rel.ro .dynamic .got
Dynamic section at offset 0x37e48 contains 19 entries:
Tag Type Name/Value
0x000000000000000e (SONAME) Library soname: [ld-linux-x86-64.so.2]
0x0000000000000004 (HASH) 0x2f0
0x000000006ffffef5 (GNU_HASH) 0x430
0x0000000000000005 (STRTAB) 0x950
0x0000000000000006 (SYMTAB) 0x590
0x000000000000000a (STRSZ) 714 (bytes)
0x000000000000000b (SYMENT) 24 (bytes)
0x0000000000000007 (RELA) 0xd60
0x0000000000000008 (RELASZ) 72 (bytes)
0x0000000000000009 (RELAENT) 24 (bytes)
0x000000006ffffffc (VERDEF) 0xc70
0x000000006ffffffd (VERDEFNUM) 7
0x000000000000001e (FLAGS) BIND_NOW
0x000000006ffffffb (FLAGS_1) Flags: NOW
0x000000006ffffff0 (VERSYM) 0xc1a
0x0000000000000024 (RELR) 0xda8
0x0000000000000023 (RELRSZ) 24 (bytes)
0x0000000000000025 (RELRENT) 8 (bytes)
0x0000000000000000 (NULL) 0x0