[][src]Module goblin::mach::header

A header contains minimal architecture information, the binary kind, the number of load commands, as well as an endianness hint

Structs

Header

Generic sized header

Header32

A 32-bit Mach-o header

Header64

A 64-bit Mach-o header

Constants

MH_ALLMODSBOUND

indicates that this binary binds to all two-level namespace modules of its dependent libraries. Only used when MH_PREBINDABLE and MH_TWOLEVEL are both set.

MH_ALLOW_STACK_EXECUTION

When this bit is set, all stacks in the task will be given stack execution privilege. Only used in MH_EXECUTE filetypes.

MH_APP_EXTENSION_SAFE

The code was linked for use in an application extension.

MH_BINDATLOAD

the object file's undefined references are bound by the dynamic linker when loaded.

MH_BINDS_TO_WEAK

the final linked image uses weak symbols

MH_BUNDLE

dynamically bound bundle file

MH_CANONICAL

the binary has been canonicalized via the unprebind operation

MH_CIGAM
MH_CIGAM_64
MH_CORE

core file

MH_DEAD_STRIPPABLE_DYLIB

Only for use on dylibs. When linking against a dylib that has this bit set, the static linker will automatically not create a LC_LOAD_DYLIB load command to the dylib if no symbols are being referenced from the dylib.

MH_DSYM

companion file with only debug sections

MH_DYLDLINK

the object file is input for the dynamic linker and can't be staticly link edited again

MH_DYLIB

dynamically bound shared library

MH_DYLIB_STUB

shared library stub for static linking only, no section contents

MH_DYLINKER

dynamic link editor

MH_EXECUTE

demand paged executable file

MH_FORCE_FLAT

the executable is forcing all images to use flat name space bindings

MH_FVMLIB

fixed VM shared library file

MH_HAS_TLV_DESCRIPTORS

Contains a section of type S_THREAD_LOCAL_VARIABLES

MH_INCRLINK

the object file is the output of an incremental link against a base file and can't be link edited again

MH_KEXT_BUNDLE

x86_64 kexts

MH_LAZY_INIT

the shared library init routine is to be run lazily via catching memory faults to its writeable segments (obsolete)

MH_MAGIC

Mach Header magic constant

MH_MAGIC_64

Mach Header magic constant for 64-bit

MH_NOFIXPREBINDING

do not have dyld notify the prebinding agent about this executable

MH_NOMULTIDEFS

this umbrella guarantees no multiple defintions of symbols in its sub-images so the two-level namespace hints can always be used.

MH_NOUNDEFS

the object file has no undefined references

MH_NO_HEAP_EXECUTION

When this bit is set, the OS will run the main executable with a non-executable heap even on platforms (e.g. i386) that don't require it. Only used in MH_EXECUTE filetypes.

MH_NO_REEXPORTED_DYLIBS

When this bit is set on a dylib, the static linker does not need to examine dependent dylibs to see if any are re-exported

MH_OBJECT

relocatable object file

MH_PIE

When this bit is set, the OS will load the main executable at a random address. Only used in MH_EXECUTE filetypes.

MH_PREBINDABLE

the binary is not prebound but can have its prebinding redone. only used when MH_PREBOUND is not set.

MH_PREBOUND

the file has its dynamic undefined references prebound.

MH_PRELOAD

preloaded executable file

MH_ROOT_SAFE

When this bit is set, the binary declares it is safe for use in processes with uid zero

MH_SETUID_SAFE

When this bit is set, the binary declares it is safe for use in processes when issetugid() is true

MH_SPLIT_SEGS

the file has its read-only and read-write segments split

MH_SUBSECTIONS_VIA_SYMBOLS

safe to divide up the sections into sub-sections via symbols for dead code stripping

MH_TWOLEVEL

the image is using two-level name space bindings

MH_WEAK_DEFINES

the final linked image contains external weak symbols

SIZEOF_HEADER_32
SIZEOF_HEADER_64

Functions

filetype_to_str
flag_to_str