fixupchains

package
v1.1.233 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 27, 2024 License: MIT Imports: 7 Imported by: 10

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DcpArm64eIsAuth

func DcpArm64eIsAuth(ptr uint64) bool

func DcpArm64eIsBind

func DcpArm64eIsBind(ptr uint64) bool

func DcpArm64eIsRebase added in v1.1.0

func DcpArm64eIsRebase(ptr uint64) bool

func DcpArm64eNext

func DcpArm64eNext(ptr uint64) uint64

func Generic32IsBind

func Generic32IsBind(ptr uint32) bool

func Generic32Next

func Generic32Next(ptr uint32) uint64

func Generic64IsBind

func Generic64IsBind(ptr uint64) bool

func Generic64Next

func Generic64Next(ptr uint64) uint64

func KeyName

func KeyName(keyVal uint64) string

KeyName returns the chained pointer's key name

Types

type Bind

type Bind interface {
	Name() string
	Offset() uint64
	Ordinal() uint64
	Addend() uint64
	Raw() uint64
	String(baseAddr ...uint64) string
}

type DCPtrKind

type DCPtrKind uint16

DCPtrKind are values for dyld_chained_starts_in_segment.pointer_format

const (
	DYLD_CHAINED_PTR_ARM64E              DCPtrKind = 1 // stride 8, unauth target is vmaddr
	DYLD_CHAINED_PTR_64                  DCPtrKind = 2 // target is vmaddr
	DYLD_CHAINED_PTR_32                  DCPtrKind = 3
	DYLD_CHAINED_PTR_32_CACHE            DCPtrKind = 4
	DYLD_CHAINED_PTR_32_FIRMWARE         DCPtrKind = 5
	DYLD_CHAINED_PTR_64_OFFSET           DCPtrKind = 6 // target is vm offset
	DYLD_CHAINED_PTR_ARM64E_OFFSET       DCPtrKind = 7 // old name
	DYLD_CHAINED_PTR_ARM64E_KERNEL       DCPtrKind = 7 // stride 4, unauth target is vm offset
	DYLD_CHAINED_PTR_64_KERNEL_CACHE     DCPtrKind = 8
	DYLD_CHAINED_PTR_ARM64E_USERLAND     DCPtrKind = 9  // stride 8, unauth target is vm offset
	DYLD_CHAINED_PTR_ARM64E_FIRMWARE     DCPtrKind = 10 // stride 4, unauth target is vmaddr
	DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE DCPtrKind = 11 // stride 1, x86_64 kernel caches
	DYLD_CHAINED_PTR_ARM64E_USERLAND24   DCPtrKind = 12 // stride 8, unauth target is vm offset, 24-bit bind
	DYLD_CHAINED_PTR_ARM64E_SHARED_CACHE DCPtrKind = 13 // stride 8, regular/auth targets both vm offsets.  Only A keys supported
)

type DCPtrStart

type DCPtrStart uint16
const (
	DYLD_CHAINED_PTR_START_NONE  DCPtrStart = 0xFFFF // used in page_start[] to denote a page with no fixups
	DYLD_CHAINED_PTR_START_MULTI DCPtrStart = 0x8000 // used in page_start[] to denote a page which has multiple starts
	DYLD_CHAINED_PTR_START_LAST  DCPtrStart = 0x8000 // used in chain_starts[] to denote last start in list for page
)

type DCSymbolsFormat

type DCSymbolsFormat uint32
const (
	DC_SFORMAT_UNCOMPRESSED    DCSymbolsFormat = 0
	DC_SFORMAT_ZLIB_COMPRESSED DCSymbolsFormat = 1
)

type DcfImport

type DcfImport struct {
	Name string
	Import
}

func (DcfImport) String

func (i DcfImport) String() string

type DyldChainedFixups

type DyldChainedFixups struct {
	DyldChainedFixupsHeader
	PointerFormat DCPtrKind
	Starts        []DyldChainedStarts
	Imports       []DcfImport
	// contains filtered or unexported fields
}

func NewChainedFixups added in v1.0.31

func NewChainedFixups(lcdat *bytes.Reader, sr *types.MachoReader, bo binary.ByteOrder) *DyldChainedFixups

NewChainedFixups creates a new DyldChainedFixups instance

