LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::MachO::DyldChainedFixups::chained_starts_in_segment Struct Reference

Structure that mirrors the raw dyld_chained_starts_in_segment which aims at providing information about the chained rebase/bind fixups. More...

#include <DyldChainedFixups.hpp>

Collaboration diagram for LIEF::MachO::DyldChainedFixups::chained_starts_in_segment:

Public Member Functions

size_t page_count () const
 How many pages are in the page_start array.
 

Static Public Member Functions

static chained_starts_in_segment create_empty_chained (SegmentCommand &segment)
 

Public Attributes

uint32_t offset = 0
 Original offset of the structure, relative to DyldChainedFixups::starts_offset.
 
uint32_t size = 0
 sizeof(size) + sizeof(page_size) + ... + sizeof(pointer_format)
 
uint16_t page_size = 0
 Likely 0x1000 for x86/x86_64 architectures and 0x4000 for ARM64 architecture.
 
uint64_t segment_offset = 0
 Offset of the segment's data from the beginning of the file (it should match SegmentCommand::file_offset)
 
uint32_t max_valid_pointer = 0
 for 32-bit OS, any value beyond this is not a pointer
 
DYLD_CHAINED_PTR_FORMAT pointer_format = DYLD_CHAINED_PTR_FORMAT::NONE
 How pointers are encoded.
 
std::vector< uint16_t > page_start
 Offset in the SegmentCommand of the first element of the chain.
 
std::vector< uint16_t > chain_starts
 Currently not supported.
 
SegmentCommandsegment
 Segment in which the rebase/bind fixups take place.
 

Detailed Description

Structure that mirrors the raw dyld_chained_starts_in_segment which aims at providing information about the chained rebase/bind fixups.

The relocations provided by this structure can be accessed through SegmentCommand::relocations

Member Function Documentation

◆ create_empty_chained()

static chained_starts_in_segment LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::create_empty_chained ( SegmentCommand & segment)
inlinestatic

◆ page_count()

size_t LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::page_count ( ) const
inline

How many pages are in the page_start array.

Member Data Documentation

◆ chain_starts

std::vector<uint16_t> LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::chain_starts

Currently not supported.

◆ max_valid_pointer

uint32_t LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::max_valid_pointer = 0

for 32-bit OS, any value beyond this is not a pointer

◆ offset

uint32_t LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::offset = 0

Original offset of the structure, relative to DyldChainedFixups::starts_offset.

◆ page_size

uint16_t LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::page_size = 0

Likely 0x1000 for x86/x86_64 architectures and 0x4000 for ARM64 architecture.

◆ page_start

std::vector<uint16_t> LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::page_start

Offset in the SegmentCommand of the first element of the chain.

◆ pointer_format

DYLD_CHAINED_PTR_FORMAT LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::pointer_format = DYLD_CHAINED_PTR_FORMAT::NONE

How pointers are encoded.

◆ segment

SegmentCommand& LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::segment

Segment in which the rebase/bind fixups take place.

◆ segment_offset

uint64_t LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::segment_offset = 0

Offset of the segment's data from the beginning of the file (it should match SegmentCommand::file_offset)

◆ size

uint32_t LIEF::MachO::DyldChainedFixups::chained_starts_in_segment::size = 0

sizeof(size) + sizeof(page_size) + ... + sizeof(pointer_format)


The documentation for this struct was generated from the following file: