7
{ELF Binary Format Description. 32/64 bit definitions }
37
PT_LOPROC = $70000000;
38
PT_HIPROC = $7fffffff;
41
TElf32header = packed record
46
padding: array[$07..$0F] of byte;
50
e_entry: longint; { entrypoint }
51
e_phoff: longint; { program header offset }
52
e_shoff: longint; { sections header offset }
54
e_ehsize: word; { elf header size in bytes }
55
e_phentsize: word; { size of an entry in the program header array }
56
e_phnum: word; { 0..e_phnum-1 of entrys }
57
e_shentsize: word; { size of an entry in sections header array }
58
e_shnum: word; { 0..e_shnum-1 of entrys }
59
e_shstrndx: word; { index of string section header }
62
TElf64header = packed record
67
padding: array[$07..$0F] of byte;
71
e_entry: int64; { entrypoint }
72
e_phoff: int64; { program header offset }
73
e_shoff: int64; { sections header offset }
75
e_ehsize: word; { elf header size in bytes }
76
e_phentsize: word; { size of an entry in the program header array }
77
e_phnum: word; { 0..e_phnum-1 of entrys }
78
e_shentsize: word; { size of an entry in sections header array }
79
e_shnum: word; { 0..e_shnum-1 of entrys }
80
e_shstrndx: word; { index of string section header }
83
TElf32sechdr = packed record
92
sh_addralign: longint;
96
TElf64sechdr = packed record
111
TELF32ResourceSectionInfo = packed record
116
TELF64ResourceSectionInfo = packed record
121
TELF32ResourceInfo = packed record
122
reshash: longint; // always 32bit, contains an ELF hash of the resource entries name
123
restype: longint; // always 32bit, contains the resource type ID compatible with Windows RES IDs
124
ptr: longint; // Byte offset to the resource inside the resdata section.
125
name: longint; // Byte offset to the the resource name inside the ressym section.
126
size: longint; // The size of the resource entry
129
TELF64ResourceInfo = packed record
130
reshash: longint; // always 32bit, contains an ELF hash of the resource entries name
131
restype: longint; // always 32bit, contains the resource type ID compatible with Windows RES IDs
132
ptr: int64; // Byte offset to the resource inside the resdata section.
133
name: int64; // Byte offset to the the resource name inside the ressym section.
134
size: int64; // The size of the resource entry
137
TELF32ResourceSectionTable = packed record
140
ressym: TELF32ResourceSectionInfo;
141
reshash: TELF32ResourceSectionInfo;
142
resdata: TELF32ResourceSectionInfo;
143
resspare: TELF32ResourceSectionInfo;
144
resstr: TELF32ResourceSectionInfo;