func (*DyldChainedFixups) IsBind added in v1.1.117

func (dcf *DyldChainedFixups) IsBind(addr uint64) (*DcfImport, int64, bool)

func (*DyldChainedFixups) IsRebase added in v1.1.117

func (dcf *DyldChainedFixups) IsRebase(addr, preferredLoadAddress uint64) (uint64, bool)

func (*DyldChainedFixups) Parse added in v1.0.31

func (dcf *DyldChainedFixups) Parse() (*DyldChainedFixups, error)

Parse parses a LC_DYLD_CHAINED_FIXUPS load command

func (*DyldChainedFixups) ParseStarts added in v1.0.31

func (dcf *DyldChainedFixups) ParseStarts() error

ParseStarts parses the DyldChainedStartsInSegment(s)

type DyldChainedFixupsHeader

type DyldChainedFixupsHeader struct {
	FixupsVersion uint32          // 0
	StartsOffset  uint32          // offset of DyldChainedStartsInImage in chain_data
	ImportsOffset uint32          // offset of imports table in chain_data
	SymbolsOffset uint32          // offset of symbol strings in chain_data
	ImportsCount  uint32          // number of imported symbol names
	ImportsFormat ImportFormat    // DYLD_CHAINED_IMPORT*
	SymbolsFormat DCSymbolsFormat // 0 => uncompressed, 1 => zlib compressed
}

DyldChainedFixupsHeader object is the header of the LC_DYLD_CHAINED_FIXUPS payload

type DyldChainedImport

type DyldChainedImport uint32

DYLD_CHAINED_IMPORT

func (DyldChainedImport) Addend added in v1.0.29

func (d DyldChainedImport) Addend() uint64

func (DyldChainedImport) LibOrdinal

func (d DyldChainedImport) LibOrdinal() int

func (DyldChainedImport) NameOffset

func (d DyldChainedImport) NameOffset() uint64

func (DyldChainedImport) String

func (i DyldChainedImport) String() string

func (DyldChainedImport) WeakImport

func (d DyldChainedImport) WeakImport() bool

type DyldChainedImport64

type DyldChainedImport64 uint64

func (DyldChainedImport64) Addend added in v1.0.29

func (d DyldChainedImport64) Addend() uint64

func (DyldChainedImport64) LibOrdinal

func (d DyldChainedImport64) LibOrdinal() int

func (DyldChainedImport64) NameOffset

func (d DyldChainedImport64) NameOffset() uint64

func (DyldChainedImport64) Reserved

func (d DyldChainedImport64) Reserved() uint64

func (DyldChainedImport64) String

func (i DyldChainedImport64) String() string

func (DyldChainedImport64) WeakImport

func (d DyldChainedImport64) WeakImport() bool

type DyldChainedImportAddend

type DyldChainedImportAddend struct {
	Import    DyldChainedImport
	AddendVal int32
}

DYLD_CHAINED_IMPORT_ADDEND

func (DyldChainedImportAddend) Addend

func (d DyldChainedImportAddend) Addend() uint64

func (DyldChainedImportAddend) LibOrdinal added in v1.0.26

func (d DyldChainedImportAddend) LibOrdinal() int

func (DyldChainedImportAddend) NameOffset added in v1.0.26

func (d DyldChainedImportAddend) NameOffset() uint64

func (DyldChainedImportAddend) String

func (i DyldChainedImportAddend) String() string

func (DyldChainedImportAddend) WeakImport added in v1.0.26

func (d DyldChainedImportAddend) WeakImport() bool

type DyldChainedImportAddend64

type DyldChainedImportAddend64 struct {
	Import    DyldChainedImport64
	AddendVal uint64
}

DYLD_CHAINED_IMPORT_ADDEND64

func (DyldChainedImportAddend64) Addend

func (d DyldChainedImportAddend64) Addend() uint64

func (DyldChainedImportAddend64) LibOrdinal added in v1.0.26

func (d DyldChainedImportAddend64) LibOrdinal() int

func (DyldChainedImportAddend64) NameOffset added in v1.0.26

func (d DyldChainedImportAddend64) NameOffset() uint64

func (DyldChainedImportAddend64) String

func (i DyldChainedImportAddend64) String() string

func (DyldChainedImportAddend64) WeakImport added in v1.0.26

func (d DyldChainedImportAddend64) WeakImport() bool

type DyldChainedPtr32Bind

type DyldChainedPtr32Bind struct {
	Fixup   uint64
	Pointer uint32
	Import  string
}

DYLD_CHAINED_PTR_32

func (DyldChainedPtr32Bind) Addend

func (d DyldChainedPtr32Bind) Addend() uint64

func (DyldChainedPtr32Bind) Bind

func (d DyldChainedPtr32Bind) Bind() uint32

func (DyldChainedPtr32Bind) IsBind added in v1.1.188

func (d DyldChainedPtr32Bind) IsBind() bool

func (DyldChainedPtr32Bind) IsRebase added in v1.1.188

func (d DyldChainedPtr32Bind) IsRebase() bool

func (DyldChainedPtr32Bind) Kind added in v1.0.28

func (d DyldChainedPtr32Bind) Kind() string

func (DyldChainedPtr32Bind) Name added in v1.1.3

func (d DyldChainedPtr32Bind) Name() string

func (DyldChainedPtr32Bind) Next

func (d DyldChainedPtr32Bind) Next() uint32

func (DyldChainedPtr32Bind) Offset added in v1.0.28

func (d DyldChainedPtr32Bind) Offset() uint64

func (DyldChainedPtr32Bind) Ordinal

func (d DyldChainedPtr32Bind) Ordinal() uint64

func (DyldChainedPtr32Bind) Raw added in v1.1.82

func (d DyldChainedPtr32Bind) Raw() uint64

func (DyldChainedPtr32Bind) String

func (d DyldChainedPtr32Bind) String(baseAddr ...uint64) string

type DyldChainedPtr32CacheRebase

type DyldChainedPtr32CacheRebase struct {
	Fixup   uint64
	Pointer uint32
}

DYLD_CHAINED_PTR_32_CACHE

func (DyldChainedPtr32CacheRebase) IsBind added in v1.1.188

func (d DyldChainedPtr32CacheRebase) IsBind() bool

func (DyldChainedPtr32CacheRebase) IsRebase added in v1.1.188

func (d DyldChainedPtr32CacheRebase) IsRebase() bool

func (DyldChainedPtr32CacheRebase) Kind added in v1.0.28

func (DyldChainedPtr32CacheRebase) Next

func (DyldChainedPtr32CacheRebase) Offset

func (DyldChainedPtr32CacheRebase) Raw added in v1.1.93

func (DyldChainedPtr32CacheRebase) String

func (d DyldChainedPtr32CacheRebase) String(baseAddr ...uint64) string

func (DyldChainedPtr32CacheRebase) Target added in v1.0.28

type DyldChainedPtr32FirmwareRebase

type DyldChainedPtr32FirmwareRebase struct {
	Fixup   uint64
	Pointer uint32
}

DYLD_CHAINED_PTR_32_FIRMWARE

func (DyldChainedPtr32FirmwareRebase) IsBind added in v1.1.188

func (DyldChainedPtr32FirmwareRebase) IsRebase added in v1.1.188

func (d DyldChainedPtr32FirmwareRebase) IsRebase() bool

func (DyldChainedPtr32FirmwareRebase) Kind added in v1.0.28

func (DyldChainedPtr32FirmwareRebase) Next

func (DyldChainedPtr32FirmwareRebase) Offset

func (DyldChainedPtr32FirmwareRebase) Raw added in v1.1.93

func (DyldChainedPtr32FirmwareRebase) String

func (d DyldChainedPtr32FirmwareRebase) String(baseAddr ...uint64) string

func (DyldChainedPtr32FirmwareRebase) Target added in v1.0.28

type DyldChainedPtr32Rebase

type DyldChainedPtr32Rebase struct {
	Fixup   uint64
	Pointer uint32
}

DYLD_CHAINED_PTR_32 Note: for DYLD_CHAINED_PTR_32 some non-pointer values are co-opted into the chain as out of range rebases. If an entry in the chain is > max_valid_pointer, then it is not a pointer. To restore the value, subtract off the bias, which is (64MB+max_valid_pointer)/2.

func (DyldChainedPtr32Rebase) Bind

func (d DyldChainedPtr32Rebase) Bind() uint32

