Add newtypes for Mach-O constants (#897)

* Fix R_ABS type

* Add macho::CpuType and CpuSubtype

Fixes a subtype check in MachOFile::sub_architecture().

readobj no longer displays subtypes for non-modern architectures.

* Add macho::VmProt

* Add macho::FileType and macho::FileFlags

Also fixes flag printing in readobj example.

* Add macho::LoadCommandType

* Add macho::DyldCacheMappingFlags

* Add macho::SegmentFlags, SectionFlags, and SectionType

* Add macho::DylibUseFlags

* Add macho build version newtypes

* Add macho::SymbolFlags

* Add macho::SymbolDesc

Also avoid returning an error in MachOFile::imports for
DYNAMIC_LOOKUP_ORDINAL and EXECUTABLE_ORDINAL.

* Add macho::DiceKind

* Add macho::ExportSymbolFlags

Includes slightly better validation of the flags value.

* Add macho::IndirectSymbol
This commit is contained in:
Philip Craig
2026-05-12 14:34:34 +10:00
committed by GitHub
parent 130ca5e2d6
commit 006652c1ce
39 changed files with 1742 additions and 1612 deletions
File diff suppressed because it is too large Load Diff
@@ -1,29 +1,29 @@
Format: MachO Little-endian 64-bit
Kind: Relocatable
Architecture: Aarch64
Flags: MachO { flags: 2000 }
Flags: MachO { flags: MH_SUBSECTIONS_VIA_SYMBOLS }
Relative Address Base: 0
Entry Address: 0
Segment { name: "", address: 0, size: 2ca, permissions: RWX }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 34, align: 4, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__TEXT", name: "__cstring", address: 34, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: 2 } }
3: Section { segment: "__DWARF", name: "__debug_abbrev", address: 41, size: 3a, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
4: Section { segment: "__DWARF", name: "__debug_info", address: 7b, size: 53, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
5: Section { segment: "__DWARF", name: "__debug_str", address: ce, size: cb, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
6: Section { segment: "__DWARF", name: "__apple_names", address: 199, size: 3c, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
7: Section { segment: "__DWARF", name: "__apple_objc", address: 1d5, size: 24, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
8: Section { segment: "__DWARF", name: "__apple_namespac", address: 1f9, size: 24, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
9: Section { segment: "__DWARF", name: "__apple_types", address: 21d, size: 47, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
10: Section { segment: "__LD", name: "__compact_unwind", address: 268, size: 20, align: 8, kind: Unknown, flags: MachO { flags: 2000000 } }
11: Section { segment: "__DWARF", name: "__debug_line", address: 288, size: 42, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 34, align: 4, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__TEXT", name: "__cstring", address: 34, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: S_CSTRING_LITERALS } }
3: Section { segment: "__DWARF", name: "__debug_abbrev", address: 41, size: 3a, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
4: Section { segment: "__DWARF", name: "__debug_info", address: 7b, size: 53, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
5: Section { segment: "__DWARF", name: "__debug_str", address: ce, size: cb, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
6: Section { segment: "__DWARF", name: "__apple_names", address: 199, size: 3c, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
7: Section { segment: "__DWARF", name: "__apple_objc", address: 1d5, size: 24, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
8: Section { segment: "__DWARF", name: "__apple_namespac", address: 1f9, size: 24, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
9: Section { segment: "__DWARF", name: "__apple_types", address: 21d, size: 47, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
10: Section { segment: "__LD", name: "__compact_unwind", address: 268, size: 20, align: 8, kind: Unknown, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
11: Section { segment: "__DWARF", name: "__debug_line", address: 288, size: 42, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
Symbols
0: Symbol { name: "ltmp0", address: 0, size: 0, kind: Section, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
1: Symbol { name: "l_.str", address: 34, size: 0, kind: Data, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
2: Symbol { name: "ltmp1", address: 34, size: 0, kind: Section, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
3: Symbol { name: "ltmp2", address: 268, size: 0, kind: Section, section: Section(SectionIndex(a)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
4: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 0 } }
5: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 0 } }
0: Symbol { name: "ltmp0", address: 0, size: 0, kind: Section, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
1: Symbol { name: "l_.str", address: 34, size: 0, kind: Data, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
2: Symbol { name: "ltmp1", address: 34, size: 0, kind: Section, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
3: Symbol { name: "ltmp2", address: 268, size: 0, kind: Section, section: Section(SectionIndex(a)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
4: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0 } }
5: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0 } }
__text relocations
(20, Relocation { kind: PltRelative, encoding: AArch64Call, size: 1a, target: Symbol(SymbolIndex(5)), addend: 0, implicit_addend: true, flags: MachO { r_type: 2, r_pcrel: true, r_length: 2 } })
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_ARM64 (0x100000C)
CpuSubtype: 0x0
CPU_SUBTYPE_ARM64_ALL (0x0)
CpuSubtype: CPU_SUBTYPE_ARM64_ALL (0x0)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 4
SizeOfCmds: 0x438
@@ -324,7 +323,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_ARM64 (0x100000C)
CpuSubtype: 0x0
CPU_SUBTYPE_ARM64_ALL (0x0)
CpuSubtype: CPU_SUBTYPE_ARM64_ALL (0x0)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 4
SizeOfCmds: 0x1B8
@@ -172,7 +171,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -1,21 +1,21 @@
Format: MachO Little-endian 64-bit
Kind: Relocatable
Architecture: Aarch64
Flags: MachO { flags: 2000 }
Flags: MachO { flags: MH_SUBSECTIONS_VIA_SYMBOLS }
Relative Address Base: 0
Entry Address: 0
Segment { name: "", address: 0, size: 68, permissions: RWX }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 34, align: 4, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__TEXT", name: "__cstring", address: 34, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: 2 } }
3: Section { segment: "__LD", name: "__compact_unwind", address: 48, size: 20, align: 8, kind: Unknown, flags: MachO { flags: 2000000 } }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 34, align: 4, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__TEXT", name: "__cstring", address: 34, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: S_CSTRING_LITERALS } }
3: Section { segment: "__LD", name: "__compact_unwind", address: 48, size: 20, align: 8, kind: Unknown, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
Symbols
0: Symbol { name: "ltmp0", address: 0, size: 0, kind: Section, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
1: Symbol { name: "l_.str", address: 34, size: 0, kind: Data, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
2: Symbol { name: "ltmp1", address: 34, size: 0, kind: Section, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
3: Symbol { name: "ltmp2", address: 48, size: 0, kind: Section, section: Section(SectionIndex(3)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
4: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 0 } }
5: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 0 } }
0: Symbol { name: "ltmp0", address: 0, size: 0, kind: Section, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
1: Symbol { name: "l_.str", address: 34, size: 0, kind: Data, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
2: Symbol { name: "ltmp1", address: 34, size: 0, kind: Section, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
3: Symbol { name: "ltmp2", address: 48, size: 0, kind: Section, section: Section(SectionIndex(3)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
4: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0 } }
5: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0 } }
__text relocations
(20, Relocation { kind: PltRelative, encoding: AArch64Call, size: 1a, target: Symbol(SymbolIndex(5)), addend: 0, implicit_addend: true, flags: MachO { r_type: 2, r_pcrel: true, r_length: 2 } })
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_ARM64 (0x100000C)
CpuSubtype: 0x0
CPU_SUBTYPE_ARM64_ALL (0x0)
CpuSubtype: CPU_SUBTYPE_ARM64_ALL (0x0)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 4
SizeOfCmds: 0x1B8
@@ -172,7 +171,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -1,7 +1,7 @@
Format: MachO Little-endian 64-bit
Kind: Executable
Architecture: Aarch64
Flags: MachO { flags: 200085 }
Flags: MachO { flags: MH_NOUNDEFS | MH_DYLDLINK | MH_TWOLEVEL | MH_PIE }
Relative Address Base: 0
Entry Address: 3f68
Mach UUID: [46, dd, c8, b7, f0, 47, 38, 6b, b2, 75, 9a, ec, a4, dc, de, 6f]
@@ -9,16 +9,16 @@ Segment { name: "__PAGEZERO", address: 0, size: 100000000, permissions: --- }
Segment { name: "__TEXT", address: 100000000, size: 4000, permissions: R-X }
Segment { name: "__DATA_CONST", address: 100004000, size: 4000, permissions: RW- }
Segment { name: "__LINKEDIT", address: 100008000, size: 4000, permissions: R-- }
1: Section { segment: "__TEXT", name: "__text", address: 100003f68, size: 34, align: 4, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__TEXT", name: "__stubs", address: 100003f9c, size: c, align: 4, kind: Unknown, flags: MachO { flags: 80000408 } }
3: Section { segment: "__TEXT", name: "__cstring", address: 100003fa8, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: 2 } }
4: Section { segment: "__TEXT", name: "__unwind_info", address: 100003fb8, size: 48, align: 4, kind: Unknown, flags: MachO { flags: 0 } }
5: Section { segment: "__DATA_CONST", name: "__got", address: 100004000, size: 8, align: 8, kind: Unknown, flags: MachO { flags: 6 } }
1: Section { segment: "__TEXT", name: "__text", address: 100003f68, size: 34, align: 4, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__TEXT", name: "__stubs", address: 100003f9c, size: c, align: 4, kind: Unknown, flags: MachO { flags: S_SYMBOL_STUBS | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
3: Section { segment: "__TEXT", name: "__cstring", address: 100003fa8, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: S_CSTRING_LITERALS } }
4: Section { segment: "__TEXT", name: "__unwind_info", address: 100003fb8, size: 48, align: 4, kind: Unknown, flags: MachO { flags: S_REGULAR } }
5: Section { segment: "__DATA_CONST", name: "__got", address: 100004000, size: 8, align: 8, kind: Unknown, flags: MachO { flags: S_NON_LAZY_SYMBOL_POINTERS } }
Symbols
0: Symbol { name: "__mh_execute_header", address: 100000000, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 10 } }
1: Symbol { name: "_main", address: 100003f68, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 0 } }
2: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 100 } }
0: Symbol { name: "__mh_execute_header", address: 100000000, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0x10 } }
1: Symbol { name: "_main", address: 100003f68, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0 } }
2: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0x100 } }
Dynamic symbols
@@ -2,12 +2,15 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_ARM64 (0x100000C)
CpuSubtype: 0x0
CPU_SUBTYPE_ARM64_ALL (0x0)
CpuSubtype: CPU_SUBTYPE_ARM64_ALL (0x0)
FileType: MH_EXECUTE (0x2)
NumberOfCmds: 17
SizeOfCmds: 0x420
Flags: 0x200085
MH_NOUNDEFS (0x1)
MH_DYLDLINK (0x4)
MH_TWOLEVEL (0x80)
MH_PIE (0x200000)
}
SegmentCommand {
Cmd: LC_SEGMENT_64 (0x19)
@@ -120,8 +123,7 @@ SegmentCommand {
VM_PROT_READ (0x1)
VM_PROT_WRITE (0x2)
NumberOfSections: 1
Flags: 0x10
SG_READ_ONLY (0x10)
Flags: SG_READ_ONLY (0x10)
Section {
Index: 5
SectionName: "__got"
@@ -149,10 +151,8 @@ SegmentCommand {
VmSize: 0x4000
FileOffset: 0x8000
FileSize: 0x291
MaxProt: 0x1
VM_PROT_READ (0x1)
InitProt: 0x1
VM_PROT_READ (0x1)
MaxProt: VM_PROT_READ (0x1)
InitProt: VM_PROT_READ (0x1)
NumberOfSections: 0
Flags: 0x0
}
@@ -169,14 +169,12 @@ LinkeditDataCommand {
DataSize: 0x30
ExportSymbol {
Name: "__mh_execute_header"
Flags: 0x0
EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
Flags: EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
Address: 0x0
}
ExportSymbol {
Name: "_main"
Flags: 0x0
EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
Flags: EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
Address: 0x3F68
}
}
@@ -194,8 +192,7 @@ SymtabCommand {
N_SECT (0xE)
N_EXT (0x1)
Section: "__TEXT,__text" (0x1)
Desc: 0x10
REFERENCED_DYNAMICALLY (0x10)
Desc: REFERENCED_DYNAMICALLY (0x10)
Value: 0x100000000
}
Nlist {
@@ -217,7 +214,7 @@ SymtabCommand {
Section: "" (0x0)
Desc: 0x100
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
N_SYMBOL_RESOLVER (0x100)
DylibOrdinal: 0x1
Value: 0x0
}
}
@@ -1,26 +1,26 @@
Format: MachO Little-endian 64-bit
Kind: Relocatable
Architecture: X86_64
Flags: MachO { flags: 2000 }
Flags: MachO { flags: MH_SUBSECTIONS_VIA_SYMBOLS }
Relative Address Base: 0
Entry Address: 0
Segment { name: "", address: 0, size: 2f6, permissions: RWX }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 25, align: 10, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__TEXT", name: "__cstring", address: 25, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: 2 } }
3: Section { segment: "__DWARF", name: "__debug_abbrev", address: 32, size: 3a, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
4: Section { segment: "__DWARF", name: "__debug_info", address: 6c, size: 53, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
5: Section { segment: "__DWARF", name: "__debug_str", address: bf, size: c8, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
6: Section { segment: "__DWARF", name: "__apple_names", address: 187, size: 3c, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
7: Section { segment: "__DWARF", name: "__apple_objc", address: 1c3, size: 24, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
8: Section { segment: "__DWARF", name: "__apple_namespac", address: 1e7, size: 24, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
9: Section { segment: "__DWARF", name: "__apple_types", address: 20b, size: 47, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
10: Section { segment: "__LD", name: "__compact_unwind", address: 258, size: 20, align: 8, kind: Unknown, flags: MachO { flags: 2000000 } }
11: Section { segment: "__TEXT", name: "__eh_frame", address: 278, size: 40, align: 8, kind: ReadOnlyData, flags: MachO { flags: 6800000b } }
12: Section { segment: "__DWARF", name: "__debug_line", address: 2b8, size: 3e, align: 1, kind: Debug, flags: MachO { flags: 2000000 } }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 25, align: 10, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__TEXT", name: "__cstring", address: 25, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: S_CSTRING_LITERALS } }
3: Section { segment: "__DWARF", name: "__debug_abbrev", address: 32, size: 3a, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
4: Section { segment: "__DWARF", name: "__debug_info", address: 6c, size: 53, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
5: Section { segment: "__DWARF", name: "__debug_str", address: bf, size: c8, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
6: Section { segment: "__DWARF", name: "__apple_names", address: 187, size: 3c, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
7: Section { segment: "__DWARF", name: "__apple_objc", address: 1c3, size: 24, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
8: Section { segment: "__DWARF", name: "__apple_namespac", address: 1e7, size: 24, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
9: Section { segment: "__DWARF", name: "__apple_types", address: 20b, size: 47, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
10: Section { segment: "__LD", name: "__compact_unwind", address: 258, size: 20, align: 8, kind: Unknown, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
11: Section { segment: "__TEXT", name: "__eh_frame", address: 278, size: 40, align: 8, kind: ReadOnlyData, flags: MachO { flags: S_COALESCED | S_ATTR_NO_TOC | S_ATTR_STRIP_STATIC_SYMS | S_ATTR_LIVE_SUPPORT } }
12: Section { segment: "__DWARF", name: "__debug_line", address: 2b8, size: 3e, align: 1, kind: Debug, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
Symbols
0: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 0 } }
1: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 0 } }
0: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0 } }
1: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0 } }
__text relocations
(19, Relocation { kind: PltRelative, encoding: X86Branch, size: 20, target: Symbol(SymbolIndex(1)), addend: fffffffffffffffc, implicit_addend: true, flags: MachO { r_type: 2, r_pcrel: true, r_length: 2 } })
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_X86_64 (0x1000007)
CpuSubtype: 0x3
CPU_SUBTYPE_X86_64_ALL (0x3)
CpuSubtype: CPU_SUBTYPE_X86_64_ALL (0x3)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 4
SizeOfCmds: 0x488
@@ -302,7 +301,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_X86_64 (0x1000007)
CpuSubtype: 0x3
CPU_SUBTYPE_X86_64_ALL (0x3)
CpuSubtype: CPU_SUBTYPE_X86_64_ALL (0x3)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 4
SizeOfCmds: 0x208
@@ -150,7 +149,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -1,18 +1,18 @@
Format: MachO Little-endian 64-bit
Kind: Relocatable
Architecture: X86_64
Flags: MachO { flags: 2000 }
Flags: MachO { flags: MH_SUBSECTIONS_VIA_SYMBOLS }
Relative Address Base: 0
Entry Address: 0
Segment { name: "", address: 0, size: 98, permissions: RWX }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 25, align: 10, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__TEXT", name: "__cstring", address: 25, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: 2 } }
3: Section { segment: "__LD", name: "__compact_unwind", address: 38, size: 20, align: 8, kind: Unknown, flags: MachO { flags: 2000000 } }
4: Section { segment: "__TEXT", name: "__eh_frame", address: 58, size: 40, align: 8, kind: ReadOnlyData, flags: MachO { flags: 6800000b } }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 25, align: 10, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__TEXT", name: "__cstring", address: 25, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: S_CSTRING_LITERALS } }
3: Section { segment: "__LD", name: "__compact_unwind", address: 38, size: 20, align: 8, kind: Unknown, flags: MachO { flags: S_REGULAR | S_ATTR_DEBUG } }
4: Section { segment: "__TEXT", name: "__eh_frame", address: 58, size: 40, align: 8, kind: ReadOnlyData, flags: MachO { flags: S_COALESCED | S_ATTR_NO_TOC | S_ATTR_STRIP_STATIC_SYMS | S_ATTR_LIVE_SUPPORT } }
Symbols
0: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 0 } }
1: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 0 } }
0: Symbol { name: "_main", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0 } }
1: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0 } }
__text relocations
(19, Relocation { kind: PltRelative, encoding: X86Branch, size: 20, target: Symbol(SymbolIndex(1)), addend: fffffffffffffffc, implicit_addend: true, flags: MachO { r_type: 2, r_pcrel: true, r_length: 2 } })
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_X86_64 (0x1000007)
CpuSubtype: 0x3
CPU_SUBTYPE_X86_64_ALL (0x3)
CpuSubtype: CPU_SUBTYPE_X86_64_ALL (0x3)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 4
SizeOfCmds: 0x208
@@ -150,7 +149,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -1,7 +1,7 @@
Format: MachO Little-endian 64-bit
Kind: Executable
Architecture: X86_64
Flags: MachO { flags: 200085 }
Flags: MachO { flags: MH_NOUNDEFS | MH_DYLDLINK | MH_TWOLEVEL | MH_PIE }
Relative Address Base: 0
Entry Address: 3f60
Mach UUID: [ab, a4, a9, 90, 5c, 28, 30, b4, 84, b3, 89, 8e, 5d, 67, 4, be]
@@ -10,21 +10,21 @@ Segment { name: "__TEXT", address: 100000000, size: 4000, permissions: R-X }
Segment { name: "__DATA_CONST", address: 100004000, size: 4000, permissions: RW- }
Segment { name: "__DATA", address: 100008000, size: 4000, permissions: RW- }
Segment { name: "__LINKEDIT", address: 10000c000, size: 4000, permissions: R-- }
1: Section { segment: "__TEXT", name: "__text", address: 100003f60, size: 25, align: 10, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__TEXT", name: "__stubs", address: 100003f86, size: 6, align: 2, kind: Unknown, flags: MachO { flags: 80000408 } }
3: Section { segment: "__TEXT", name: "__stub_helper", address: 100003f8c, size: 1a, align: 4, kind: Unknown, flags: MachO { flags: 80000400 } }
4: Section { segment: "__TEXT", name: "__cstring", address: 100003fa6, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: 2 } }
5: Section { segment: "__TEXT", name: "__unwind_info", address: 100003fb4, size: 48, align: 4, kind: Unknown, flags: MachO { flags: 0 } }
6: Section { segment: "__DATA_CONST", name: "__got", address: 100004000, size: 8, align: 8, kind: Unknown, flags: MachO { flags: 6 } }
7: Section { segment: "__DATA", name: "__la_symbol_ptr", address: 100008000, size: 8, align: 8, kind: Unknown, flags: MachO { flags: 7 } }
8: Section { segment: "__DATA", name: "__data", address: 100008008, size: 8, align: 8, kind: Data, flags: MachO { flags: 0 } }
1: Section { segment: "__TEXT", name: "__text", address: 100003f60, size: 25, align: 10, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__TEXT", name: "__stubs", address: 100003f86, size: 6, align: 2, kind: Unknown, flags: MachO { flags: S_SYMBOL_STUBS | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
3: Section { segment: "__TEXT", name: "__stub_helper", address: 100003f8c, size: 1a, align: 4, kind: Unknown, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
4: Section { segment: "__TEXT", name: "__cstring", address: 100003fa6, size: d, align: 1, kind: ReadOnlyString, flags: MachO { flags: S_CSTRING_LITERALS } }
5: Section { segment: "__TEXT", name: "__unwind_info", address: 100003fb4, size: 48, align: 4, kind: Unknown, flags: MachO { flags: S_REGULAR } }
6: Section { segment: "__DATA_CONST", name: "__got", address: 100004000, size: 8, align: 8, kind: Unknown, flags: MachO { flags: S_NON_LAZY_SYMBOL_POINTERS } }
7: Section { segment: "__DATA", name: "__la_symbol_ptr", address: 100008000, size: 8, align: 8, kind: Unknown, flags: MachO { flags: S_LAZY_SYMBOL_POINTERS } }
8: Section { segment: "__DATA", name: "__data", address: 100008008, size: 8, align: 8, kind: Data, flags: MachO { flags: S_REGULAR } }
Symbols
0: Symbol { name: "__dyld_private", address: 100008008, size: 0, kind: Data, section: Section(SectionIndex(8)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
1: Symbol { name: "__mh_execute_header", address: 100000000, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 10 } }
2: Symbol { name: "_main", address: 100003f60, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 0 } }
3: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 100 } }
4: Symbol { name: "dyld_stub_binder", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 100 } }
0: Symbol { name: "__dyld_private", address: 100008008, size: 0, kind: Data, section: Section(SectionIndex(8)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
1: Symbol { name: "__mh_execute_header", address: 100000000, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0x10 } }
2: Symbol { name: "_main", address: 100003f60, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0 } }
3: Symbol { name: "_printf", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0x100 } }
4: Symbol { name: "dyld_stub_binder", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0x100 } }
Dynamic symbols
@@ -2,12 +2,15 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_X86_64 (0x1000007)
CpuSubtype: 0x3
CPU_SUBTYPE_X86_64_ALL (0x3)
CpuSubtype: CPU_SUBTYPE_X86_64_ALL (0x3)
FileType: MH_EXECUTE (0x2)
NumberOfCmds: 16
SizeOfCmds: 0x558
Flags: 0x200085
MH_NOUNDEFS (0x1)
MH_DYLDLINK (0x4)
MH_TWOLEVEL (0x80)
MH_PIE (0x200000)
}
SegmentCommand {
Cmd: LC_SEGMENT_64 (0x19)
@@ -137,8 +140,7 @@ SegmentCommand {
VM_PROT_READ (0x1)
VM_PROT_WRITE (0x2)
NumberOfSections: 1
Flags: 0x10
SG_READ_ONLY (0x10)
Flags: SG_READ_ONLY (0x10)
Section {
Index: 6
SectionName: "__got"
@@ -215,10 +217,8 @@ SegmentCommand {
VmSize: 0x4000
FileOffset: 0xC000
FileSize: 0x110
MaxProt: 0x1
VM_PROT_READ (0x1)
InitProt: 0x1
VM_PROT_READ (0x1)
MaxProt: VM_PROT_READ (0x1)
InitProt: VM_PROT_READ (0x1)
NumberOfSections: 0
Flags: 0x0
}
@@ -258,8 +258,7 @@ SymtabCommand {
N_SECT (0xE)
N_EXT (0x1)
Section: "__TEXT,__text" (0x1)
Desc: 0x10
REFERENCED_DYNAMICALLY (0x10)
Desc: REFERENCED_DYNAMICALLY (0x10)
Value: 0x100000000
}
Nlist {
@@ -281,7 +280,7 @@ SymtabCommand {
Section: "" (0x0)
Desc: 0x100
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
N_SYMBOL_RESOLVER (0x100)
DylibOrdinal: 0x1
Value: 0x0
}
Nlist {
@@ -293,7 +292,7 @@ SymtabCommand {
Section: "" (0x0)
Desc: 0x100
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
N_SYMBOL_RESOLVER (0x100)
DylibOrdinal: 0x1
Value: 0x0
}
}
@@ -2,12 +2,15 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_ARM64 (0x100000C)
CpuSubtype: 0x0
CPU_SUBTYPE_ARM64_ALL (0x0)
CpuSubtype: CPU_SUBTYPE_ARM64_ALL (0x0)
FileType: MH_DYLIB (0x6)
NumberOfCmds: 15
SizeOfCmds: 0x380
Flags: 0x100085
MH_NOUNDEFS (0x1)
MH_DYLDLINK (0x4)
MH_TWOLEVEL (0x80)
MH_NO_REEXPORTED_DYLIBS (0x100000)
}
SegmentCommand {
Cmd: LC_SEGMENT_64 (0x19)
@@ -124,10 +127,8 @@ SegmentCommand {
VmSize: 0x4000
FileOffset: 0x8000
FileSize: 0x300
MaxProt: 0x1
VM_PROT_READ (0x1)
InitProt: 0x1
VM_PROT_READ (0x1)
MaxProt: VM_PROT_READ (0x1)
InitProt: VM_PROT_READ (0x1)
NumberOfSections: 0
Flags: 0x0
}
@@ -154,29 +155,27 @@ LinkeditDataCommand {
DataSize: 0x60
ExportSymbol {
Name: "_abs"
Flags: 0x2
EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE (0x2)
Flags: EXPORT_SYMBOL_FLAGS_KIND_ABSOLUTE (0x2)
Address: 0xFFFFF
}
ExportSymbol {
Name: "_foo"
Flags: 0x10
EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER (0x10)
EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
EXPORT_SYMBOL_FLAGS_STUB_AND_RESOLVER (0x10)
StubAddress: 0x3C8
ResolverAddress: 0x3C0
}
ExportSymbol {
Name: "_foo_resolver"
Flags: 0x0
EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
Flags: EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
Address: 0x3C4
}
ExportSymbol {
Name: "my_stub_binder"
Flags: 0x8
EXPORT_SYMBOL_FLAGS_REEXPORT (0x8)
EXPORT_SYMBOL_FLAGS_KIND_REGULAR (0x0)
EXPORT_SYMBOL_FLAGS_REEXPORT (0x8)
DylibOrdinal: 0x1
ImportName: "dyld_stub_binder"
}
@@ -205,8 +204,7 @@ SymtabCommand {
N_SECT (0xE)
N_EXT (0x1)
Section: "__TEXT,__text" (0x1)
Desc: 0x100
N_SYMBOL_RESOLVER (0x100)
Desc: N_SYMBOL_RESOLVER (0x100)
Value: 0x3C0
}
Nlist {
@@ -238,7 +236,7 @@ SymtabCommand {
Section: "" (0x0)
Desc: 0x100
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
N_SYMBOL_RESOLVER (0x100)
DylibOrdinal: 0x1
Value: 0x0
}
}
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_ARM64 (0x100000C)
CpuSubtype: 0x0
CPU_SUBTYPE_ARM64_ALL (0x0)
CpuSubtype: CPU_SUBTYPE_ARM64_ALL (0x0)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 3
SizeOfCmds: 0x150
@@ -258,7 +257,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
Nlist {
@@ -269,7 +267,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -1,19 +1,19 @@
Format: MachO Little-endian 64-bit
Kind: Relocatable
Architecture: Aarch64
Flags: MachO { flags: 2000 }
Flags: MachO { flags: MH_SUBSECTIONS_VIA_SYMBOLS }
Relative Address Base: 0
Entry Address: 0
Segment { name: "", address: 0, size: 48, permissions: RWX }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 28, align: 1, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__DATA", name: "__data", address: 28, size: 20, align: 1, kind: Data, flags: MachO { flags: 0 } }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 28, align: 1, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__DATA", name: "__data", address: 28, size: 20, align: 1, kind: Data, flags: MachO { flags: S_REGULAR } }
Symbols
0: Symbol { name: "ltmp0", address: 0, size: 0, kind: Section, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
1: Symbol { name: "ltmp1", address: 28, size: 0, kind: Section, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
2: Symbol { name: "_data", address: 28, size: 0, kind: Data, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
3: Symbol { name: "_g0", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 0 } }
4: Symbol { name: "_g1", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 0 } }
0: Symbol { name: "ltmp0", address: 0, size: 0, kind: Section, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
1: Symbol { name: "ltmp1", address: 28, size: 0, kind: Section, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
2: Symbol { name: "_data", address: 28, size: 0, kind: Data, section: Section(SectionIndex(2)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
3: Symbol { name: "_g0", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0 } }
4: Symbol { name: "_g1", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0 } }
__text relocations
(24, Relocation { kind: Unknown, encoding: Unknown, size: 20, target: Symbol(SymbolIndex(3)), addend: 0, implicit_addend: true, flags: MachO { r_type: 9, r_pcrel: false, r_length: 2 } })
@@ -2,8 +2,7 @@ Format: Mach-O 64-bit
MachHeader {
Magic: 0xCFFAEDFE
CpuType: CPU_TYPE_ARM64 (0x100000C)
CpuSubtype: 0x0
CPU_SUBTYPE_ARM64_ALL (0x0)
CpuSubtype: CPU_SUBTYPE_ARM64_ALL (0x0)
FileType: MH_OBJECT (0x1)
NumberOfCmds: 3
SizeOfCmds: 0x150
@@ -258,7 +257,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
Nlist {
@@ -269,7 +267,6 @@ SymtabCommand {
N_EXT (0x1)
Section: "" (0x0)
Desc: 0x0
REFERENCE_FLAG_UNDEFINED_NON_LAZY (0x0)
Value: 0x0
}
}
@@ -1,18 +1,18 @@
Format: MachO Little-endian 32-bit
Kind: Relocatable
Architecture: Arm
Flags: MachO { flags: 2000 }
Flags: MachO { flags: MH_SUBSECTIONS_VIA_SYMBOLS }
Relative Address Base: 0
Entry Address: 0
Segment { name: "", address: 0, size: 3c, permissions: RWX }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 28, align: 4, kind: Text, flags: MachO { flags: 80000400 } }
2: Section { segment: "__DATA", name: "__data", address: 28, size: 14, align: 1, kind: Data, flags: MachO { flags: 0 } }
1: Section { segment: "__TEXT", name: "__text", address: 0, size: 28, align: 4, kind: Text, flags: MachO { flags: S_REGULAR | S_ATTR_PURE_INSTRUCTIONS | S_ATTR_SOME_INSTRUCTIONS } }
2: Section { segment: "__DATA", name: "__data", address: 28, size: 14, align: 1, kind: Data, flags: MachO { flags: S_REGULAR } }
Symbols
0: Symbol { name: "_g1", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
1: Symbol { name: "_g3", address: 14, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: e, n_desc: 0 } }
2: Symbol { name: "_g2", address: 14, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: f, n_desc: 0 } }
3: Symbol { name: "_g0", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: 1, n_desc: 0 } }
0: Symbol { name: "_g1", address: 0, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
1: Symbol { name: "_g3", address: 14, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Compilation, weak: false, flags: MachO { n_type: N_SECT, n_desc: 0 } }
2: Symbol { name: "_g2", address: 14, size: 0, kind: Text, section: Section(SectionIndex(1)), scope: Dynamic, weak: false, flags: MachO { n_type: N_SECT | N_EXT, n_desc: 0 } }
3: Symbol { name: "_g0", address: 0, size: 0, kind: Unknown, section: Undefined, scope: Unknown, weak: false, flags: MachO { n_type: N_UNDF | N_EXT, n_desc: 0 } }
__text relocations
(24, Relocation { kind: Unknown, encoding: Unknown, size: 40, target: Symbol(SymbolIndex(3)), addend: 0, implicit_addend: true, flags: MachO { r_type: 8, r_pcrel: false, r_length: 3 } })

Some files were not shown because too many files have changed in this diff Show More