B2R2


ProgramHeader Type

An executable or shared object file's program header table is an array of structures, each of which describes a segment or the other information a system needs to prepare for execution. An object file segment contains one or more sections. Program headers are meaningful only for executable and shared object files. A file specifies its own program header size with the ELF header's members.

Record fields

Record Field Description

PHAddr

Full Usage: PHAddr

Field type: Addr

The virtual address at which the first byte of the segment resides in memory.

Field type: Addr

PHAlignment

Full Usage: PHAlignment

Field type: uint64

The value to which the segments are aligned in memory and in the file.

Field type: uint64

PHFileSize

Full Usage: PHFileSize

Field type: uint64

The number of bytes in the file image of the segment.

Field type: uint64

PHFlags

Full Usage: PHFlags

Field type: Permission

Flags relevant to the segment.

Field type: Permission

PHMemSize

Full Usage: PHMemSize

Field type: uint64

The number of bytes in the memory image of the segment. This can be greater than PHFileSize as some sections (w/ SHTNoBits type) occupy nothing in the binary file, but can be mapped in the segment at runtime.

Field type: uint64

PHOffset

Full Usage: PHOffset

Field type: uint64

An offset from the beginning of the file at which the first byte of the segment resides in memory.

Field type: uint64

PHPhyAddr

Full Usage: PHPhyAddr

Field type: Addr

The physical address of the segment. This is reserved for systems using physical addresses.

Field type: Addr

PHType

Full Usage: PHType

Field type: ProgramHeaderType

Program header type.

Field type: ProgramHeaderType