func (DyldChainedPtr32Rebase) IsBind added in v1.1.188

func (d DyldChainedPtr32Rebase) IsBind() bool

func (DyldChainedPtr32Rebase) IsRebase added in v1.1.188

func (d DyldChainedPtr32Rebase) IsRebase() bool

func (DyldChainedPtr32Rebase) Kind added in v1.0.28

func (d DyldChainedPtr32Rebase) Kind() string

func (DyldChainedPtr32Rebase) Next

func (d DyldChainedPtr32Rebase) Next() uint32

func (DyldChainedPtr32Rebase) Offset

func (d DyldChainedPtr32Rebase) Offset() uint64

func (DyldChainedPtr32Rebase) Raw added in v1.1.188

func (DyldChainedPtr32Rebase) String

func (d DyldChainedPtr32Rebase) String(baseAddr ...uint64) string

func (DyldChainedPtr32Rebase) Target added in v1.0.28

func (d DyldChainedPtr32Rebase) Target() uint64

type DyldChainedPtr64Bind

type DyldChainedPtr64Bind struct {
	Fixup   uint64
	Pointer uint64
	Import  string
}

DYLD_CHAINED_PTR_64

func (DyldChainedPtr64Bind) Addend

func (d DyldChainedPtr64Bind) Addend() uint64

func (DyldChainedPtr64Bind) Bind

func (d DyldChainedPtr64Bind) Bind() uint64

func (DyldChainedPtr64Bind) IsBind added in v1.1.188

func (d DyldChainedPtr64Bind) IsBind() bool

func (DyldChainedPtr64Bind) IsRebase added in v1.1.188

func (d DyldChainedPtr64Bind) IsRebase() bool

func (DyldChainedPtr64Bind) Kind added in v1.0.28

func (d DyldChainedPtr64Bind) Kind() string

func (DyldChainedPtr64Bind) Name added in v1.1.3

func (d DyldChainedPtr64Bind) Name() string

func (DyldChainedPtr64Bind) Next

func (d DyldChainedPtr64Bind) Next() uint64

func (DyldChainedPtr64Bind) Offset added in v1.0.28

func (d DyldChainedPtr64Bind) Offset() uint64

func (DyldChainedPtr64Bind) Ordinal

func (d DyldChainedPtr64Bind) Ordinal() uint64

func (DyldChainedPtr64Bind) Raw added in v1.1.82

func (d DyldChainedPtr64Bind) Raw() uint64

func (DyldChainedPtr64Bind) Reserved

func (d DyldChainedPtr64Bind) Reserved() uint64

func (DyldChainedPtr64Bind) String

func (d DyldChainedPtr64Bind) String(baseAddr ...uint64) string

type DyldChainedPtr64KernelCacheRebase

type DyldChainedPtr64KernelCacheRebase struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_64_KERNEL_CACHE, DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE

func (DyldChainedPtr64KernelCacheRebase) AddrDiv

func (DyldChainedPtr64KernelCacheRebase) CacheLevel

func (DyldChainedPtr64KernelCacheRebase) Diversity

func (DyldChainedPtr64KernelCacheRebase) IsAuth

func (DyldChainedPtr64KernelCacheRebase) IsBind added in v1.1.188

func (DyldChainedPtr64KernelCacheRebase) IsRebase added in v1.1.188

func (DyldChainedPtr64KernelCacheRebase) Key

func (DyldChainedPtr64KernelCacheRebase) Kind added in v1.0.28

func (DyldChainedPtr64KernelCacheRebase) Next

func (DyldChainedPtr64KernelCacheRebase) Offset

func (DyldChainedPtr64KernelCacheRebase) Raw added in v1.1.93

func (DyldChainedPtr64KernelCacheRebase) String

func (d DyldChainedPtr64KernelCacheRebase) String(baseAddr ...uint64) string

func (DyldChainedPtr64KernelCacheRebase) Target added in v1.0.28

type DyldChainedPtr64Rebase

type DyldChainedPtr64Rebase struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_64

func (DyldChainedPtr64Rebase) Bind

func (d DyldChainedPtr64Rebase) Bind() uint64

func (DyldChainedPtr64Rebase) High8

func (d DyldChainedPtr64Rebase) High8() uint64

