File: elf.py

package info (click to toggle)
drgn 0.1.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 7,852 kB
  • sloc: python: 74,992; ansic: 54,589; awk: 423; makefile: 351; sh: 99
file content (231 lines) | stat: -rw-r--r-- 5,120 bytes parent folder | download | duplicates (2)
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
# Copyright (c) Meta Platforms, Inc. and affiliates.
# SPDX-License-Identifier: LGPL-2.1-or-later
# Generated by scripts/gen_elf_py.py.

import enum


class ET(enum.IntEnum):
    NONE = 0x0
    REL = 0x1
    EXEC = 0x2
    DYN = 0x3
    CORE = 0x4
    NUM = 0x5
    LOOS = 0xFE00
    HIOS = 0xFEFF
    LOPROC = 0xFF00
    HIPROC = 0xFFFF


class PT(enum.IntEnum):
    NULL = 0x0
    LOAD = 0x1
    DYNAMIC = 0x2
    INTERP = 0x3
    NOTE = 0x4
    SHLIB = 0x5
    PHDR = 0x6
    TLS = 0x7
    NUM = 0x8
    LOOS = 0x60000000
    GNU_EH_FRAME = 0x6474E550
    GNU_STACK = 0x6474E551
    GNU_RELRO = 0x6474E552
    GNU_PROPERTY = 0x6474E553
    GNU_SFRAME = 0x6474E554
    LOSUNW = 0x6FFFFFFA
    SUNWBSS = 0x6FFFFFFA
    SUNWSTACK = 0x6FFFFFFB
    HISUNW = 0x6FFFFFFF
    HIOS = 0x6FFFFFFF
    LOPROC = 0x70000000
    HIPROC = 0x7FFFFFFF
    MIPS_REGINFO = 0x70000000
    MIPS_RTPROC = 0x70000001
    MIPS_OPTIONS = 0x70000002
    MIPS_ABIFLAGS = 0x70000003
    PARISC_ARCHEXT = 0x70000000
    PARISC_UNWIND = 0x70000001


class SHF(enum.IntFlag):
    WRITE = 0x1
    ALLOC = 0x2
    EXECINSTR = 0x4
    MERGE = 0x10
    STRINGS = 0x20
    INFO_LINK = 0x40
    LINK_ORDER = 0x80
    OS_NONCONFORMING = 0x100
    GROUP = 0x200
    TLS = 0x400
    COMPRESSED = 0x800
    MASKOS = 0xFF00000
    MASKPROC = 0xF0000000
    GNU_RETAIN = 0x200000
    ORDERED = 0x40000000
    EXCLUDE = 0x80000000
    MIPS_GPREL = 0x10000000
    MIPS_MERGE = 0x20000000
    MIPS_ADDR = 0x40000000
    MIPS_STRINGS = 0x80000000
    MIPS_NOSTRIP = 0x8000000
    MIPS_LOCAL = 0x4000000
    MIPS_NAMES = 0x2000000
    MIPS_NODUPE = 0x1000000
    PARISC_SHORT = 0x20000000
    PARISC_HUGE = 0x40000000
    PARISC_SBP = 0x80000000
    ALPHA_GPREL = 0x10000000
    ARM_ENTRYSECT = 0x10000000
    ARM_COMDEF = 0x80000000
    IA_64_SHORT = 0x10000000
    IA_64_NORECOV = 0x20000000


class SHN(enum.IntEnum):
    UNDEF = 0x0
    LORESERVE = 0xFF00
    LOPROC = 0xFF00
    BEFORE = 0xFF00
    AFTER = 0xFF01
    HIPROC = 0xFF1F
    LOOS = 0xFF20
    HIOS = 0xFF3F
    ABS = 0xFFF1
    COMMON = 0xFFF2
    XINDEX = 0xFFFF
    HIRESERVE = 0xFFFF
    MIPS_ACOMMON = 0xFF00
    MIPS_TEXT = 0xFF01
    MIPS_DATA = 0xFF02
    MIPS_SCOMMON = 0xFF03
    MIPS_SUNDEFINED = 0xFF04
    PARISC_ANSI_COMMON = 0xFF00
    PARISC_HUGE_COMMON = 0xFF01


