Loader specification(elf) - Hiroshi123/bin_tools GitHub Wiki
1st stage is mapping library.
This stage involves
mapping program header which should be loaded.
Retrieving dynamic vector offset, tls information, and gnu_relro on dso. PT_LOAD segments should be referred from loadmap which will be allocateed as external heap considering number of segments to be loaded.
Dynamic Section
Name | Type | Role when loading | dso |
---|---|---|---|
NEEDED | 1 | ||
PLTRELSZ | 2 | ||
PLTGOT | 3 | got | |
DT_HASH | 4 | hashtab | |
STRTAB | 5 | decode_dyn function(900) | strings |
SYMTAB | 6 | syms | |
RELA | 7 | ||
RELASZ | 8 | ||
RELAENT | 9 | ||
STRSZ | 10 | ||
SYMENT | 11 | ||
INIT | 12 | ||
FINI | 13 | ||
SONAME | 14 | ||
RPATH | 15 | rpath_orig | |
SYMBOLIC | 16 | ||
REL | 17 | ||
RELSZ | 18 | ||
RELENT | 19 | ||
PLTREL | 20 | ||
DEBUG | 21 | ||
TEXTREL | 22 | This is actually first flags which will be checked during mapping. | |
BIND_NOW | 24 | ||
INIT_ARRAY | 25 | ||
FINI_ARRAY | 26 | ||
INIT_ARRAYSZ | 27 | ||
FINI_ARRAYSZ | 28 | ||
RUNPATH | 29 | rpath_orig | |
FLAGS | 30 | ||
GNU_HASH | 0x6ffffef5 | ghashtab | |
VERSYM | 0x6ffffff0 | versym |
Dynamic Vector will be referred as dynv at __dls2/__dls3/decode_dyn(1829/1874)/load_library