func (DyldChainedPtr64Rebase) IsBind added in v1.1.188

func (d DyldChainedPtr64Rebase) IsBind() bool

func (DyldChainedPtr64Rebase) IsRebase added in v1.1.188

func (d DyldChainedPtr64Rebase) IsRebase() bool

func (DyldChainedPtr64Rebase) Kind added in v1.0.28

func (d DyldChainedPtr64Rebase) Kind() string

func (DyldChainedPtr64Rebase) Next

func (d DyldChainedPtr64Rebase) Next() uint64

func (DyldChainedPtr64Rebase) Offset

func (d DyldChainedPtr64Rebase) Offset() uint64

func (DyldChainedPtr64Rebase) Raw added in v1.1.93

func (DyldChainedPtr64Rebase) Reserved

func (d DyldChainedPtr64Rebase) Reserved() uint64

func (DyldChainedPtr64Rebase) String

func (d DyldChainedPtr64Rebase) String(baseAddr ...uint64) string

func (DyldChainedPtr64Rebase) Target

func (d DyldChainedPtr64Rebase) Target() uint64

func (DyldChainedPtr64Rebase) UnpackedTarget added in v1.0.28

func (d DyldChainedPtr64Rebase) UnpackedTarget() uint64

type DyldChainedPtr64RebaseOffset

type DyldChainedPtr64RebaseOffset struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_64_OFFSET

func (DyldChainedPtr64RebaseOffset) Bind

func (DyldChainedPtr64RebaseOffset) High8

func (DyldChainedPtr64RebaseOffset) IsBind added in v1.1.188

func (DyldChainedPtr64RebaseOffset) IsRebase added in v1.1.188

func (d DyldChainedPtr64RebaseOffset) IsRebase() bool

func (DyldChainedPtr64RebaseOffset) Kind added in v1.0.28

func (DyldChainedPtr64RebaseOffset) Next

func (DyldChainedPtr64RebaseOffset) Offset

func (DyldChainedPtr64RebaseOffset) Raw added in v1.1.93

func (DyldChainedPtr64RebaseOffset) Reserved

func (d DyldChainedPtr64RebaseOffset) Reserved() uint64

func (DyldChainedPtr64RebaseOffset) String

func (d DyldChainedPtr64RebaseOffset) String(baseAddr ...uint64) string

func (DyldChainedPtr64RebaseOffset) Target

func (DyldChainedPtr64RebaseOffset) UnpackedTarget added in v1.0.28

func (d DyldChainedPtr64RebaseOffset) UnpackedTarget() uint64

type DyldChainedPtrArm64eAuthBind

type DyldChainedPtrArm64eAuthBind struct {
	Fixup   uint64
	Pointer uint64
	Import  string
}

DYLD_CHAINED_PTR_ARM64E

func (DyldChainedPtrArm64eAuthBind) Addend added in v1.0.29

func (DyldChainedPtrArm64eAuthBind) AddrDiv

func (DyldChainedPtrArm64eAuthBind) Auth

func (DyldChainedPtrArm64eAuthBind) Bind

func (DyldChainedPtrArm64eAuthBind) Diversity

func (d DyldChainedPtrArm64eAuthBind) Diversity() uint64

func (DyldChainedPtrArm64eAuthBind) IsBind added in v1.1.188

func (DyldChainedPtrArm64eAuthBind) IsRebase added in v1.1.188

func (d DyldChainedPtrArm64eAuthBind) IsRebase() bool

func (DyldChainedPtrArm64eAuthBind) Key

func (DyldChainedPtrArm64eAuthBind) Kind added in v1.0.28

func (DyldChainedPtrArm64eAuthBind) Name added in v1.1.3

func (DyldChainedPtrArm64eAuthBind) Next

func (DyldChainedPtrArm64eAuthBind) Offset added in v1.0.28

func (DyldChainedPtrArm64eAuthBind) Ordinal

func (DyldChainedPtrArm64eAuthBind) Raw added in v1.1.82

func (DyldChainedPtrArm64eAuthBind) String

func (d DyldChainedPtrArm64eAuthBind) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eAuthBind) Zero

type DyldChainedPtrArm64eAuthBind24

type DyldChainedPtrArm64eAuthBind24 struct {
	Fixup   uint64
	Pointer uint64
	Import  string
}

