13#ifndef APPLE_MACHO_IMAGE_H 
   14#define APPLE_MACHO_IMAGE_H 
   16#define MACH_CPU_ARCH_ABI64     BIT24 
   17#define MACH_CPU_ARCH_ABI64_32  BIT25 
   22#define MACH_CPU_SUBTYPE_MASK   0xFF000000U   
   23#define MACH_CPU_SUBTYPE_LIB64  BIT17         
   25#define MACH_CPU_SUBTYPE_INTEL_MODEL_SHIFT  4U 
   26#define MACH_CPU_SUBTYPE_INTEL_FAMILY_MAX   0x0FU 
   27#define MACH_CPU_SUBTYPE_INTEL_MODEL_ALL    0U 
   29#define MACH_CPU_SUBTYPE_INTEL(f, Model)  \ 
   30  ((f) + ((Model) << MACH_CPU_SUBTYPE_INTEL_MODEL_SHIFT)) 
 
   32#define MACH_CPU_SUBTYPE_INTEL_FAMILY(Identifier)  \ 
   33  ((Identifier) & MACH_CPU_SUBTYPE_INTEL_FAMILY_MAX) 
 
   35#define MACH_CPU_SUBTYPE_INTEL_MODEL(Identifier)  \ 
   36  ((Identifier) >> MACH_CPU_SUBTYPE_INTEL_MODEL_SHIFT) 
 
   38#define FORMALIZE_CPU_SUBTYPE(CpuSubtype)  ((CpuSubtype) & ~CPU_SUBTYPE_MASK) 
   40#define MACH_CPU_TYPE_64(CpuType)  ((CpuType) | MACH_CPU_ARCH_ABI64) 
   42#define MACH_CPU_TYPE_64_32(CpuType)  ((CpuType) | MACH_CPU_ARCH_ABI64_32) 
   49#if !defined (MACH_LITTLE_ENDIAN) && !defined (MACH_BIG_ENDIAN) 
   50  #if defined (MDE_CPU_IA32) || defined (MDE_CPU_X64) 
   51#define MACH_LITTLE_ENDIAN 
  366#define MACH_LC_REQUIRE_DYLD  BIT31 
  370#define MACH_LOAD_COMMAND_SEGMENT  1U 
  374#define MACH_LOAD_COMMAND_SYMTAB  2U 
  378#define MACH_LOAD_COMMAND_SYMSEG  3U 
  382#define MACH_LOAD_COMMAND_THREAD  4U 
  386#define MACH_LOAD_COMMAND_UNIX_THREAD  5U 
  390#define MACH_LOAD_COMMAND_LOAD_FIXED_VM_LIB  6U 
  394#define MACH_LOAD_COMMAND_IDENTIFICATION_VM_LIB  7U 
  398#define MACH_LOAD_COMMAND_IDENTIFICATION  8U 
  402#define MACH_LOAD_COMMAND_FIXED_VM_FILE  9U 
  406#define MACH_LOAD_COMMAND_PRE_PAGE  10U 
  410#define MACH_LOAD_COMMAND_DYSYMTAB  11U 
  414#define MACH_LOAD_COMMAND_LOAD_DYLIB  12U 
  418#define MACH_LOAD_COMMAND_IDENTITY_DYLIB  13U 
  422#define MACH_LOAD_COMMAND_LOAD_DYLD  14U 
  426#define MACH_LOAD_COMMAND_IDENTIFICATION_DYLD  15U 
  430#define MACH_LOAD_COMMAND_PREBOUNT_SYLIB  16U 
  434#define MACH_LOAD_COMMAND_ROUTINES  17U 
  438#define MACH_LOAD_COMMAND_SUB_FRAMEWORK  18U 
  442#define MACH_LOAD_COMMAND_SUB_UMBRELLA  19U 
  446#define MACH_LOAD_COMMAND_SUB_CLIENT  20U 
  450#define MACH_LOAD_COMMAND_SUB_LIBRARY  21U 
  454#define MACH_LOAD_COMMAND_TWO_LEVEL_HINTS  22U 
  458#define MACH_LOAD_COMMAND_PREBIND_CHECKSUM  23U 
  463#define MACH_LOAD_COMMAND_LLOAD_WEAK_DYLIB  (24U | MACH_LC_REQUIRE_DYLD) 
  467#define MACH_LOAD_COMMAND_SEGMENT_64  25U 
  471#define MACH_LOAD_COMMAND_ROUTINES_64  26U 
  475#define MACH_LOAD_COMMAND_UUID  27U 
  479#define MACH_LOAD_COMMAND_RUN_PATH  (28U | MACH_LC_REQUIRE_DYLD) 
  483#define MACH_LOAD_COMMAND_CODE_SIGNATURE  29U 
  487#define MACH_LOAD_COMMAND_SEGMENT_SPLIT_INFO  30U 
  491#define MACH_LOAD_COMMAND_REEXPORT_DYLIB  (31U | MACH_LC_REQUIRE_DYLD) 
  495#define MACH_LOAD_COMMAND_LAZY_LOAD_DYLIB  32U 
  499#define MACH_LOAD_COMMAND_ENCRYPTION_INFO  33U 
  503#define MACH_LOAD_COMMAND_DYLD_INFO  34U 
  507#define MACH_LOAD_COMMAND_DYLD_INFO_ONLY  (34U | MACH_LC_REQUIRE_DYLD) 
  511#define MACH_LOAD_COMMAND_LOAD_UPWARD_DYLIB  (35U | MACH_LC_REQUIRE_DYLD) 
  515#define MACH_LOAD_COMMAND_VERSION_MIN_MAC_OS_X  36U 
  519#define MACH_LOAD_COMMAND_VERSION_MIN_IPHONE_OS  37U 
  523#define MACH_LOAD_COMMAND_FUNCTION_STARTS  38U 
  527#define MACH_LOAD_COMMAND_DYLD_ENVIRONMENT  39U 
  531#define MACH_LOAD_COMMAND_MAIN  (40U | MACH_LC_REQUIRE_DYLD) 
  535#define MACH_LOAD_COMMAND_DATA_IN_CODE  41U 
  539#define MACH_LOAD_COMMAND_SOURCE_VERSION  42U 
  543#define MACH_LOAD_COMMAND_DYLIB_CODE_SIGN_DRS  43U 
  547#define MACH_LOAD_COMMAND_ENCRYPTION_INFO_64  44U 
  551#define MACH_LOAD_COMMAND_LINKER_OPTION  45U 
  555#define MACH_LOAD_COMMAND_LINKER_OPTIMIZATION_HINT  46U 
  559#define MACH_LOAD_COMMAND_VERSION_MIN_TV_OS  47U 
  563#define MACH_LOAD_COMMAND_VERSION_MIN_WATCH_OS  48U 
  567#define MACH_LOAD_COMMAND_NOTE  49U 
  571#define MACH_LOAD_COMMAND_BUILD_VERSION  50U 
  575#define MACH_LOAD_COMMAND_DYLD_EXPORTS_TRIE  (51U | MACH_LC_REQUIRE_DYLD) 
  579#define MACH_LOAD_COMMAND_DYLD_CHAINED_FIXUPS  (52U | MACH_LC_REQUIRE_DYLD) 
  583#define MACH_LOAD_COMMAND_FILESET_ENTRY  (53U  | MACH_LC_REQUIRE_DYLD) 
  587#define MACH_LOAD_COMMAND_HDR_                                    \ 
  588  MACH_LOAD_COMMAND_TYPE CommandType;   \ 
 
  592#define NEXT_MACH_LOAD_COMMAND(Command)  \ 
 
  593  ((MACH_LOAD_COMMAND *)((UINTN)(Command) + (Command)->CommandSize)) 
  607#define MACH_SEGMENT_FLAG_HIGH_VIRTUAL_MEMORY  BIT0 
  612#define MACH_SEGMENT_FLAG_FIXED_VM_LIB  BIT1 
  617#define MACH_SEGMENT_FLAG_NO_RELOCATION  BIT2 
  623#define MACH_SEGMENT_FLAG_PROTECTED_VERSION_1  BIT3 
  625#define MACH_SEGMENT_VM_PROT_NONE  0U 
  627#define MACH_SEGMENT_VM_PROT_READ     BIT0 
  628#define MACH_SEGMENT_VM_PROT_WRITE    BIT1 
  629#define MACH_SEGMENT_VM_PROT_EXECUTE  BIT2 
  759#define MACH_SECTION_ATTRIBUTES_SYSYTEM  0x00FFFF00U 
  763#define MACH_SECTION_ATTRIBUTES_USER  0xFF000000U 
  767#define MACH_SECTION_ATTRIBUTE_LOCAL_RELOCATION  BIT8 
  771#define MACH_SECTION_ATTRIBUTE_EXTERNAL_RELOCATION  BIT9 
  775#define MACH_SECTION_ATTRIBUTE_SOME_INSTRUCTIONS  BIT10 
  783#define MACH_SECTION_TYPE_MASK        0x000000FFU   
  784#define MACH_SECTION_ATTRIBUTES_MASK  0xFFFFFF00U   
  796#define MACH_SECTION_ATTRIBUTE_DEBUG  BIT25 
  800#define MACH_SECTION_ATTRIBUTE_SELF_MODIFYING_CODE  BIT26 
  804#define MACH_SECTION_ATTRIBUTE_LIVE_SUPPORT  BIT27 
  808#define MACH_SECTION_ATTRIBUTE_NO_DEAD_STRIP  BIT28 
  813#define MACH_SECTION_ATTRIBUTE_STRIP_STATIC_SYMBOLS  BIT29 
  818#define MACH_SECTION_ATTRIBUTE_NO_TOC  BIT30 
  822#define MACH_SECTION_ATTRIBUTE_PURE_INSTRUCTIONS  BIT31 
  856  CHAR8     SectionName[16];       
 
  857  CHAR8     SegmentName[16];       
 
  862  UINT32    RelocationsOffset;     
 
  863  UINT32    NumRelocations;        
 
  873  CHAR8     SectionName[16];   
 
  874  CHAR8     SegmentName[16];   
 
  879  UINT32    RelocationsOffset; 
 
  880  UINT32    NumRelocations;    
 
  892#define NEXT_MACH_SEGMENT(Segment) \ 
 
  893  (MACH_SEGMENT_COMMAND *)((UINTN)(Segment) + (Segment)->Command.Size) 
  911  CHAR8                 SegmentName[16];   
 
  912  UINT32                VirtualAddress;    
 
  923#define NEXT_MACH_SEGMENT_64(Segment) \ 
 
  924  (MACH_SEGMENT_COMMAND_64 *)((UINTN)(Segment) + (Segment)->Hdr.Size) 
  936  CHAR8                 SegmentName[16];   
 
  937  UINT64                VirtualAddress;    
 
 1103#define MACH_X86_THREAD_STATE_MAX  614 
 1159#define MACH_VALID_THREAD_STATE_FLAVOR(Flavor)  \ 
 1160    (((Flavor) == MachX86ThreadState32)         \ 
 1161  || ((Flavor) == MachX86FloatState32)          \ 
 1162  || ((Flavor) == MachX86ExceptionState32)      \ 
 1163  || ((Flavor) == MachX86DebugState32)          \ 
 1164  || ((Flavor) == MachX86ThreadState64)         \ 
 1165  || ((Flavor) == MachX86FloatState64)          \ 
 1166  || ((Flavor) == MachX86ExceptionState64)      \ 
 1167  || ((Flavor) == MachX86DebugState64)          \ 
 1168  || ((Flavor) == MachX86ThreadState)           \ 
 1169  || ((Flavor) == MachX86FloatState)            \ 
 1170  || ((Flavor) == MachX86ExceptionState)        \ 
 1171  || ((Flavor) == MachX86DebugState)            \ 
 1172  || ((Flavor) == MachX86AvxState32)            \ 
 1173  || ((Flavor) == MachX86AvxState64)            \ 
 1174  || ((Flavor) == MachX86AvxState)              \ 
 1175  || ((Flavor) == MachX86Avx512State32)         \ 
 1176  || ((Flavor) == MachX86Avx512State64)         \ 
 1177  || ((Flavor) == MachX86Avx512State)           \ 
 1178  || ((Flavor) == MachThreadStateNone)) 
 1205  UINT32    NumThreadStates;          
 
 1206  UINT32    ThreadState[];
 
 1223  UINT32    InitRoutineAddress;
 
 1227  UINT32    InitModuleIndex;
 
 1244  UINT64    InitiRoutineAddress;
 
 1248  UINT64    InitModuleIndex;
 
 1264  UINT32    SymbolsOffset;          
 
 1266  UINT32    StringsOffset;          
 
 1329  UINT32    LocalSymbolsIndex; 
 
 1330  UINT32    NumLocalSymbols;   
 
 1332  UINT32    ExternalSymbolsIndex; 
 
 1333  UINT32    NumExternalSymbols;   
 
 1335  UINT32    UndefinedSymbolsIndex; 
 
 1336  UINT32    NumUndefinedSymbols;   
 
 1350  UINT32    TableOfContentsFileOffset;
 
 1354  UINT32    TableOfContentsNumEntries;
 
 1366  UINT32    ModuleTableFileOffset; 
 
 1367  UINT32    ModuleTableNumEntries; 
 
 1382  UINT32    ReferencedSymbolTableFileOffset;
 
 1386  UINT32    ReferencedSymbolTableNumEntries;
 
 1402  UINT32    IndirectSymbolsOffset;
 
 1406  UINT32    NumIndirectSymbols;
 
 1439  UINT32    ExternalRelocationsOffset;
 
 1443  UINT32    NumExternalRelocations;
 
 1451  UINT32    LocalRelocationsOffset; 
 
 1452  UINT32    NumOfLocalRelocations;  
 
 1462#define MACH_INDIRECT_SYMBOL_LOCAL  0x80000000U 
 1463#define MACH_INDIRECT_SYMBOL_ABS    0x40000000U 
 1482  UINT32    SubImagesIndex       : 8;  
 
 1483  UINT32    TableOfContentsIndex : 24; 
 
 1619#define MACH_PLATFORM_MACOS             1U 
 1620#define MACH_PLATFORM_IOS               2U 
 1621#define MACH_PLATFORM_TVOS              3U 
 1622#define MACH_PLATFORM_WATCHOS           4U 
 1623#define MACH_PLATFORM_BRIDGEOS          5U 
 1624#define MACH_PLATFORM_MACCATALYST       6U 
 1625#define MACH_PLATFORM_IOSSIMULATOR      7U 
 1626#define MACH_PLATFORM_TVOSSIMULATOR     8U 
 1627#define MACH_PLATFORM_WATCHOSSIMULATOR  9U 
 1628#define MACH_PLATFORM_DRIVERKIT         10U 
 1633#define MACH_TOOL_CLANG  1U 
 1634#define MACH_TOOL_SWIFT  2U 
 1635#define MACH_TOOL_LD     3U 
 1658  UINT32    RebaseOffset; 
 
 1673  UINT32    BindingInfoOffset; 
 
 1674  UINT32    BindingInfoSize;   
 
 1690  UINT32    WeakBindingInfoOffset; 
 
 1691  UINT32    WeakBindingInfoSize;   
 
 1704  UINT32    LazyBindingInfoOffset; 
 
 1705  UINT32    LazyBindingInfoSize;   
 
 1738  UINT32    ExportSymbolsOffset; 
 
 1739  UINT32    ExportSymbolsSize;   
 
 1790  UINT32                      HeaderAddress; 
 
 1801  UINT64                      VirtualAddress; 
 
 1823  UINT32    FixupsVersion; 
 
 1824  UINT32    StartsOffset;  
 
 1825  UINT32    ImportsOffset; 
 
 1826  UINT32    SymbolsOffset; 
 
 1827  UINT32    ImportsCount;  
 
 1828  UINT32    ImportsFormat; 
 
 1829  UINT32    SymbolsFormat; 
 
 
 1837  UINT32    SegInfoOffset[]; 
 
 1845  UINT16    PointerFormat;   
 
 1846  UINT64    SegmentOffset;   
 
 1847  UINT32    MaxValidPointer; 
 
 
 1894#define MACH_SOURCE_VERSION_A_MASK  0xFFFFFF0000000000U 
 1895#define MACH_SOURCE_VERSION_B_MASK  0x000000FFC0000000U 
 1896#define MACH_SOURCE_VERSION_V_MASK  0x000000003FF00000U 
 1897#define MACH_SOURCE_VERSION_D_MASK  0x00000000000FFC00U 
 1898#define MACH_SOURCE_VERSION_E_MASK  0x00000000000003FFU 
 1900#define MACH_SOURCE_VERSION_A(Version)  (((Version) & MACH_SOURCE_VERSION_A_MASK) >> 40U) 
 1901#define MACH_SOURCE_VERSION_B(Version)  (((Version) & MACH_SOURCE_VERSION_B_MASK) >> 30U) 
 1902#define MACH_SOURCE_VERSION_C(Version)  (((Version) & MACH_SOURCE_VERSION_V_MASK) >> 20U) 
 1903#define MACH_SOURCE_VERSION_D(Version)  (((Version) & MACH_SOURCE_VERSION_D_MASK) >> 10U) 
 1904#define MACH_SOURCE_VERSION_E(Version)  ((Version)  & MACH_SOURCE_VERSION_E_MASK) 
 1953#undef MACH_LOAD_COMMAND_HDR_ 
 2002#define MACH_HEADER_FLAG_NO_UNDEFINED_REFERENCES          BIT0 
 2003#define MACH_HEADER_FLAG_INCREMENTAL_LINK                 BIT1 
 2004#define MACH_HEADER_FLAG_DYNAMIC_LINKER_LINK              BIT2 
 2005#define MACH_HEADER_FLAG_BINARY_DATA_LOAD                 BIT3 
 2006#define MACH_HEADER_FLAG_PREBOUND                         BIT4 
 2007#define MACH_HEADER_FLAG_SPLIT_SEGMENTS                   BIT5 
 2008#define MACH_HEADER_FLAG_LAZY_INITIALIZATION              BIT6 
 2009#define MACH_HEADER_FLAG_TWO_LEVEL                        BIT7 
 2010#define MACH_HEADER_FLAG_FORCE_FLAT                       BIT8 
 2011#define MACH_HEADER_FLAG_NO_MULTIPLE_DEFINITIONS          BIT9 
 2012#define MACH_HEADER_FLAG_NO_FIX_PREBINDING                BIT10 
 2013#define MACH_HEADER_FLAG_PREBINDABLE                      BIT11 
 2014#define MACH_HEADER_FLAG_ALL_MODULES_BOUND                BIT12 
 2015#define MACH_HEADER_FLAG_SUBSECTIONS_VIA_SYNBOLS          BIT13 
 2016#define MACH_HEADER_FLAG_CANONICAL                        BIT14 
 2017#define MACH_HEADER_FLAG_WEAK_DEFINES                     BIT15 
 2018#define MACH_HEADER_FLAG_BINDS_TO_WEAK                    BIT16 
 2019#define MACH_HEADER_FLAG_ALLOW_STACK_EXECUTION            BIT17 
 2020#define MACH_HEADER_FLAG_ROOT_SAFE                        BIT18 
 2021#define MACH_HEADER_FLAG_SET_UID_SAFE                     BIT19 
 2022#define MACH_HEADER_FLAG_NO_REEXPORTED_DYLIBS             BIT20 
 2023#define MACH_HEADER_FLAG_POSITION_INDEPENDENT_EXECUTABLE  BIT21 
 2024#define MACH_HEADER_FLAG_DEAD_STRIPPABLE_DYLIB            BIT22 
 2025#define MACH_HEADER_FLAG_HAS_TLV_DESCRIPTORS              BIT23 
 2026#define MACH_HEADER_FLAG_NO_HEAP_EXECUTION                BIT24 
 2027#define MACH_HEADER_FLAG_APP_EXTENSION_SAFE               BIT25 
 2028#define MACH_HEADER_FLAG_NLIST_OUTOFSYNC_WITH_DYLDINFO    BIT26 
 2029#define MACH_HEADER_FLAG_SIM_SUPPORT                      BIT27 
 2030#define MACH_HEADER_FLAG_DYLIB_IN_CACHE                   BIT31 
 2037#define MACH_HEADER_SIGNATURE         0xFEEDFACE  
 2038#define MACH_HEADER_INVERT_SIGNATURE  0xCEFAEDFE  
 2050  UINT32                   CommandsSize; 
 
 2058#define MACH_HEADER_64_SIGNATURE         0xFEEDFACF  
 2059#define MACH_HEADER_64_INVERT_SIGNATURE  0xCFFAEDFE  
 2071  UINT32                   CommandsSize; 
 
 2142#define MACH_N_TYPE_STAB  0xE0U   
 2144#define MACH_N_TYPE_PEXT  0x10U   
 2145#define MACH_N_TYPE_TYPE  0x0EU   
 2146#define MACH_N_TYPE_EXT   0x01U   
 2159#define MACH_N_TYPE_UNDF  0x0U     
 2160#define MACH_N_TYPE_ABS   0x2U     
 2161#define MACH_N_TYPE_SECT  0xEU     
 2162#define MACH_N_TYPE_PBUD  0xCU     
 2163#define MACH_N_TYPE_INDR  0xAU     
 2200#define MACH_N_GSYM     0x20U  
 2201#define MACH_N_FNAME    0x22U  
 2202#define MACH_N_FUN      0x24U  
 2203#define MACH_N_STSYM    0x26U  
 2204#define MACH_N_LCSYM    0x28U  
 2205#define MACH_N_BNSYM    0x2EU  
 2206#define MACH_N_AST      0x32U  
 2207#define MACH_N_OPT      0x3CU  
 2208#define MACH_N_RSYM     0x40U  
 2209#define MACH_N_SLINE    0x44U  
 2210#define MACH_N_ENSYM    0x4EU  
 2211#define MACH_N_SSYM     0x60U  
 2212#define MACH_N_SO       0x64U  
 2213#define MACH_N_OSO      0x66U  
 2214#define MACH_N_LSYM     0x80U  
 2215#define MACH_N_BINCL    0x82U  
 2216#define MACH_N_SOL      0x84U  
 2217#define MACH_N_PARAMS   0x86U  
 2218#define MACH_N_VERSION  0x88U  
 2219#define MACH_N_OLEVEL   0x8AU  
 2220#define MACH_N_PSYM     0xA0U  
 2221#define MACH_N_EINCL    0xA2U  
 2222#define MACH_N_ENTRY    0xA4U  
 2223#define MACH_N_LBRAC    0xC0U  
 2224#define MACH_N_EXCL     0xC2U  
 2225#define MACH_N_RBRAC    0xE0U  
 2226#define MACH_N_BCOMM    0xE2U  
 2227#define MACH_N_ECOMM    0xE4U  
 2228#define MACH_N_ECOML    0xE8U  
 2229#define MACH_N_LENG     0xFEU  
 2241#define MACH_N_NO_DEAD_STRIP  0x0020U 
 2247#define MACH_N_DESC_DISCARDED  0x0020U 
 2253#define MACH_N_WEAK_REF  0x0040U 
 2260#define MACH_N_WEAK_DEF  0x0080U 
 2266#define MACH_N_REF_TO_WEAK  0x0080U 
 2271#define MACH_N_ARM_THUMB_DEF  0x0008U 
 2278#define MACH_N_SYMBOL_RESOLVER  0x0100U 
 2283#define MACH_N_ALT_ENTRY  0x0200U 
 2288#define MACH_N_PC  0x30U 
 2305  UINT32    SymbolNumber : 24; 
 
 2307  UINT32    PcRelative   : 1;  
 
 2313#define MACH_RELOC_ABSOLUTE  0U     
 2380#define MACH_RELOC_SCATTERED  0x80000000U 
 2383 #if defined (MACH_LITTLE_ENDIAN) 
 2384  UINT32    Address    : 24; 
 
 2388  UINT32    PcRelative : 1;  
 
 2389  UINT32    Scattered  : 1;  
 
 2392 #elif defined (MACH_BIG_ENDIAN) 
 2393  UINT32    Scattered  : 1;  
 
 2394  UINT32    PcRelative : 1;  
 
 2397  UINT32    Address    : 24; 
 
 2409  #error "No endianness information was provided!" 
 
