Module header

Source
Expand description

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_FILESET
set of mach-o’s
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