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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
.*
Disassembly of section \.plt:
00009000 <\.plt>:
9000: e52de004 push {lr} ; \(str lr, \[sp, #-4\]!\)
9004: e59fe004 ldr lr, \[pc, #4\] ; 9010 <f3-0x1c>
9008: e08fe00e add lr, pc, lr
900c: e5bef008 ldr pc, \[lr, #8\]!
#------------------------------------------------------------------------------
#------ PC-relative offset of .got.plt
#------------------------------------------------------------------------------
9010: 00007ff0 \.word 0x00007ff0
#------------------------------------------------------------------------------
#------ f2's .plt entry
#------------------------------------------------------------------------------
9014: e28fc600 add ip, pc, #0, 12
9018: e28cca07 add ip, ip, #28672 ; 0x7000
901c: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0
Disassembly of section \.iplt:
00009020 <f3-0xc>:
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
9020: e28fc600 add ip, pc, #0, 12
9024: e28cca07 add ip, ip, #28672 ; 0x7000
9028: e5bcffe8 ldr pc, \[ip, #4072\]! ; 0xfe8
0000902c <f3>:
902c: e28fc600 add ip, pc, #0, 12
9030: e28cca07 add ip, ip, #28672 ; 0x7000
9034: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0
Disassembly of section \.text:
0000a000 <f1>:
a000: e1a0f00e mov pc, lr
a004: e1a0f00e mov pc, lr
0000a008 <_start>:
a008: eb0017fc bl 10000 <foo>
a00c: e59f400c ldr r4, \[pc, #12\] ; a020 <_start\+0x18>
a010: e59f400c ldr r4, \[pc, #12\] ; a024 <_start\+0x1c>
a014: e59f400c ldr r4, \[pc, #12\] ; a028 <_start\+0x20>
a018: e59f400c ldr r4, \[pc, #12\] ; a02c <_start\+0x24>
a01c: e59f500c ldr r5, \[pc, #12\] ; a030 <_start\+0x28>
#------------------------------------------------------------------------------
#------ foo
#------------------------------------------------------------------------------
a020: 00010000 \.word 0x00010000
#------------------------------------------------------------------------------
#------ PC-relative offset of foo
#------------------------------------------------------------------------------
a024: 00005fdc \.word 0x00005fdc
#------------------------------------------------------------------------------
#------ GP-relative offset of foo
#------------------------------------------------------------------------------
a028: fffff000 \.word 0xfffff000
#------------------------------------------------------------------------------
#------ .got offset for foo
#------------------------------------------------------------------------------
a02c: 00000020 \.word 0x00000020
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for foo
#------------------------------------------------------------------------------
a030: 00006fe8 \.word 0x00006fe8
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a034: ebfffbf9 bl 9020 <f3-0xc>
a038: e59f400c ldr r4, \[pc, #12\] ; a04c <_start\+0x44>
a03c: e59f400c ldr r4, \[pc, #12\] ; a050 <_start\+0x48>
a040: e59f400c ldr r4, \[pc, #12\] ; a054 <_start\+0x4c>
a044: e59f400c ldr r4, \[pc, #12\] ; a058 <_start\+0x50>
a048: e59f500c ldr r5, \[pc, #12\] ; a05c <_start\+0x54>
#------------------------------------------------------------------------------
#------ f1's .iplt entry
#------------------------------------------------------------------------------
a04c: 00009020 \.word 0x00009020
#------------------------------------------------------------------------------
#------ PC-relative offset of f1's .iplt entry
#------------------------------------------------------------------------------
a050: ffffefd0 \.word 0xffffefd0
#------------------------------------------------------------------------------
#------ GP-relative offset of f1's .iplt entry
#------------------------------------------------------------------------------
a054: ffff8020 \.word 0xffff8020
#------------------------------------------------------------------------------
#------ .got offset for f1's .iplt entry
#------------------------------------------------------------------------------
a058: 0000001c \.word 0x0000001c
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f1's .iplt entry
#------------------------------------------------------------------------------
a05c: 00006fc0 \.word 0x00006fc0
#------------------------------------------------------------------------------
#------ f2's .plt entry
#------------------------------------------------------------------------------
a060: ebfffbeb bl 9014 <f3-0x18>
a064: e59f400c ldr r4, \[pc, #12\] ; a078 <_start\+0x70>
a068: e59f400c ldr r4, \[pc, #12\] ; a07c <_start\+0x74>
a06c: e59f400c ldr r4, \[pc, #12\] ; a080 <_start\+0x78>
a070: e59f400c ldr r4, \[pc, #12\] ; a084 <_start\+0x7c>
a074: e59f500c ldr r5, \[pc, #12\] ; a088 <_start\+0x80>
#------------------------------------------------------------------------------
#------ f2's .plt entry
#------------------------------------------------------------------------------
a078: 00009014 \.word 0x00009014
#------------------------------------------------------------------------------
#------ PC-relative offset of f2's .plt entry
#------------------------------------------------------------------------------
a07c: ffffef98 \.word 0xffffef98
#------------------------------------------------------------------------------
#------ GP-relative offset of f2's .plt entry
#------------------------------------------------------------------------------
a080: ffff8014 \.word 0xffff8014
#------------------------------------------------------------------------------
#------ .got offset for f2
#------------------------------------------------------------------------------
a084: 00000028 \.word 0x00000028
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f2
#------------------------------------------------------------------------------
a088: 00006fa0 \.word 0x00006fa0
a08c: ebfffbe6 bl 902c <f3>
a090: e59f400c ldr r4, \[pc, #12\] ; a0a4 <_start\+0x9c>
a094: e59f400c ldr r4, \[pc, #12\] ; a0a8 <_start\+0xa0>
a098: e59f400c ldr r4, \[pc, #12\] ; a0ac <_start\+0xa4>
a09c: e59f400c ldr r4, \[pc, #12\] ; a0b0 <_start\+0xa8>
a0a0: e59f500c ldr r5, \[pc, #12\] ; a0b4 <_start\+0xac>
#------------------------------------------------------------------------------
#------ f3
#------------------------------------------------------------------------------
a0a4: 0000902c \.word 0x0000902c
#------------------------------------------------------------------------------
#------ PC-relative offset of f3
#------------------------------------------------------------------------------
a0a8: ffffef84 \.word 0xffffef84
#------------------------------------------------------------------------------
#------ GP-relative offset of f3
#------------------------------------------------------------------------------
a0ac: ffff802c \.word 0xffff802c
#------------------------------------------------------------------------------
#------ .got offset for f3
#------------------------------------------------------------------------------
a0b0: 00000024 \.word 0x00000024
#------------------------------------------------------------------------------
#------ PC-relative offset of .got entry for f3
#------------------------------------------------------------------------------
a0b4: 00006f70 \.word 0x00006f70
|