#define MACH_CPU_TYPE_64(CpuType)
 
INT32 MACH_CPU_THREADTYPE
 
#define MACH_CPU_TYPE_64_32(CpuType)
 
#define MACH_LOAD_COMMAND_HDR_
 
@ MachX86ExceptionState32
 
@ MachX86ExceptionState64
 
UINT32 MACH_HEADER_FILE_TYPE
 
UINT32 MACH_SEGMENT_FLAGS
 
#define MACH_CPU_SUBTYPE_INTEL(f, Model)
 
@ MachGenericRelocSectDiff
 
@ MachGenericRelocVanilla
 
@ MachGenericRelocThreadLocalVariables
thread local variables
 
@ MachGenericRelocLocalSectDiff
 
@ MachGenericRelocPreboundLazyPointer
prebound lazy pointer
 
@ MACH_DYLD_CHAINED_PTR_START_MULTI
used in page_start[] to denote a page which has multiple starts
 
@ MACH_DYLD_CHAINED_PTR_START_NONE
used in page_start[] to denote a page with no fixups
 
@ MACH_DYLD_CHAINED_PTR_START_LAST
used in chain_starts[] to denote last start in list for page
 
@ MachX8664RelocUnsigned
for absolute addresses
 
@ MachX8664RelocGotLoad
a MOVQ load of a GOT entry
 