DYLD_CHAINED_PTR_ARM64E_USERLAND24

func (DyldChainedPtrArm64eAuthBind24) Addend added in v1.0.29

func (DyldChainedPtrArm64eAuthBind24) AddrDiv

func (DyldChainedPtrArm64eAuthBind24) Auth

func (DyldChainedPtrArm64eAuthBind24) Bind

func (DyldChainedPtrArm64eAuthBind24) Diversity

func (d DyldChainedPtrArm64eAuthBind24) Diversity() uint64

func (DyldChainedPtrArm64eAuthBind24) IsBind added in v1.1.188

func (DyldChainedPtrArm64eAuthBind24) IsRebase added in v1.1.188

func (d DyldChainedPtrArm64eAuthBind24) IsRebase() bool

func (DyldChainedPtrArm64eAuthBind24) Key

func (DyldChainedPtrArm64eAuthBind24) Kind added in v1.0.28

func (DyldChainedPtrArm64eAuthBind24) Name added in v1.1.3

func (DyldChainedPtrArm64eAuthBind24) Next

func (DyldChainedPtrArm64eAuthBind24) Offset added in v1.0.28

func (DyldChainedPtrArm64eAuthBind24) Ordinal

func (DyldChainedPtrArm64eAuthBind24) Raw added in v1.1.82

func (DyldChainedPtrArm64eAuthBind24) String

func (d DyldChainedPtrArm64eAuthBind24) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eAuthBind24) Zero

type DyldChainedPtrArm64eAuthRebase

type DyldChainedPtrArm64eAuthRebase struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_ARM64E

func (DyldChainedPtrArm64eAuthRebase) AddrDiv

func (DyldChainedPtrArm64eAuthRebase) Auth

func (DyldChainedPtrArm64eAuthRebase) Bind

func (DyldChainedPtrArm64eAuthRebase) Diversity

func (d DyldChainedPtrArm64eAuthRebase) Diversity() uint64

func (DyldChainedPtrArm64eAuthRebase) IsBind added in v1.1.188

func (DyldChainedPtrArm64eAuthRebase) IsRebase added in v1.1.188

func (d DyldChainedPtrArm64eAuthRebase) IsRebase() bool

func (DyldChainedPtrArm64eAuthRebase) Key

func (DyldChainedPtrArm64eAuthRebase) Kind added in v1.0.28

func (DyldChainedPtrArm64eAuthRebase) Next

func (DyldChainedPtrArm64eAuthRebase) Offset

func (DyldChainedPtrArm64eAuthRebase) Raw added in v1.1.93

func (DyldChainedPtrArm64eAuthRebase) String

func (d DyldChainedPtrArm64eAuthRebase) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eAuthRebase) Target added in v1.0.28

type DyldChainedPtrArm64eAuthRebase24 added in v1.1.51

type DyldChainedPtrArm64eAuthRebase24 struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_ARM64E_USERLAND24

func (DyldChainedPtrArm64eAuthRebase24) AddrDiv added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) Auth added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) Bind added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) Diversity added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) IsBind added in v1.1.188

func (DyldChainedPtrArm64eAuthRebase24) IsRebase added in v1.1.188

func (DyldChainedPtrArm64eAuthRebase24) Key added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) Kind added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) Next added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) Offset added in v1.1.51

func (DyldChainedPtrArm64eAuthRebase24) Raw added in v1.1.93

func (DyldChainedPtrArm64eAuthRebase24) String added in v1.1.51

func (d DyldChainedPtrArm64eAuthRebase24) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eAuthRebase24) Target added in v1.1.51

type DyldChainedPtrArm64eBind

type DyldChainedPtrArm64eBind struct {
	Fixup   uint64
	Pointer uint64
	Import  string
}

DYLD_CHAINED_PTR_ARM64E

func (DyldChainedPtrArm64eBind) Addend

func (d DyldChainedPtrArm64eBind) Addend() uint64

func (DyldChainedPtrArm64eBind) Auth

func (DyldChainedPtrArm64eBind) Bind

func (DyldChainedPtrArm64eBind) IsBind added in v1.1.188

func (d DyldChainedPtrArm64eBind) IsBind() bool

func (DyldChainedPtrArm64eBind) IsRebase added in v1.1.188

