mirror of
https://github.com/encounter/object.git
synced 2026-07-10 12:18:39 -07:00
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:
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
Reference in New Issue
Block a user