@ MachX8664RelocSigned
for signed 32-bit displacement
 
@ MachX8664RelocThreadLocalVariable
for thread local variables
 
@ MachX8664RelocSubtractor
 
@ MachX8664RelocGot
other GOT references
 
@ MachSectionType4ByteLiterals
 
@ MachSectionTypeGigabyteZeroFill
 
@ MachSectionTypeModTerminateFunctionPointers
 
@ MachSectionTypeThreadLocalRegular
 
@ MachSectionTypeThreadVariablePointers
 
@ MachSectionTypeNonLazySymbolPointers
 
@ MachSectionTypeCoalesced
 
@ MachSectionTypeDtraceObjectFormat
 
@ MachSectionTypeInterposing
 
@ MachSectionTypeModInitalizeFunctionPointers
 
@ MachSectionTypeThreadLocalInitializeFunctionOffsets
 
@ MachSectionType16ByteLiterals
 
@ MachSectionTypeThreadLocalInitializeFunctionPointers
 
@ MachSectionType8ByteLiterals
 
@ MachSectionTypeLazySymbolPointers
 
@ MachSectionTypeZeroFill
 
@ MachSectionTypeSymbolStubs
 
@ MachSectionTypeThreadLocalVariables
 
@ MachSectionTypeCStringLiterals
 