func (d DyldChainedPtrArm64eBind) IsRebase() bool

func (DyldChainedPtrArm64eBind) Kind added in v1.0.28

func (DyldChainedPtrArm64eBind) Name added in v1.1.3

func (DyldChainedPtrArm64eBind) Next

func (DyldChainedPtrArm64eBind) Offset added in v1.0.28

func (d DyldChainedPtrArm64eBind) Offset() uint64

func (DyldChainedPtrArm64eBind) Ordinal

func (d DyldChainedPtrArm64eBind) Ordinal() uint64

func (DyldChainedPtrArm64eBind) Raw added in v1.1.82

func (DyldChainedPtrArm64eBind) SignExtendedAddend

func (d DyldChainedPtrArm64eBind) SignExtendedAddend() int64

func (DyldChainedPtrArm64eBind) String

func (d DyldChainedPtrArm64eBind) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eBind) Zero

type DyldChainedPtrArm64eBind24

type DyldChainedPtrArm64eBind24 struct {
	Fixup   uint64
	Pointer uint64
	Import  string
}

DYLD_CHAINED_PTR_ARM64E_USERLAND24

func (DyldChainedPtrArm64eBind24) Addend

func (DyldChainedPtrArm64eBind24) Auth

func (DyldChainedPtrArm64eBind24) Bind

func (DyldChainedPtrArm64eBind24) IsBind added in v1.1.188

func (d DyldChainedPtrArm64eBind24) IsBind() bool

func (DyldChainedPtrArm64eBind24) IsRebase added in v1.1.188

func (d DyldChainedPtrArm64eBind24) IsRebase() bool

func (DyldChainedPtrArm64eBind24) Kind added in v1.0.28

func (DyldChainedPtrArm64eBind24) Name added in v1.1.3

func (DyldChainedPtrArm64eBind24) Next

func (DyldChainedPtrArm64eBind24) Offset added in v1.0.28

func (DyldChainedPtrArm64eBind24) Ordinal

func (d DyldChainedPtrArm64eBind24) Ordinal() uint64

func (DyldChainedPtrArm64eBind24) Raw added in v1.1.82

func (DyldChainedPtrArm64eBind24) SignExtendedAddend

func (d DyldChainedPtrArm64eBind24) SignExtendedAddend() int64

func (DyldChainedPtrArm64eBind24) String

func (d DyldChainedPtrArm64eBind24) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eBind24) Zero

type DyldChainedPtrArm64eRebase

type DyldChainedPtrArm64eRebase struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_ARM64E

func (DyldChainedPtrArm64eRebase) Auth

func (DyldChainedPtrArm64eRebase) Bind

func (DyldChainedPtrArm64eRebase) High8

func (DyldChainedPtrArm64eRebase) IsBind added in v1.1.188

func (d DyldChainedPtrArm64eRebase) IsBind() bool

func (DyldChainedPtrArm64eRebase) IsRebase added in v1.1.188

func (d DyldChainedPtrArm64eRebase) IsRebase() bool

func (DyldChainedPtrArm64eRebase) Kind added in v1.0.28

func (DyldChainedPtrArm64eRebase) Next

func (DyldChainedPtrArm64eRebase) Offset

func (DyldChainedPtrArm64eRebase) Raw added in v1.1.93

func (DyldChainedPtrArm64eRebase) String

func (d DyldChainedPtrArm64eRebase) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eRebase) Target

func (DyldChainedPtrArm64eRebase) UnpackTarget added in v1.0.26

func (d DyldChainedPtrArm64eRebase) UnpackTarget() uint64

type DyldChainedPtrArm64eRebase24 added in v1.1.51

type DyldChainedPtrArm64eRebase24 struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_ARM64E_USERLAND24

func (DyldChainedPtrArm64eRebase24) Auth added in v1.1.51

func (DyldChainedPtrArm64eRebase24) Bind added in v1.1.51

func (DyldChainedPtrArm64eRebase24) High8 added in v1.1.51

func (DyldChainedPtrArm64eRebase24) IsBind added in v1.1.188

func (DyldChainedPtrArm64eRebase24) IsRebase added in v1.1.188

func (d DyldChainedPtrArm64eRebase24) IsRebase() bool