class SHT(enum.IntEnum):
    NULL = 0x0
    PROGBITS = 0x1
    SYMTAB = 0x2
    STRTAB = 0x3
    RELA = 0x4
    HASH = 0x5
    DYNAMIC = 0x6
    NOTE = 0x7
    NOBITS = 0x8
    REL = 0x9
    SHLIB = 0xA
    DYNSYM = 0xB
    INIT_ARRAY = 0xE
    FINI_ARRAY = 0xF
    PREINIT_ARRAY = 0x10
    GROUP = 0x11
    SYMTAB_SHNDX = 0x12
    RELR = 0x13
    NUM = 0x14
    LOOS = 0x60000000
    GNU_ATTRIBUTES = 0x6FFFFFF5
    GNU_HASH = 0x6FFFFFF6
    GNU_LIBLIST = 0x6FFFFFF7
    CHECKSUM = 0x6FFFFFF8
    LOSUNW = 0x6FFFFFFA
    SUNW_move = 0x6FFFFFFA
    SUNW_COMDAT = 0x6FFFFFFB
    SUNW_syminfo = 0x6FFFFFFC
    GNU_verdef = 0x6FFFFFFD
    GNU_verneed = 0x6FFFFFFE
    GNU_versym = 0x6FFFFFFF
    HISUNW = 0x6FFFFFFF
    HIOS = 0x6FFFFFFF
    LOPROC = 0x70000000
    HIPROC = 0x7FFFFFFF
    LOUSER = 0x80000000
    HIUSER = 0x8FFFFFFF
    MIPS_LIBLIST = 0x70000000
    MIPS_MSYM = 0x70000001
    MIPS_CONFLICT = 0x70000002
    MIPS_GPTAB = 0x70000003
    MIPS_UCODE = 0x70000004
    MIPS_DEBUG = 0x70000005
    MIPS_REGINFO = 0x70000006
    MIPS_PACKAGE = 0x70000007
    MIPS_PACKSYM = 0x70000008
    MIPS_RELD = 0x70000009
    MIPS_IFACE = 0x7000000B
    MIPS_CONTENT = 0x7000000C
    MIPS_OPTIONS = 0x7000000D
    MIPS_SHDR = 0x70000010
    MIPS_FDESC = 0x70000011
    MIPS_EXTSYM = 0x70000012
    MIPS_DENSE = 0x70000013
    MIPS_PDESC = 0x70000014
    MIPS_LOCSYM = 0x70000015
    MIPS_AUXSYM = 0x70000016
    MIPS_OPTSYM = 0x70000017
    MIPS_LOCSTR = 0x70000018
    MIPS_LINE = 0x70000019
    MIPS_RFDESC = 0x7000001A
    MIPS_DELTASYM = 0x7000001B
    MIPS_DELTAINST = 0x7000001C
    MIPS_DELTACLASS = 0x7000001D
    MIPS_DWARF = 0x7000001E
    MIPS_DELTADECL = 0x7000001F
    MIPS_SYMBOL_LIB = 0x70000020
    MIPS_EVENTS = 0x70000021
    MIPS_TRANSLATE = 0x70000022
    MIPS_PIXIE = 0x70000023
    MIPS_XLATE = 0x70000024
    MIPS_XLATE_DEBUG = 0x70000025
    MIPS_WHIRL = 0x70000026
    MIPS_EH_REGION = 0x70000027
    MIPS_XLATE_OLD = 0x70000028
    MIPS_PDR_EXCEPTION = 0x70000029
    MIPS_ABIFLAGS = 0x7000002A
    MIPS_XHASH = 0x7000002B
    PARISC_EXT = 0x70000000
    PARISC_UNWIND = 0x70000001
    PARISC_DOC = 0x70000002
    ALPHA_DEBUG = 0x70000001
    ALPHA_REGINFO = 0x70000002
    X86_64_UNWIND = 0x70000001


class STB(enum.IntEnum):
    LOCAL = 0x0
    GLOBAL = 0x1
    WEAK = 0x2
    NUM = 0x3
    LOOS = 0xA
    GNU_UNIQUE = 0xA
    HIOS = 0xC
    LOPROC = 0xD
    HIPROC = 0xF
    MIPS_SPLIT_COMMON = 0xD


class STT(enum.IntEnum):
    NOTYPE = 0x0
    OBJECT = 0x1
    FUNC = 0x2
    SECTION = 0x3
    FILE = 0x4
    COMMON = 0x5
    TLS = 0x6
    NUM = 0x7
    LOOS = 0xA
    GNU_IFUNC = 0xA
    HIOS = 0xC
    LOPROC = 0xD
    HIPROC = 0xF
    SPARC_REGISTER = 0xD
    PARISC_MILLICODE = 0xD


class STV(enum.IntEnum):
    DEFAULT = 0x0
    INTERNAL = 0x1
    HIDDEN = 0x2
    PROTECTED = 0x3