@ MachSectionTypeLiteralPointers
 
@ MachSectionTypeThreadLocalZeroFill
 
@ MachSectionTypeLazyDylibSymbolPointers
 
@ MACH_DYLD_CHAINED_PTR_ARM64E_OFFSET
old name
 
@ MACH_DYLD_CHAINED_PTR_32_FIRMWARE
 
@ MACH_DYLD_CHAINED_PTR_ARM64E_KERNEL
stride 4, unauth target is vm offset
 
@ MACH_DYLD_CHAINED_PTR_32_CACHE
 
@ MACH_DYLD_CHAINED_PTR_ARM64E_FIRMWARE
stride 4, unauth target is vmaddr
 
@ MACH_DYLD_CHAINED_PTR_ARM64E_USERLAND
stride 8, unauth target is vm offset
 
@ MACH_DYLD_CHAINED_PTR_64
target is vmaddr
 
@ MACH_DYLD_CHAINED_PTR_32
 
@ MACH_DYLD_CHAINED_PTR_ARM64E_USERLAND24
stride 8, unauth target is vm offset, 24-bit bind
 
@ MACH_DYLD_CHAINED_PTR_ARM64E
stride 8, unauth target is vmaddr
 
@ MACH_DYLD_CHAINED_PTR_64_OFFSET
target is vm offset
 
@ MACH_DYLD_CHAINED_PTR_64_KERNEL_CACHE
 
@ MACH_DYLD_CHAINED_PTR_X86_64_KERNEL_CACHE
stride 1, x86_64 kernel caches
 
UINT32 MACH_LOAD_COMMAND_TYPE
 
@ MachCpuFamilyArmLightningThunder
 
@ MachCpuFamilyArmHurricane
 
@ MachCpuFamilyArmTwister
 
@ MachCpuFamilyIntelMerom
 
@ MachCpuFamilyIntelPenryn
 
@ MachCpuFamilyIntelSandyBridge
 
@ MachCpuFamilyIntelCoffeeLake
 
@ MachCpuFamilyIntelYonah
 
@ MachCpuFamilyArmTyphoon
 
@ MachCpuFamilyIntelCometLake
 
@ MachCpuFamilyArmVortexTempest
 
@ MachCpuFamilyIntelCore2
 
@ MachCpuFamilyIntelSkylake
 
@ MachCpuFamilyArmCyclone
 
@ MachCpuFamilyIntelHaswell
 
@ MachCpuFamilyIntelBroadwell
 
@ MachCpuFamilyIntelNehalem
 
@ MachCpuFamilyIntelIvyBridge
 
@ MachCpuFamilyIntelIceLake
 
@ MachCpuFamilyArmMonsoonMistral
 
@ MachCpuFamilyIntelWestmere
 
@ MachCpuFamilyIntelKabyLake
 
@ MachHeaderFileTypeExecute
 
@ MachHeaderFileTypeDynamicLinker
 
@ MachHeaderFileTypeKextBundle
 
@ MachHeaderFileTypeBundle
 
@ MachHeaderFileTypeFixedVmLib
 
@ MachHeaderFileTypeDylib
 
@ MachHeaderFileTypeFileSet
 
@ MachHeaderFileTypeDynamicLinkerStub
 
@ MachHeaderFileTypeObject
 
@ MachHeaderFileTypePreload
 
@ MachCpuSubtypeMipsR3000
 
@ MachCpuSubtypePowerPc970
 
@ MachCpuSubtypeBigEndian
 
@ MachCpuSubtypeArmXscale
 
@ MachCpuSubtypePowerPc620
 
@ MachCpuSubtypePowerPc7400
 
@ MachCpuSubtypePentium3Xeon
 
@ MachCpuSubtypeMc68030Only
 
@ MachCpuSubtypePentiumPro
 
@ MachCpuSubtypeArm6432All
 
@ MachCpuSubtypePowerPc602
 
@ MachCpuSubtypeMipsR2000a
 
@ MachCpuSubtypeMipsR2000
 
@ MachCpuSubtypePowerPc604
 
@ MachCpuSubtypeMipsR2600
 
@ MachCpuSubtypePentium4M
 
@ MachCpuSubtypeMipsR3000a
 
@ MachCpuSubtypePentium3M
 
@ MachCpuSubtypeHppa7100Lc
 
@ MachCpuSubtypePowerPc603e
 
@ MachCpuSubtypePowerPc7450
 
@ MachCpuSubtypePowerPc603ev
 
@ MachCpuSubtypePowerPc603
 
@ MachCpuSubtypeCeleronMobile
 
@ MachCpuSubtypeArm6432V8
 
@ MachCpuSubtypePowerPcAll
 
@ MachCpuSubtypeMipsR2800
 
@ MachCpuSubtypeMc98000All
 
@ MachCpuSubtypePowerPc750
 
@ MachCpuSubtypeLittleEndian
 
@ MachCpuSubtypeMipsR2300
 
@ MachCpuSubtypePowerPc601
 
@ MachCpuSubtypePentium3M3
 
@ MachCpuSubtypeMc88000All
 
@ MachCpuSubtypePentium3M5
 
@ MachCpuSubtypePowerPc604e
 
UINT8 Checksum
All 32 bits added together have to equal 1.
 
DMG_SIZE_DEVICE_PATH Size
 
MACH_LOAD_COMMAND_STRING Name
 
UINT32 CompatibilityVersion
 
UINT32 MinorVersion
library's minor version number
 
MACH_LOAD_COMMAND_STRING Name
library's target pathname
 
UINT32 HeaderAddress
library's header address
 
UINT32 Address32
pointer to the string
 
UINT32 Offset
offset to the string