func (DyldChainedPtrArm64eRebase24) Kind added in v1.1.51

func (DyldChainedPtrArm64eRebase24) Next added in v1.1.51

func (DyldChainedPtrArm64eRebase24) Offset added in v1.1.51

func (DyldChainedPtrArm64eRebase24) Raw added in v1.1.93

func (DyldChainedPtrArm64eRebase24) String added in v1.1.51

func (d DyldChainedPtrArm64eRebase24) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eRebase24) Target added in v1.1.51

func (DyldChainedPtrArm64eRebase24) UnpackTarget added in v1.1.51

func (d DyldChainedPtrArm64eRebase24) UnpackTarget() uint64

type DyldChainedPtrArm64eSharedCacheAuthRebase added in v1.1.192

type DyldChainedPtrArm64eSharedCacheAuthRebase struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_ARM64E_SHARED_CACHE

func (DyldChainedPtrArm64eSharedCacheAuthRebase) AddrDiv added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) Auth added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) Diversity added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) IsBind added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) IsDataKey added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) IsRebase added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) Kind added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) Next added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) Offset added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) Raw added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) String added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheAuthRebase) Target added in v1.1.192

type DyldChainedPtrArm64eSharedCacheRebase added in v1.1.192

type DyldChainedPtrArm64eSharedCacheRebase struct {
	Fixup   uint64
	Pointer uint64
}

DYLD_CHAINED_PTR_ARM64E_SHARED_CACHE

func (DyldChainedPtrArm64eSharedCacheRebase) Auth added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) High8 added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) IsBind added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) IsRebase added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) Kind added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) Next added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) Offset added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) Raw added in v1.1.192

func (DyldChainedPtrArm64eSharedCacheRebase) String added in v1.1.192

func (d DyldChainedPtrArm64eSharedCacheRebase) String(baseAddr ...uint64) string

func (DyldChainedPtrArm64eSharedCacheRebase) Target added in v1.1.192

type DyldChainedStarts added in v1.0.26

type DyldChainedStarts struct {
	DyldChainedStartsInSegment
	PageStarts  []DCPtrStart
	ChainStarts []uint16
	Fixups      []Fixup
}

func (*DyldChainedStarts) Binds added in v1.0.26

func (s *DyldChainedStarts) Binds() []Bind

Binds filters fixups to only binds

func (*DyldChainedStarts) Rebases added in v1.0.26

func (s *DyldChainedStarts) Rebases() []Rebase

Rebases filters fixups to only rebases

type DyldChainedStartsInImage

type DyldChainedStartsInImage struct {
	SegCount       uint32
	SegInfoOffsets []uint32 // []uint32 ARRAY each entry is offset into this struct for that segment

}

DyldChainedStartsInImage this struct is embedded in LC_DYLD_CHAINED_FIXUPS payload

type DyldChainedStartsInSegment

type DyldChainedStartsInSegment struct {
	Size            uint32    // size of this (amount kernel needs to copy)
	PageSize        uint16    // 0x1000 or 0x4000
	PointerFormat   DCPtrKind // DYLD_CHAINED_PTR_*
	SegmentOffset   uint64    // offset in memory to start of segment
	MaxValidPointer uint32    // for 32-bit OS, any value beyond this is not a pointer
	PageCount       uint16    // how many pages are in array

}

DyldChainedStartsInSegment object is embedded in dyld_chain_starts_in_image and passed down to the kernel for page-in linking

type Fixup added in v1.1.3

type Fixup interface {
	Offset() uint64
	IsRebase() bool
	IsBind() bool
	Raw() uint64
	String(baseAddr ...uint64) string
}

type Import added in v1.0.26

type Import interface {
	LibOrdinal() int
	WeakImport() bool
	NameOffset() uint64
	Addend() uint64
}

type ImportFormat added in v1.0.26

type ImportFormat uint32

ImportFormat are values for dyld_chained_fixups_header.imports_format

const (
	DC_IMPORT          ImportFormat = 1
	DC_IMPORT_ADDEND   ImportFormat = 2
	DC_IMPORT_ADDEND64 ImportFormat = 3
)

type Rebase

type Rebase interface {
	Offset() uint64
	Target() uint64
	Raw() uint64
	String(baseAddr ...uint64) string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL