Go to the documentation of this file.
23 #ifndef _MACHO_LOADER_H_
24 #define _MACHO_LOADER_H_
58 #define MH_MAGIC 0xfeedface
59 #define MH_CIGAM 0xcefaedfe
77 #define MH_MAGIC_64 0xfeedfacf
78 #define MH_CIGAM_64 0xcffaedfe
103 #define MH_OBJECT 0x1
104 #define MH_EXECUTE 0x2
105 #define MH_FVMLIB 0x3
107 #define MH_PRELOAD 0x5
109 #define MH_DYLINKER 0x7
110 #define MH_BUNDLE 0x8
111 #define MH_DYLIB_STUB 0x9
115 #define MH_KEXT_BUNDLE 0xb
118 #define MH_NOUNDEFS 0x1
120 #define MH_INCRLINK 0x2
123 #define MH_DYLDLINK 0x4
126 #define MH_BINDATLOAD 0x8
129 #define MH_PREBOUND 0x10
131 #define MH_SPLIT_SEGS 0x20
133 #define MH_LAZY_INIT 0x40
137 #define MH_TWOLEVEL 0x80
139 #define MH_FORCE_FLAT 0x100
141 #define MH_NOMULTIDEFS 0x200
145 #define MH_NOFIXPREBINDING 0x400
148 #define MH_PREBINDABLE 0x800
151 #define MH_ALLMODSBOUND 0x1000
156 #define MH_SUBSECTIONS_VIA_SYMBOLS 0x2000
159 #define MH_CANONICAL 0x4000
161 #define MH_WEAK_DEFINES 0x8000
163 #define MH_BINDS_TO_WEAK 0x10000
166 #define MH_ALLOW_STACK_EXECUTION 0x20000
170 #define MH_ROOT_SAFE 0x40000
174 #define MH_SETUID_SAFE 0x80000
178 #define MH_NO_REEXPORTED_DYLIBS 0x100000
182 #define MH_PIE 0x200000
186 #define MH_DEAD_STRIPPABLE_DYLIB 0x400000
193 #define MH_HAS_TLV_DESCRIPTORS 0x800000
196 #define MH_NO_HEAP_EXECUTION 0x1000000
203 #define MH_APP_EXTENSION_SAFE 0x02000000
237 #define LC_REQ_DYLD 0x80000000
240 #define LC_SEGMENT 0x1
241 #define LC_SYMTAB 0x2
242 #define LC_SYMSEG 0x3
243 #define LC_THREAD 0x4
244 #define LC_UNIXTHREAD 0x5
245 #define LC_LOADFVMLIB 0x6
246 #define LC_IDFVMLIB 0x7
248 #define LC_FVMFILE 0x9
249 #define LC_PREPAGE 0xa
250 #define LC_DYSYMTAB 0xb
251 #define LC_LOAD_DYLIB 0xc
252 #define LC_ID_DYLIB 0xd
253 #define LC_LOAD_DYLINKER 0xe
254 #define LC_ID_DYLINKER 0xf
255 #define LC_PREBOUND_DYLIB 0x10
257 #define LC_ROUTINES 0x11
258 #define LC_SUB_FRAMEWORK 0x12
259 #define LC_SUB_UMBRELLA 0x13
260 #define LC_SUB_CLIENT 0x14
261 #define LC_SUB_LIBRARY 0x15
262 #define LC_TWOLEVEL_HINTS 0x16
263 #define LC_PREBIND_CKSUM 0x17
269 #define LC_LOAD_WEAK_DYLIB (0x18 | LC_REQ_DYLD)
271 #define LC_SEGMENT_64 0x19
273 #define LC_ROUTINES_64 0x1a
275 #define LC_RPATH (0x1c | LC_REQ_DYLD)
276 #define LC_CODE_SIGNATURE 0x1d
277 #define LC_SEGMENT_SPLIT_INFO 0x1e
278 #define LC_REEXPORT_DYLIB (0x1f | LC_REQ_DYLD)
279 #define LC_LAZY_LOAD_DYLIB 0x20
280 #define LC_ENCRYPTION_INFO 0x21
281 #define LC_DYLD_INFO 0x22
282 #define LC_DYLD_INFO_ONLY (0x22|LC_REQ_DYLD)
283 #define LC_LOAD_UPWARD_DYLIB (0x23 | LC_REQ_DYLD)
284 #define LC_VERSION_MIN_MACOSX 0x24
285 #define LC_VERSION_MIN_IPHONEOS 0x25
286 #define LC_FUNCTION_STARTS 0x26
287 #define LC_DYLD_ENVIRONMENT 0x27
289 #define LC_MAIN (0x28|LC_REQ_DYLD)
290 #define LC_DATA_IN_CODE 0x29
291 #define LC_SOURCE_VERSION 0x2A
292 #define LC_DYLIB_CODE_SIGN_DRS 0x2B
293 #define LC_ENCRYPTION_INFO_64 0x2C
294 #define LC_LINKER_OPTION 0x2D
295 #define LC_LINKER_OPTIMIZATION_HINT 0x2E
296 #define LC_VERSION_MIN_TVOS 0x2F
297 #define LC_VERSION_MIN_WATCHOS 0x30
299 #define LC_BUILD_VERSION 0x32
363 #define SG_HIGHVM 0x1
366 #define SG_FVMLIB 0x2
369 #define SG_NORELOC 0x4
372 #define SG_PROTECTED_VERSION_1 0x8
440 #define SECTION_TYPE 0x000000ff
441 #define SECTION_ATTRIBUTES 0xffffff00
444 #define S_REGULAR 0x0
445 #define S_ZEROFILL 0x1
446 #define S_CSTRING_LITERALS 0x2
447 #define S_4BYTE_LITERALS 0x3
448 #define S_8BYTE_LITERALS 0x4
449 #define S_LITERAL_POINTERS 0x5
463 #define S_NON_LAZY_SYMBOL_POINTERS 0x6
465 #define S_LAZY_SYMBOL_POINTERS 0x7
467 #define S_SYMBOL_STUBS 0x8
470 #define S_MOD_INIT_FUNC_POINTERS 0x9
472 #define S_MOD_TERM_FUNC_POINTERS 0xa
474 #define S_COALESCED 0xb
476 #define S_GB_ZEROFILL 0xc
479 #define S_INTERPOSING 0xd
482 #define S_16BYTE_LITERALS 0xe
484 #define S_DTRACE_DOF 0xf
486 #define S_LAZY_DYLIB_SYMBOL_POINTERS 0x10
492 #define S_THREAD_LOCAL_REGULAR 0x11
494 #define S_THREAD_LOCAL_ZEROFILL 0x12
496 #define S_THREAD_LOCAL_VARIABLES 0x13
497 #define S_THREAD_LOCAL_VARIABLE_POINTERS 0x14
499 #define S_THREAD_LOCAL_INIT_FUNCTION_POINTERS 0x15
507 #define SECTION_ATTRIBUTES_USR 0xff000000
508 #define S_ATTR_PURE_INSTRUCTIONS 0x80000000
510 #define S_ATTR_NO_TOC 0x40000000
514 #define S_ATTR_STRIP_STATIC_SYMS 0x20000000
517 #define S_ATTR_NO_DEAD_STRIP 0x10000000
518 #define S_ATTR_LIVE_SUPPORT 0x08000000
520 #define S_ATTR_SELF_MODIFYING_CODE 0x04000000
531 #define S_ATTR_DEBUG 0x02000000
532 #define SECTION_ATTRIBUTES_SYS 0x00ffff00
533 #define S_ATTR_SOME_INSTRUCTIONS 0x00000400
535 #define S_ATTR_EXT_RELOC 0x00000200
537 #define S_ATTR_LOC_RELOC 0x00000100
557 #define SEG_PAGEZERO "__PAGEZERO"
562 #define SEG_TEXT "__TEXT"
563 #define SECT_TEXT "__text"
565 #define SECT_FVMLIB_INIT0 "__fvmlib_init0"
567 #define SECT_FVMLIB_INIT1 "__fvmlib_init1"
571 #define SEG_DATA "__DATA"
572 #define SECT_DATA "__data"
574 #define SECT_BSS "__bss"
576 #define SECT_COMMON "__common"
579 #define SEG_OBJC "__OBJC"
580 #define SECT_OBJC_SYMBOLS "__symbol_table"
581 #define SECT_OBJC_MODULES "__module_info"
582 #define SECT_OBJC_STRINGS "__selector_strs"
583 #define SECT_OBJC_REFS "__selector_refs"
585 #define SEG_ICON "__ICON"
586 #define SECT_ICON_HEADER "__header"
587 #define SECT_ICON_TIFF "__tiff"
589 #define SEG_LINKEDIT "__LINKEDIT"
595 #define SEG_UNIXSTACK "__UNIXSTACK"
597 #define SEG_IMPORT "__IMPORT"
1005 #define INDIRECT_SYMBOL_LOCAL 0x80000000
1006 #define INDIRECT_SYMBOL_ABS 0x40000000
1230 #define PLATFORM_MACOS 1
1231 #define PLATFORM_IOS 2
1232 #define PLATFORM_TVOS 3
1233 #define PLATFORM_WATCHOS 4
1236 #define TOOL_CLANG 1
1237 #define TOOL_SWIFT 2
1354 #define REBASE_TYPE_POINTER 1
1355 #define REBASE_TYPE_TEXT_ABSOLUTE32 2
1356 #define REBASE_TYPE_TEXT_PCREL32 3
1358 #define REBASE_OPCODE_MASK 0xF0
1359 #define REBASE_IMMEDIATE_MASK 0x0F
1360 #define REBASE_OPCODE_DONE 0x00
1361 #define REBASE_OPCODE_SET_TYPE_IMM 0x10
1362 #define REBASE_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB 0x20
1363 #define REBASE_OPCODE_ADD_ADDR_ULEB 0x30
1364 #define REBASE_OPCODE_ADD_ADDR_IMM_SCALED 0x40
1365 #define REBASE_OPCODE_DO_REBASE_IMM_TIMES 0x50
1366 #define REBASE_OPCODE_DO_REBASE_ULEB_TIMES 0x60
1367 #define REBASE_OPCODE_DO_REBASE_ADD_ADDR_ULEB 0x70
1368 #define REBASE_OPCODE_DO_REBASE_ULEB_TIMES_SKIPPING_ULEB 0x80
1374 #define BIND_TYPE_POINTER 1
1375 #define BIND_TYPE_TEXT_ABSOLUTE32 2
1376 #define BIND_TYPE_TEXT_PCREL32 3
1378 #define BIND_SPECIAL_DYLIB_SELF 0
1379 #define BIND_SPECIAL_DYLIB_MAIN_EXECUTABLE -1
1380 #define BIND_SPECIAL_DYLIB_FLAT_LOOKUP -2
1382 #define BIND_SYMBOL_FLAGS_WEAK_IMPORT 0x1
1383 #define BIND_SYMBOL_FLAGS_NON_WEAK_DEFINITION 0x8
1385 #define BIND_OPCODE_MASK 0xF0
1386 #define BIND_IMMEDIATE_MASK 0x0F
1387 #define BIND_OPCODE_DONE 0x00
1388 #define BIND_OPCODE_SET_DYLIB_ORDINAL_IMM 0x10
1389 #define BIND_OPCODE_SET_DYLIB_ORDINAL_ULEB 0x20
1390 #define BIND_OPCODE_SET_DYLIB_SPECIAL_IMM 0x30
1391 #define BIND_OPCODE_SET_SYMBOL_TRAILING_FLAGS_IMM 0x40
1392 #define BIND_OPCODE_SET_TYPE_IMM 0x50
1393 #define BIND_OPCODE_SET_ADDEND_SLEB 0x60
1394 #define BIND_OPCODE_SET_SEGMENT_AND_OFFSET_ULEB 0x70
1395 #define BIND_OPCODE_ADD_ADDR_ULEB 0x80
1396 #define BIND_OPCODE_DO_BIND 0x90
1397 #define BIND_OPCODE_DO_BIND_ADD_ADDR_ULEB 0xA0
1398 #define BIND_OPCODE_DO_BIND_ADD_ADDR_IMM_SCALED 0xB0
1399 #define BIND_OPCODE_DO_BIND_ULEB_TIMES_SKIPPING_ULEB 0xC0
1406 #define EXPORT_SYMBOL_FLAGS_KIND_MASK 0x03
1407 #define EXPORT_SYMBOL_FLAGS_KIND_REGULAR 0x00
1408 #define EXPORT_SYMBOL_FLAGS_KIND_THREAD_LOCAL 0x01
1409 #define EXPORT_SYMBOL_FLAGS_WEAK_DEFINITION 0x04
1410 #define EXPORT_SYMBOL_FLAGS_REEXPORT 0x08
1411 #define EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER 0x10
1500 #define DICE_KIND_DATA 0x0001
1501 #define DICE_KIND_JUMP_TABLE8 0x0002
1502 #define DICE_KIND_JUMP_TABLE16 0x0003
1503 #define DICE_KIND_JUMP_TABLE32 0x0004
1504 #define DICE_KIND_ABS_JUMP_TABLE32 0x0005
uint32_t objc_module_info_addr
uint32_t compatibility_version
union lc_str sub_umbrella
union lc_str linked_modules
unsigned __int64 uint64_t
uint32_t objc_module_info_size
uint32_t objc_module_info_size
uint64_t objc_module_info_addr
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:29