xref: /llvm-project/llvm/test/tools/llvm-objcopy/MachO/segment-size-alignment.test (revision c0da287c30c9f511ccb07fdd42c997be2caea9ec)
12c663aa5SAlexander Shaposhnikov# RUN: yaml2obj --docnum=1 %s -o %t.armv7
22c663aa5SAlexander Shaposhnikov# RUN: llvm-objdump --private-headers %t.armv7 | FileCheck %s --check-prefix=ARMV7
32c663aa5SAlexander Shaposhnikov
42c663aa5SAlexander Shaposhnikov# ARMV7:       segname __PAGEZERO
52c663aa5SAlexander Shaposhnikov# ARMV7-NEXT:  vmaddr 0x00000000
62c663aa5SAlexander Shaposhnikov# ARMV7-NEXT:  vmsize 0x00004000
72c663aa5SAlexander Shaposhnikov# ARMV7:       segname __TEXT
82c663aa5SAlexander Shaposhnikov# ARMV7-NEXT:  vmaddr 0x00004000
92c663aa5SAlexander Shaposhnikov# ARMV7-NEXT:  vmsize 0x00008000
102c663aa5SAlexander Shaposhnikov# ARMV7:       segname __LINKEDIT
112c663aa5SAlexander Shaposhnikov# ARMV7-NEXT:  vmaddr 0x0000c000
122c663aa5SAlexander Shaposhnikov# ARMV7-NEXT:  vmsize 0x00004000
132c663aa5SAlexander Shaposhnikov
142c663aa5SAlexander Shaposhnikov# RUN: yaml2obj --docnum=2 %s -o %t.arm64
152c663aa5SAlexander Shaposhnikov# RUN: llvm-objdump --private-headers %t.arm64 | FileCheck %s --check-prefix=ARM64
162c663aa5SAlexander Shaposhnikov
172c663aa5SAlexander Shaposhnikov# ARM64:       segname __PAGEZERO
182c663aa5SAlexander Shaposhnikov# ARM64-NEXT:  vmaddr 0x0000000000000000
192c663aa5SAlexander Shaposhnikov# ARM64-NEXT:  vmsize 0x0000000100000000
202c663aa5SAlexander Shaposhnikov# ARM64:       segname __TEXT
212c663aa5SAlexander Shaposhnikov# ARM64-NEXT:  vmaddr 0x0000000100000000
222c663aa5SAlexander Shaposhnikov# ARM64-NEXT:  vmsize 0x0000000000008000
232c663aa5SAlexander Shaposhnikov# ARM64:       segname __LINKEDIT
242c663aa5SAlexander Shaposhnikov# ARM64-NEXT:  vmaddr 0x0000000100008000
252c663aa5SAlexander Shaposhnikov# ARM64-NEXT:  vmsize 0x0000000000004000
262c663aa5SAlexander Shaposhnikov
272c663aa5SAlexander Shaposhnikov# RUN: yaml2obj --docnum=3 %s -o %t.arm64_32
282c663aa5SAlexander Shaposhnikov# RUN: llvm-objdump --private-headers %t.arm64_32 | FileCheck %s --check-prefix=ARM64_32
292c663aa5SAlexander Shaposhnikov
302c663aa5SAlexander Shaposhnikov# ARM64_32:       segname __PAGEZERO
312c663aa5SAlexander Shaposhnikov# ARM64_32-NEXT:  vmaddr 0x00000000
322c663aa5SAlexander Shaposhnikov# ARM64_32-NEXT:  vmsize 0x00004000
332c663aa5SAlexander Shaposhnikov# ARM64_32:       segname __TEXT
342c663aa5SAlexander Shaposhnikov# ARM64_32-NEXT:  vmaddr 0x00004000
352c663aa5SAlexander Shaposhnikov# ARM64_32-NEXT:  vmsize 0x00008000
362c663aa5SAlexander Shaposhnikov# ARM64_32:       segname __LINKEDIT
372c663aa5SAlexander Shaposhnikov# ARM64_32-NEXT:  vmaddr 0x0000c000
382c663aa5SAlexander Shaposhnikov# ARM64_32-NEXT:  vmsize 0x00004000
392c663aa5SAlexander Shaposhnikov
402c663aa5SAlexander Shaposhnikov# RUN: yaml2obj --docnum=4 %s -o %t.x86_64
412c663aa5SAlexander Shaposhnikov# RUN: llvm-objdump --private-headers %t.x86_64 | FileCheck %s --check-prefix=X86_64
422c663aa5SAlexander Shaposhnikov
432c663aa5SAlexander Shaposhnikov# X86_64:       segname __PAGEZERO
442c663aa5SAlexander Shaposhnikov# X86_64-NEXT:  vmaddr 0x0000000000000000
452c663aa5SAlexander Shaposhnikov# X86_64-NEXT:  vmsize 0x0000000100000000
462c663aa5SAlexander Shaposhnikov# X86_64:       segname __TEXT
472c663aa5SAlexander Shaposhnikov# X86_64-NEXT:  vmaddr 0x0000000100000000
482c663aa5SAlexander Shaposhnikov# X86_64-NEXT:  vmsize 0x0000000000001000
492c663aa5SAlexander Shaposhnikov# X86_64:       segname __LINKEDIT
502c663aa5SAlexander Shaposhnikov# X86_64-NEXT:  vmaddr 0x0000000100001000
512c663aa5SAlexander Shaposhnikov# X86_64-NEXT:  vmsize 0x0000000000001000
522c663aa5SAlexander Shaposhnikov
532c663aa5SAlexander Shaposhnikov## Input binaries:
542c663aa5SAlexander Shaposhnikov
552c663aa5SAlexander Shaposhnikov## Case 1: armv7 iOS binary.
562c663aa5SAlexander Shaposhnikov## This binary can be built on OSX as follows:
572c663aa5SAlexander Shaposhnikov## main.c: int main() { return 0; }
582c663aa5SAlexander Shaposhnikov## xcrun -sdk iphoneos clang -arch armv7 main.c -o main.exe
592c663aa5SAlexander Shaposhnikov--- !mach-o
602c663aa5SAlexander ShaposhnikovFileHeader:
612c663aa5SAlexander Shaposhnikov  magic:           0xFEEDFACE
622c663aa5SAlexander Shaposhnikov  cputype:         0x0000000C
632c663aa5SAlexander Shaposhnikov  cpusubtype:      0x00000009
642c663aa5SAlexander Shaposhnikov  filetype:        0x00000002
652c663aa5SAlexander Shaposhnikov  ncmds:           15
662c663aa5SAlexander Shaposhnikov  sizeofcmds:      600
672c663aa5SAlexander Shaposhnikov  flags:           0x00200085
682c663aa5SAlexander ShaposhnikovLoadCommands:
692c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT
702c663aa5SAlexander Shaposhnikov    cmdsize:         56
712c663aa5SAlexander Shaposhnikov    segname:         __PAGEZERO
722c663aa5SAlexander Shaposhnikov    vmaddr:          0
732c663aa5SAlexander Shaposhnikov    vmsize:          16384
742c663aa5SAlexander Shaposhnikov    fileoff:         0
752c663aa5SAlexander Shaposhnikov    filesize:        0
762c663aa5SAlexander Shaposhnikov    maxprot:         0
772c663aa5SAlexander Shaposhnikov    initprot:        0
782c663aa5SAlexander Shaposhnikov    nsects:          0
792c663aa5SAlexander Shaposhnikov    flags:           0
802c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT
812c663aa5SAlexander Shaposhnikov    cmdsize:         124
822c663aa5SAlexander Shaposhnikov    segname:         __TEXT
832c663aa5SAlexander Shaposhnikov    vmaddr:          16384
842c663aa5SAlexander Shaposhnikov    vmsize:          32768
852c663aa5SAlexander Shaposhnikov    fileoff:         0
862c663aa5SAlexander Shaposhnikov    filesize:        32768
872c663aa5SAlexander Shaposhnikov    maxprot:         5
882c663aa5SAlexander Shaposhnikov    initprot:        5
892c663aa5SAlexander Shaposhnikov    nsects:          1
902c663aa5SAlexander Shaposhnikov    flags:           0
912c663aa5SAlexander Shaposhnikov    Sections:
922c663aa5SAlexander Shaposhnikov      - sectname:        __text
932c663aa5SAlexander Shaposhnikov        segname:         __TEXT
942c663aa5SAlexander Shaposhnikov        addr:            0x000000000000BFF6
952c663aa5SAlexander Shaposhnikov        size:            10
962c663aa5SAlexander Shaposhnikov        offset:          0x00007FF6
972c663aa5SAlexander Shaposhnikov        align:           1
982c663aa5SAlexander Shaposhnikov        reloff:          0x00000000
992c663aa5SAlexander Shaposhnikov        nreloc:          0
1002c663aa5SAlexander Shaposhnikov        flags:           0x80000400
1012c663aa5SAlexander Shaposhnikov        reserved1:       0x00000000
1022c663aa5SAlexander Shaposhnikov        reserved2:       0x00000000
1032c663aa5SAlexander Shaposhnikov        reserved3:       0x00000000
1042c663aa5SAlexander Shaposhnikov        content:         81B00020009001B07047
1052c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT
1062c663aa5SAlexander Shaposhnikov    cmdsize:         56
1072c663aa5SAlexander Shaposhnikov    segname:         __LINKEDIT
1082c663aa5SAlexander Shaposhnikov    vmaddr:          49152
1092c663aa5SAlexander Shaposhnikov    vmsize:          16384
1102c663aa5SAlexander Shaposhnikov    fileoff:         32768
1112c663aa5SAlexander Shaposhnikov    filesize:        132
1122c663aa5SAlexander Shaposhnikov    maxprot:         1
1132c663aa5SAlexander Shaposhnikov    initprot:        1
1142c663aa5SAlexander Shaposhnikov    nsects:          0
1152c663aa5SAlexander Shaposhnikov    flags:           0
1162c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYLD_INFO_ONLY
1172c663aa5SAlexander Shaposhnikov    cmdsize:         48
1182c663aa5SAlexander Shaposhnikov    rebase_off:      0
1192c663aa5SAlexander Shaposhnikov    rebase_size:     0
1202c663aa5SAlexander Shaposhnikov    bind_off:        0
1212c663aa5SAlexander Shaposhnikov    bind_size:       0
1222c663aa5SAlexander Shaposhnikov    weak_bind_off:   0
1232c663aa5SAlexander Shaposhnikov    weak_bind_size:  0
1242c663aa5SAlexander Shaposhnikov    lazy_bind_off:   0
1252c663aa5SAlexander Shaposhnikov    lazy_bind_size:  0
1262c663aa5SAlexander Shaposhnikov    export_off:      32768
1272c663aa5SAlexander Shaposhnikov    export_size:     44
1282c663aa5SAlexander Shaposhnikov  - cmd:             LC_SYMTAB
1292c663aa5SAlexander Shaposhnikov    cmdsize:         24
1302c663aa5SAlexander Shaposhnikov    symoff:          32816
1312c663aa5SAlexander Shaposhnikov    nsyms:           3
1322c663aa5SAlexander Shaposhnikov    stroff:          32852
1332c663aa5SAlexander Shaposhnikov    strsize:         48
1342c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYSYMTAB
1352c663aa5SAlexander Shaposhnikov    cmdsize:         80
1362c663aa5SAlexander Shaposhnikov    ilocalsym:       0
1372c663aa5SAlexander Shaposhnikov    nlocalsym:       0
1382c663aa5SAlexander Shaposhnikov    iextdefsym:      0
1392c663aa5SAlexander Shaposhnikov    nextdefsym:      2
1402c663aa5SAlexander Shaposhnikov    iundefsym:       2
1412c663aa5SAlexander Shaposhnikov    nundefsym:       1
1422c663aa5SAlexander Shaposhnikov    tocoff:          0
1432c663aa5SAlexander Shaposhnikov    ntoc:            0
1442c663aa5SAlexander Shaposhnikov    modtaboff:       0
1452c663aa5SAlexander Shaposhnikov    nmodtab:         0
1462c663aa5SAlexander Shaposhnikov    extrefsymoff:    0
1472c663aa5SAlexander Shaposhnikov    nextrefsyms:     0
1482c663aa5SAlexander Shaposhnikov    indirectsymoff:  0
1492c663aa5SAlexander Shaposhnikov    nindirectsyms:   0
1502c663aa5SAlexander Shaposhnikov    extreloff:       0
1512c663aa5SAlexander Shaposhnikov    nextrel:         0
1522c663aa5SAlexander Shaposhnikov    locreloff:       0
1532c663aa5SAlexander Shaposhnikov    nlocrel:         0
1542c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLINKER
1552c663aa5SAlexander Shaposhnikov    cmdsize:         28
1562c663aa5SAlexander Shaposhnikov    name:            12
157*c0da287cSFangrui Song    Content:         '/usr/lib/dyld'
1582c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    3
1592c663aa5SAlexander Shaposhnikov  - cmd:             LC_UUID
1602c663aa5SAlexander Shaposhnikov    cmdsize:         24
1612c663aa5SAlexander Shaposhnikov    uuid:            C84A0193-BE6F-3625-882F-CBFC052AF6CF
1622c663aa5SAlexander Shaposhnikov  - cmd:             LC_VERSION_MIN_IPHONEOS
1632c663aa5SAlexander Shaposhnikov    cmdsize:         16
1642c663aa5SAlexander Shaposhnikov    version:         680803
1652c663aa5SAlexander Shaposhnikov    sdk:             852480
1662c663aa5SAlexander Shaposhnikov  - cmd:             LC_SOURCE_VERSION
1672c663aa5SAlexander Shaposhnikov    cmdsize:         16
1682c663aa5SAlexander Shaposhnikov    version:         0
1692c663aa5SAlexander Shaposhnikov  - cmd:             LC_MAIN
1702c663aa5SAlexander Shaposhnikov    cmdsize:         24
1712c663aa5SAlexander Shaposhnikov    entryoff:        32759
1722c663aa5SAlexander Shaposhnikov    stacksize:       0
1732c663aa5SAlexander Shaposhnikov  - cmd:             LC_ENCRYPTION_INFO
1742c663aa5SAlexander Shaposhnikov    cmdsize:         20
1752c663aa5SAlexander Shaposhnikov    cryptoff:        16384
1762c663aa5SAlexander Shaposhnikov    cryptsize:       16384
1772c663aa5SAlexander Shaposhnikov    cryptid:         0
1782c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLIB
1792c663aa5SAlexander Shaposhnikov    cmdsize:         52
1802c663aa5SAlexander Shaposhnikov    dylib:
1812c663aa5SAlexander Shaposhnikov      name:            24
1822c663aa5SAlexander Shaposhnikov      timestamp:       2
1832c663aa5SAlexander Shaposhnikov      current_version: 83951616
1842c663aa5SAlexander Shaposhnikov      compatibility_version: 65536
185*c0da287cSFangrui Song    Content:         '/usr/lib/libSystem.B.dylib'
1862c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    2
1872c663aa5SAlexander Shaposhnikov  - cmd:             LC_FUNCTION_STARTS
1882c663aa5SAlexander Shaposhnikov    cmdsize:         16
1892c663aa5SAlexander Shaposhnikov    dataoff:         32812
1902c663aa5SAlexander Shaposhnikov    datasize:        4
1912c663aa5SAlexander Shaposhnikov  - cmd:             LC_DATA_IN_CODE
1922c663aa5SAlexander Shaposhnikov    cmdsize:         16
1932c663aa5SAlexander Shaposhnikov    dataoff:         32816
1942c663aa5SAlexander Shaposhnikov    datasize:        0
1952c663aa5SAlexander ShaposhnikovLinkEditData:
1962c663aa5SAlexander Shaposhnikov  ExportTrie:
1972c663aa5SAlexander Shaposhnikov    TerminalSize:    0
1982c663aa5SAlexander Shaposhnikov    NodeOffset:      0
1992c663aa5SAlexander Shaposhnikov    Name:            ''
2002c663aa5SAlexander Shaposhnikov    Flags:           0x0000000000000000
2012c663aa5SAlexander Shaposhnikov    Address:         0x0000000000000000
2022c663aa5SAlexander Shaposhnikov    Other:           0x0000000000000000
2032c663aa5SAlexander Shaposhnikov    ImportName:      ''
2042c663aa5SAlexander Shaposhnikov    Children:
2052c663aa5SAlexander Shaposhnikov      - TerminalSize:    0
2062c663aa5SAlexander Shaposhnikov        NodeOffset:      5
2072c663aa5SAlexander Shaposhnikov        Name:            _
2082c663aa5SAlexander Shaposhnikov        Flags:           0x0000000000000000
2092c663aa5SAlexander Shaposhnikov        Address:         0x0000000000000000
2102c663aa5SAlexander Shaposhnikov        Other:           0x0000000000000000
2112c663aa5SAlexander Shaposhnikov        ImportName:      ''
2122c663aa5SAlexander Shaposhnikov        Children:
2132c663aa5SAlexander Shaposhnikov          - TerminalSize:    2
2142c663aa5SAlexander Shaposhnikov            NodeOffset:      33
2152c663aa5SAlexander Shaposhnikov            Name:            _mh_execute_header
2162c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
2172c663aa5SAlexander Shaposhnikov            Address:         0x0000000000000000
2182c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
2192c663aa5SAlexander Shaposhnikov            ImportName:      ''
2202c663aa5SAlexander Shaposhnikov          - TerminalSize:    4
2212c663aa5SAlexander Shaposhnikov            NodeOffset:      37
2222c663aa5SAlexander Shaposhnikov            Name:            main
2232c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
2242c663aa5SAlexander Shaposhnikov            Address:         0x0000000000007FF7
2252c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
2262c663aa5SAlexander Shaposhnikov            ImportName:      ''
2272c663aa5SAlexander Shaposhnikov  NameList:
2282c663aa5SAlexander Shaposhnikov    - n_strx:          2
2292c663aa5SAlexander Shaposhnikov      n_type:          0x0F
2302c663aa5SAlexander Shaposhnikov      n_sect:          1
2312c663aa5SAlexander Shaposhnikov      n_desc:          16
2322c663aa5SAlexander Shaposhnikov      n_value:         16384
2332c663aa5SAlexander Shaposhnikov    - n_strx:          22
2342c663aa5SAlexander Shaposhnikov      n_type:          0x0F
2352c663aa5SAlexander Shaposhnikov      n_sect:          1
2362c663aa5SAlexander Shaposhnikov      n_desc:          8
2372c663aa5SAlexander Shaposhnikov      n_value:         49142
2382c663aa5SAlexander Shaposhnikov    - n_strx:          28
2392c663aa5SAlexander Shaposhnikov      n_type:          0x01
2402c663aa5SAlexander Shaposhnikov      n_sect:          0
2412c663aa5SAlexander Shaposhnikov      n_desc:          256
2422c663aa5SAlexander Shaposhnikov      n_value:         0
2432c663aa5SAlexander Shaposhnikov  StringTable:
2442c663aa5SAlexander Shaposhnikov    - ' '
2452c663aa5SAlexander Shaposhnikov    - __mh_execute_header
2462c663aa5SAlexander Shaposhnikov    - _main
2472c663aa5SAlexander Shaposhnikov    - dyld_stub_binder
2482c663aa5SAlexander Shaposhnikov    - ''
2492c663aa5SAlexander Shaposhnikov    - ''
2502c663aa5SAlexander Shaposhnikov    - ''
2512c663aa5SAlexander Shaposhnikov...
2522c663aa5SAlexander Shaposhnikov
2532c663aa5SAlexander Shaposhnikov## Case 2: arm64 iOS binary.
2542c663aa5SAlexander Shaposhnikov## This binary can be built on OSX as follows:
2552c663aa5SAlexander Shaposhnikov## main.c: int main() { return 0; }
2562c663aa5SAlexander Shaposhnikov## xcrun -sdk iphoneos clang -arch arm64 main.c -o main.exe
2572c663aa5SAlexander Shaposhnikov--- !mach-o
2582c663aa5SAlexander ShaposhnikovFileHeader:
2592c663aa5SAlexander Shaposhnikov  magic:           0xFEEDFACF
2602c663aa5SAlexander Shaposhnikov  cputype:         0x0100000C
2612c663aa5SAlexander Shaposhnikov  cpusubtype:      0x00000000
2622c663aa5SAlexander Shaposhnikov  filetype:        0x00000002
2632c663aa5SAlexander Shaposhnikov  ncmds:           15
2642c663aa5SAlexander Shaposhnikov  sizeofcmds:      768
2652c663aa5SAlexander Shaposhnikov  flags:           0x00200085
2662c663aa5SAlexander Shaposhnikov  reserved:        0x00000000
2672c663aa5SAlexander ShaposhnikovLoadCommands:
2682c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT_64
2692c663aa5SAlexander Shaposhnikov    cmdsize:         72
2702c663aa5SAlexander Shaposhnikov    segname:         __PAGEZERO
2712c663aa5SAlexander Shaposhnikov    vmaddr:          0
2722c663aa5SAlexander Shaposhnikov    vmsize:          4294967296
2732c663aa5SAlexander Shaposhnikov    fileoff:         0
2742c663aa5SAlexander Shaposhnikov    filesize:        0
2752c663aa5SAlexander Shaposhnikov    maxprot:         0
2762c663aa5SAlexander Shaposhnikov    initprot:        0
2772c663aa5SAlexander Shaposhnikov    nsects:          0
2782c663aa5SAlexander Shaposhnikov    flags:           0
2792c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT_64
2802c663aa5SAlexander Shaposhnikov    cmdsize:         232
2812c663aa5SAlexander Shaposhnikov    segname:         __TEXT
2822c663aa5SAlexander Shaposhnikov    vmaddr:          4294967296
2832c663aa5SAlexander Shaposhnikov    vmsize:          32768
2842c663aa5SAlexander Shaposhnikov    fileoff:         0
2852c663aa5SAlexander Shaposhnikov    filesize:        32768
2862c663aa5SAlexander Shaposhnikov    maxprot:         5
2872c663aa5SAlexander Shaposhnikov    initprot:        5
2882c663aa5SAlexander Shaposhnikov    nsects:          2
2892c663aa5SAlexander Shaposhnikov    flags:           0
2902c663aa5SAlexander Shaposhnikov    Sections:
2912c663aa5SAlexander Shaposhnikov      - sectname:        __text
2922c663aa5SAlexander Shaposhnikov        segname:         __TEXT
2932c663aa5SAlexander Shaposhnikov        addr:            0x0000000100007FA0
2942c663aa5SAlexander Shaposhnikov        size:            24
2952c663aa5SAlexander Shaposhnikov        offset:          0x00007FA0
2962c663aa5SAlexander Shaposhnikov        align:           2
2972c663aa5SAlexander Shaposhnikov        reloff:          0x00000000
2982c663aa5SAlexander Shaposhnikov        nreloc:          0
2992c663aa5SAlexander Shaposhnikov        flags:           0x80000400
3002c663aa5SAlexander Shaposhnikov        reserved1:       0x00000000
3012c663aa5SAlexander Shaposhnikov        reserved2:       0x00000000
3022c663aa5SAlexander Shaposhnikov        reserved3:       0x00000000
3032c663aa5SAlexander Shaposhnikov        content:         FF4300D1FF0F00B908008052E00308AAFF430091C0035FD6
3042c663aa5SAlexander Shaposhnikov      - sectname:        __unwind_info
3052c663aa5SAlexander Shaposhnikov        segname:         __TEXT
3062c663aa5SAlexander Shaposhnikov        addr:            0x0000000100007FB8
3072c663aa5SAlexander Shaposhnikov        size:            72
3082c663aa5SAlexander Shaposhnikov        offset:          0x00007FB8
3092c663aa5SAlexander Shaposhnikov        align:           2
3102c663aa5SAlexander Shaposhnikov        reloff:          0x00000000
3112c663aa5SAlexander Shaposhnikov        nreloc:          0
3122c663aa5SAlexander Shaposhnikov        flags:           0x00000000
3132c663aa5SAlexander Shaposhnikov        reserved1:       0x00000000
3142c663aa5SAlexander Shaposhnikov        reserved2:       0x00000000
3152c663aa5SAlexander Shaposhnikov        reserved3:       0x00000000
3162c663aa5SAlexander Shaposhnikov        content:         010000001C000000000000001C000000000000001C00000002000000A07F00003400000034000000B97F00000000000034000000030000000C000100100001000000000000100002
3172c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT_64
3182c663aa5SAlexander Shaposhnikov    cmdsize:         72
3192c663aa5SAlexander Shaposhnikov    segname:         __LINKEDIT
3202c663aa5SAlexander Shaposhnikov    vmaddr:          4295000064
3212c663aa5SAlexander Shaposhnikov    vmsize:          16384
3222c663aa5SAlexander Shaposhnikov    fileoff:         32768
3232c663aa5SAlexander Shaposhnikov    filesize:        152
3242c663aa5SAlexander Shaposhnikov    maxprot:         1
3252c663aa5SAlexander Shaposhnikov    initprot:        1
3262c663aa5SAlexander Shaposhnikov    nsects:          0
3272c663aa5SAlexander Shaposhnikov    flags:           0
3282c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYLD_INFO_ONLY
3292c663aa5SAlexander Shaposhnikov    cmdsize:         48
3302c663aa5SAlexander Shaposhnikov    rebase_off:      0
3312c663aa5SAlexander Shaposhnikov    rebase_size:     0
3322c663aa5SAlexander Shaposhnikov    bind_off:        0
3332c663aa5SAlexander Shaposhnikov    bind_size:       0
3342c663aa5SAlexander Shaposhnikov    weak_bind_off:   0
3352c663aa5SAlexander Shaposhnikov    weak_bind_size:  0
3362c663aa5SAlexander Shaposhnikov    lazy_bind_off:   0
3372c663aa5SAlexander Shaposhnikov    lazy_bind_size:  0
3382c663aa5SAlexander Shaposhnikov    export_off:      32768
3392c663aa5SAlexander Shaposhnikov    export_size:     48
3402c663aa5SAlexander Shaposhnikov  - cmd:             LC_SYMTAB
3412c663aa5SAlexander Shaposhnikov    cmdsize:         24
3422c663aa5SAlexander Shaposhnikov    symoff:          32824
3432c663aa5SAlexander Shaposhnikov    nsyms:           3
3442c663aa5SAlexander Shaposhnikov    stroff:          32872
3452c663aa5SAlexander Shaposhnikov    strsize:         48
3462c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYSYMTAB
3472c663aa5SAlexander Shaposhnikov    cmdsize:         80
3482c663aa5SAlexander Shaposhnikov    ilocalsym:       0
3492c663aa5SAlexander Shaposhnikov    nlocalsym:       0
3502c663aa5SAlexander Shaposhnikov    iextdefsym:      0
3512c663aa5SAlexander Shaposhnikov    nextdefsym:      2
3522c663aa5SAlexander Shaposhnikov    iundefsym:       2
3532c663aa5SAlexander Shaposhnikov    nundefsym:       1
3542c663aa5SAlexander Shaposhnikov    tocoff:          0
3552c663aa5SAlexander Shaposhnikov    ntoc:            0
3562c663aa5SAlexander Shaposhnikov    modtaboff:       0
3572c663aa5SAlexander Shaposhnikov    nmodtab:         0
3582c663aa5SAlexander Shaposhnikov    extrefsymoff:    0
3592c663aa5SAlexander Shaposhnikov    nextrefsyms:     0
3602c663aa5SAlexander Shaposhnikov    indirectsymoff:  0
3612c663aa5SAlexander Shaposhnikov    nindirectsyms:   0
3622c663aa5SAlexander Shaposhnikov    extreloff:       0
3632c663aa5SAlexander Shaposhnikov    nextrel:         0
3642c663aa5SAlexander Shaposhnikov    locreloff:       0
3652c663aa5SAlexander Shaposhnikov    nlocrel:         0
3662c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLINKER
3672c663aa5SAlexander Shaposhnikov    cmdsize:         32
3682c663aa5SAlexander Shaposhnikov    name:            12
369*c0da287cSFangrui Song    Content:         '/usr/lib/dyld'
3702c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    7
3712c663aa5SAlexander Shaposhnikov  - cmd:             LC_UUID
3722c663aa5SAlexander Shaposhnikov    cmdsize:         24
3732c663aa5SAlexander Shaposhnikov    uuid:            945B24FC-E351-3186-9D74-A88A7A93392A
3742c663aa5SAlexander Shaposhnikov  - cmd:             LC_BUILD_VERSION
3752c663aa5SAlexander Shaposhnikov    cmdsize:         32
3762c663aa5SAlexander Shaposhnikov    platform:        2
3772c663aa5SAlexander Shaposhnikov    minos:           852480
3782c663aa5SAlexander Shaposhnikov    sdk:             852480
3792c663aa5SAlexander Shaposhnikov    ntools:          1
3802c663aa5SAlexander Shaposhnikov    Tools:
3812c663aa5SAlexander Shaposhnikov      - tool:            3
3822c663aa5SAlexander Shaposhnikov        version:         34734080
3832c663aa5SAlexander Shaposhnikov  - cmd:             LC_SOURCE_VERSION
3842c663aa5SAlexander Shaposhnikov    cmdsize:         16
3852c663aa5SAlexander Shaposhnikov    version:         0
3862c663aa5SAlexander Shaposhnikov  - cmd:             LC_MAIN
3872c663aa5SAlexander Shaposhnikov    cmdsize:         24
3882c663aa5SAlexander Shaposhnikov    entryoff:        32672
3892c663aa5SAlexander Shaposhnikov    stacksize:       0
3902c663aa5SAlexander Shaposhnikov  - cmd:             LC_ENCRYPTION_INFO_64
3912c663aa5SAlexander Shaposhnikov    cmdsize:         24
3922c663aa5SAlexander Shaposhnikov    cryptoff:        16384
3932c663aa5SAlexander Shaposhnikov    cryptsize:       16384
3942c663aa5SAlexander Shaposhnikov    cryptid:         0
3952c663aa5SAlexander Shaposhnikov    pad:             0
3962c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLIB
3972c663aa5SAlexander Shaposhnikov    cmdsize:         56
3982c663aa5SAlexander Shaposhnikov    dylib:
3992c663aa5SAlexander Shaposhnikov      name:            24
4002c663aa5SAlexander Shaposhnikov      timestamp:       2
4012c663aa5SAlexander Shaposhnikov      current_version: 83951616
4022c663aa5SAlexander Shaposhnikov      compatibility_version: 65536
403*c0da287cSFangrui Song    Content:         '/usr/lib/libSystem.B.dylib'
4042c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    6
4052c663aa5SAlexander Shaposhnikov  - cmd:             LC_FUNCTION_STARTS
4062c663aa5SAlexander Shaposhnikov    cmdsize:         16
4072c663aa5SAlexander Shaposhnikov    dataoff:         32816
4082c663aa5SAlexander Shaposhnikov    datasize:        8
4092c663aa5SAlexander Shaposhnikov  - cmd:             LC_DATA_IN_CODE
4102c663aa5SAlexander Shaposhnikov    cmdsize:         16
4112c663aa5SAlexander Shaposhnikov    dataoff:         32824
4122c663aa5SAlexander Shaposhnikov    datasize:        0
4132c663aa5SAlexander ShaposhnikovLinkEditData:
4142c663aa5SAlexander Shaposhnikov  ExportTrie:
4152c663aa5SAlexander Shaposhnikov    TerminalSize:    0
4162c663aa5SAlexander Shaposhnikov    NodeOffset:      0
4172c663aa5SAlexander Shaposhnikov    Name:            ''
4182c663aa5SAlexander Shaposhnikov    Flags:           0x0000000000000000
4192c663aa5SAlexander Shaposhnikov    Address:         0x0000000000000000
4202c663aa5SAlexander Shaposhnikov    Other:           0x0000000000000000
4212c663aa5SAlexander Shaposhnikov    ImportName:      ''
4222c663aa5SAlexander Shaposhnikov    Children:
4232c663aa5SAlexander Shaposhnikov      - TerminalSize:    0
4242c663aa5SAlexander Shaposhnikov        NodeOffset:      5
4252c663aa5SAlexander Shaposhnikov        Name:            _
4262c663aa5SAlexander Shaposhnikov        Flags:           0x0000000000000000
4272c663aa5SAlexander Shaposhnikov        Address:         0x0000000000000000
4282c663aa5SAlexander Shaposhnikov        Other:           0x0000000000000000
4292c663aa5SAlexander Shaposhnikov        ImportName:      ''
4302c663aa5SAlexander Shaposhnikov        Children:
4312c663aa5SAlexander Shaposhnikov          - TerminalSize:    2
4322c663aa5SAlexander Shaposhnikov            NodeOffset:      33
4332c663aa5SAlexander Shaposhnikov            Name:            _mh_execute_header
4342c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
4352c663aa5SAlexander Shaposhnikov            Address:         0x0000000000000000
4362c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
4372c663aa5SAlexander Shaposhnikov            ImportName:      ''
4382c663aa5SAlexander Shaposhnikov          - TerminalSize:    4
4392c663aa5SAlexander Shaposhnikov            NodeOffset:      37
4402c663aa5SAlexander Shaposhnikov            Name:            main
4412c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
4422c663aa5SAlexander Shaposhnikov            Address:         0x0000000000007FA0
4432c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
4442c663aa5SAlexander Shaposhnikov            ImportName:      ''
4452c663aa5SAlexander Shaposhnikov  NameList:
4462c663aa5SAlexander Shaposhnikov    - n_strx:          2
4472c663aa5SAlexander Shaposhnikov      n_type:          0x0F
4482c663aa5SAlexander Shaposhnikov      n_sect:          1
4492c663aa5SAlexander Shaposhnikov      n_desc:          16
4502c663aa5SAlexander Shaposhnikov      n_value:         4294967296
4512c663aa5SAlexander Shaposhnikov    - n_strx:          22
4522c663aa5SAlexander Shaposhnikov      n_type:          0x0F
4532c663aa5SAlexander Shaposhnikov      n_sect:          1
4542c663aa5SAlexander Shaposhnikov      n_desc:          0
4552c663aa5SAlexander Shaposhnikov      n_value:         4294999968
4562c663aa5SAlexander Shaposhnikov    - n_strx:          28
4572c663aa5SAlexander Shaposhnikov      n_type:          0x01
4582c663aa5SAlexander Shaposhnikov      n_sect:          0
4592c663aa5SAlexander Shaposhnikov      n_desc:          256
4602c663aa5SAlexander Shaposhnikov      n_value:         0
4612c663aa5SAlexander Shaposhnikov  StringTable:
4622c663aa5SAlexander Shaposhnikov    - ' '
4632c663aa5SAlexander Shaposhnikov    - __mh_execute_header
4642c663aa5SAlexander Shaposhnikov    - _main
4652c663aa5SAlexander Shaposhnikov    - dyld_stub_binder
4662c663aa5SAlexander Shaposhnikov    - ''
4672c663aa5SAlexander Shaposhnikov    - ''
4682c663aa5SAlexander Shaposhnikov    - ''
4692c663aa5SAlexander Shaposhnikov...
4702c663aa5SAlexander Shaposhnikov
4712c663aa5SAlexander Shaposhnikov## Case 3: arm64_32 WatchOS binary.
4722c663aa5SAlexander Shaposhnikov## This binary can be built on OSX as follows:
4732c663aa5SAlexander Shaposhnikov## main.c: int main() { return 0; }
4742c663aa5SAlexander Shaposhnikov## xcrun -sdk watchos clang -arch arm64_32 main.c -o main.exe
4752c663aa5SAlexander Shaposhnikov--- !mach-o
4762c663aa5SAlexander ShaposhnikovFileHeader:
4772c663aa5SAlexander Shaposhnikov  magic:           0xFEEDFACE
4782c663aa5SAlexander Shaposhnikov  cputype:         0x0200000C
4792c663aa5SAlexander Shaposhnikov  cpusubtype:      0x00000001
4802c663aa5SAlexander Shaposhnikov  filetype:        0x00000002
4812c663aa5SAlexander Shaposhnikov  ncmds:           15
4822c663aa5SAlexander Shaposhnikov  sizeofcmds:      684
4832c663aa5SAlexander Shaposhnikov  flags:           0x00200085
4842c663aa5SAlexander ShaposhnikovLoadCommands:
4852c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT
4862c663aa5SAlexander Shaposhnikov    cmdsize:         56
4872c663aa5SAlexander Shaposhnikov    segname:         __PAGEZERO
4882c663aa5SAlexander Shaposhnikov    vmaddr:          0
4892c663aa5SAlexander Shaposhnikov    vmsize:          16384
4902c663aa5SAlexander Shaposhnikov    fileoff:         0
4912c663aa5SAlexander Shaposhnikov    filesize:        0
4922c663aa5SAlexander Shaposhnikov    maxprot:         0
4932c663aa5SAlexander Shaposhnikov    initprot:        0
4942c663aa5SAlexander Shaposhnikov    nsects:          0
4952c663aa5SAlexander Shaposhnikov    flags:           0
4962c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT
4972c663aa5SAlexander Shaposhnikov    cmdsize:         192
4982c663aa5SAlexander Shaposhnikov    segname:         __TEXT
4992c663aa5SAlexander Shaposhnikov    vmaddr:          16384
5002c663aa5SAlexander Shaposhnikov    vmsize:          32768
5012c663aa5SAlexander Shaposhnikov    fileoff:         0
5022c663aa5SAlexander Shaposhnikov    filesize:        32768
5032c663aa5SAlexander Shaposhnikov    maxprot:         5
5042c663aa5SAlexander Shaposhnikov    initprot:        5
5052c663aa5SAlexander Shaposhnikov    nsects:          2
5062c663aa5SAlexander Shaposhnikov    flags:           0
5072c663aa5SAlexander Shaposhnikov    Sections:
5082c663aa5SAlexander Shaposhnikov      - sectname:        __text
5092c663aa5SAlexander Shaposhnikov        segname:         __TEXT
5102c663aa5SAlexander Shaposhnikov        addr:            0x000000000000BFA0
5112c663aa5SAlexander Shaposhnikov        size:            24
5122c663aa5SAlexander Shaposhnikov        offset:          0x00007FA0
5132c663aa5SAlexander Shaposhnikov        align:           2
5142c663aa5SAlexander Shaposhnikov        reloff:          0x00000000
5152c663aa5SAlexander Shaposhnikov        nreloc:          0
5162c663aa5SAlexander Shaposhnikov        flags:           0x80000400
5172c663aa5SAlexander Shaposhnikov        reserved1:       0x00000000
5182c663aa5SAlexander Shaposhnikov        reserved2:       0x00000000
5192c663aa5SAlexander Shaposhnikov        reserved3:       0x00000000
5202c663aa5SAlexander Shaposhnikov        content:         FF4300D108008052E80F00B9E00308AAFF430091C0035FD6
5212c663aa5SAlexander Shaposhnikov      - sectname:        __unwind_info
5222c663aa5SAlexander Shaposhnikov        segname:         __TEXT
5232c663aa5SAlexander Shaposhnikov        addr:            0x000000000000BFB8
5242c663aa5SAlexander Shaposhnikov        size:            72
5252c663aa5SAlexander Shaposhnikov        offset:          0x00007FB8
5262c663aa5SAlexander Shaposhnikov        align:           2
5272c663aa5SAlexander Shaposhnikov        reloff:          0x00000000
5282c663aa5SAlexander Shaposhnikov        nreloc:          0
5292c663aa5SAlexander Shaposhnikov        flags:           0x00000000
5302c663aa5SAlexander Shaposhnikov        reserved1:       0x00000000
5312c663aa5SAlexander Shaposhnikov        reserved2:       0x00000000
5322c663aa5SAlexander Shaposhnikov        reserved3:       0x00000000
5332c663aa5SAlexander Shaposhnikov        content:         010000001C000000000000001C000000000000001C00000002000000A07F00003400000034000000B97F00000000000034000000030000000C000100100001000000000000100002
5342c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT
5352c663aa5SAlexander Shaposhnikov    cmdsize:         56
5362c663aa5SAlexander Shaposhnikov    segname:         __LINKEDIT
5372c663aa5SAlexander Shaposhnikov    vmaddr:          49152
5382c663aa5SAlexander Shaposhnikov    vmsize:          16384
5392c663aa5SAlexander Shaposhnikov    fileoff:         32768
5402c663aa5SAlexander Shaposhnikov    filesize:        132
5412c663aa5SAlexander Shaposhnikov    maxprot:         1
5422c663aa5SAlexander Shaposhnikov    initprot:        1
5432c663aa5SAlexander Shaposhnikov    nsects:          0
5442c663aa5SAlexander Shaposhnikov    flags:           0
5452c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYLD_INFO_ONLY
5462c663aa5SAlexander Shaposhnikov    cmdsize:         48
5472c663aa5SAlexander Shaposhnikov    rebase_off:      0
5482c663aa5SAlexander Shaposhnikov    rebase_size:     0
5492c663aa5SAlexander Shaposhnikov    bind_off:        0
5502c663aa5SAlexander Shaposhnikov    bind_size:       0
5512c663aa5SAlexander Shaposhnikov    weak_bind_off:   0
5522c663aa5SAlexander Shaposhnikov    weak_bind_size:  0
5532c663aa5SAlexander Shaposhnikov    lazy_bind_off:   0
5542c663aa5SAlexander Shaposhnikov    lazy_bind_size:  0
5552c663aa5SAlexander Shaposhnikov    export_off:      32768
5562c663aa5SAlexander Shaposhnikov    export_size:     44
5572c663aa5SAlexander Shaposhnikov  - cmd:             LC_SYMTAB
5582c663aa5SAlexander Shaposhnikov    cmdsize:         24
5592c663aa5SAlexander Shaposhnikov    symoff:          32816
5602c663aa5SAlexander Shaposhnikov    nsyms:           3
5612c663aa5SAlexander Shaposhnikov    stroff:          32852
5622c663aa5SAlexander Shaposhnikov    strsize:         48
5632c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYSYMTAB
5642c663aa5SAlexander Shaposhnikov    cmdsize:         80
5652c663aa5SAlexander Shaposhnikov    ilocalsym:       0
5662c663aa5SAlexander Shaposhnikov    nlocalsym:       0
5672c663aa5SAlexander Shaposhnikov    iextdefsym:      0
5682c663aa5SAlexander Shaposhnikov    nextdefsym:      2
5692c663aa5SAlexander Shaposhnikov    iundefsym:       2
5702c663aa5SAlexander Shaposhnikov    nundefsym:       1
5712c663aa5SAlexander Shaposhnikov    tocoff:          0
5722c663aa5SAlexander Shaposhnikov    ntoc:            0
5732c663aa5SAlexander Shaposhnikov    modtaboff:       0
5742c663aa5SAlexander Shaposhnikov    nmodtab:         0
5752c663aa5SAlexander Shaposhnikov    extrefsymoff:    0
5762c663aa5SAlexander Shaposhnikov    nextrefsyms:     0
5772c663aa5SAlexander Shaposhnikov    indirectsymoff:  0
5782c663aa5SAlexander Shaposhnikov    nindirectsyms:   0
5792c663aa5SAlexander Shaposhnikov    extreloff:       0
5802c663aa5SAlexander Shaposhnikov    nextrel:         0
5812c663aa5SAlexander Shaposhnikov    locreloff:       0
5822c663aa5SAlexander Shaposhnikov    nlocrel:         0
5832c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLINKER
5842c663aa5SAlexander Shaposhnikov    cmdsize:         28
5852c663aa5SAlexander Shaposhnikov    name:            12
586*c0da287cSFangrui Song    Content:         '/usr/lib/dyld'
5872c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    3
5882c663aa5SAlexander Shaposhnikov  - cmd:             LC_UUID
5892c663aa5SAlexander Shaposhnikov    cmdsize:         24
5902c663aa5SAlexander Shaposhnikov    uuid:            F33E5680-8F64-3402-8952-7FD251400D78
5912c663aa5SAlexander Shaposhnikov  - cmd:             LC_BUILD_VERSION
5922c663aa5SAlexander Shaposhnikov    cmdsize:         32
5932c663aa5SAlexander Shaposhnikov    platform:        4
5942c663aa5SAlexander Shaposhnikov    minos:           393472
5952c663aa5SAlexander Shaposhnikov    sdk:             393472
5962c663aa5SAlexander Shaposhnikov    ntools:          1
5972c663aa5SAlexander Shaposhnikov    Tools:
5982c663aa5SAlexander Shaposhnikov      - tool:            3
5992c663aa5SAlexander Shaposhnikov        version:         34734080
6002c663aa5SAlexander Shaposhnikov  - cmd:             LC_SOURCE_VERSION
6012c663aa5SAlexander Shaposhnikov    cmdsize:         16
6022c663aa5SAlexander Shaposhnikov    version:         0
6032c663aa5SAlexander Shaposhnikov  - cmd:             LC_MAIN
6042c663aa5SAlexander Shaposhnikov    cmdsize:         24
6052c663aa5SAlexander Shaposhnikov    entryoff:        32672
6062c663aa5SAlexander Shaposhnikov    stacksize:       0
6072c663aa5SAlexander Shaposhnikov  - cmd:             LC_ENCRYPTION_INFO
6082c663aa5SAlexander Shaposhnikov    cmdsize:         20
6092c663aa5SAlexander Shaposhnikov    cryptoff:        16384
6102c663aa5SAlexander Shaposhnikov    cryptsize:       16384
6112c663aa5SAlexander Shaposhnikov    cryptid:         0
6122c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLIB
6132c663aa5SAlexander Shaposhnikov    cmdsize:         52
6142c663aa5SAlexander Shaposhnikov    dylib:
6152c663aa5SAlexander Shaposhnikov      name:            24
6162c663aa5SAlexander Shaposhnikov      timestamp:       2
6172c663aa5SAlexander Shaposhnikov      current_version: 83951616
6182c663aa5SAlexander Shaposhnikov      compatibility_version: 65536
619*c0da287cSFangrui Song    Content:         '/usr/lib/libSystem.B.dylib'
6202c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    2
6212c663aa5SAlexander Shaposhnikov  - cmd:             LC_FUNCTION_STARTS
6222c663aa5SAlexander Shaposhnikov    cmdsize:         16
6232c663aa5SAlexander Shaposhnikov    dataoff:         32812
6242c663aa5SAlexander Shaposhnikov    datasize:        4
6252c663aa5SAlexander Shaposhnikov  - cmd:             LC_DATA_IN_CODE
6262c663aa5SAlexander Shaposhnikov    cmdsize:         16
6272c663aa5SAlexander Shaposhnikov    dataoff:         32816
6282c663aa5SAlexander Shaposhnikov    datasize:        0
6292c663aa5SAlexander ShaposhnikovLinkEditData:
6302c663aa5SAlexander Shaposhnikov  ExportTrie:
6312c663aa5SAlexander Shaposhnikov    TerminalSize:    0
6322c663aa5SAlexander Shaposhnikov    NodeOffset:      0
6332c663aa5SAlexander Shaposhnikov    Name:            ''
6342c663aa5SAlexander Shaposhnikov    Flags:           0x0000000000000000
6352c663aa5SAlexander Shaposhnikov    Address:         0x0000000000000000
6362c663aa5SAlexander Shaposhnikov    Other:           0x0000000000000000
6372c663aa5SAlexander Shaposhnikov    ImportName:      ''
6382c663aa5SAlexander Shaposhnikov    Children:
6392c663aa5SAlexander Shaposhnikov      - TerminalSize:    0
6402c663aa5SAlexander Shaposhnikov        NodeOffset:      5
6412c663aa5SAlexander Shaposhnikov        Name:            _
6422c663aa5SAlexander Shaposhnikov        Flags:           0x0000000000000000
6432c663aa5SAlexander Shaposhnikov        Address:         0x0000000000000000
6442c663aa5SAlexander Shaposhnikov        Other:           0x0000000000000000
6452c663aa5SAlexander Shaposhnikov        ImportName:      ''
6462c663aa5SAlexander Shaposhnikov        Children:
6472c663aa5SAlexander Shaposhnikov          - TerminalSize:    2
6482c663aa5SAlexander Shaposhnikov            NodeOffset:      33
6492c663aa5SAlexander Shaposhnikov            Name:            _mh_execute_header
6502c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
6512c663aa5SAlexander Shaposhnikov            Address:         0x0000000000000000
6522c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
6532c663aa5SAlexander Shaposhnikov            ImportName:      ''
6542c663aa5SAlexander Shaposhnikov          - TerminalSize:    4
6552c663aa5SAlexander Shaposhnikov            NodeOffset:      37
6562c663aa5SAlexander Shaposhnikov            Name:            main
6572c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
6582c663aa5SAlexander Shaposhnikov            Address:         0x0000000000007FA0
6592c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
6602c663aa5SAlexander Shaposhnikov            ImportName:      ''
6612c663aa5SAlexander Shaposhnikov  NameList:
6622c663aa5SAlexander Shaposhnikov    - n_strx:          2
6632c663aa5SAlexander Shaposhnikov      n_type:          0x0F
6642c663aa5SAlexander Shaposhnikov      n_sect:          1
6652c663aa5SAlexander Shaposhnikov      n_desc:          16
6662c663aa5SAlexander Shaposhnikov      n_value:         16384
6672c663aa5SAlexander Shaposhnikov    - n_strx:          22
6682c663aa5SAlexander Shaposhnikov      n_type:          0x0F
6692c663aa5SAlexander Shaposhnikov      n_sect:          1
6702c663aa5SAlexander Shaposhnikov      n_desc:          0
6712c663aa5SAlexander Shaposhnikov      n_value:         49056
6722c663aa5SAlexander Shaposhnikov    - n_strx:          28
6732c663aa5SAlexander Shaposhnikov      n_type:          0x01
6742c663aa5SAlexander Shaposhnikov      n_sect:          0
6752c663aa5SAlexander Shaposhnikov      n_desc:          256
6762c663aa5SAlexander Shaposhnikov      n_value:         0
6772c663aa5SAlexander Shaposhnikov  StringTable:
6782c663aa5SAlexander Shaposhnikov    - ' '
6792c663aa5SAlexander Shaposhnikov    - __mh_execute_header
6802c663aa5SAlexander Shaposhnikov    - _main
6812c663aa5SAlexander Shaposhnikov    - dyld_stub_binder
6822c663aa5SAlexander Shaposhnikov    - ''
6832c663aa5SAlexander Shaposhnikov    - ''
6842c663aa5SAlexander Shaposhnikov    - ''
6852c663aa5SAlexander Shaposhnikov...
6862c663aa5SAlexander Shaposhnikov
6872c663aa5SAlexander Shaposhnikov## Case 4: x86_64 OSX binary.
6882c663aa5SAlexander Shaposhnikov## This binary can be built on OSX as follows:
6892c663aa5SAlexander Shaposhnikov## main.c: int main() { return 0; }
6902c663aa5SAlexander Shaposhnikov## clang -arch x86_64 main.c -o main.exe
6912c663aa5SAlexander Shaposhnikov--- !mach-o
6922c663aa5SAlexander ShaposhnikovFileHeader:
6932c663aa5SAlexander Shaposhnikov  magic:           0xFEEDFACF
6942c663aa5SAlexander Shaposhnikov  cputype:         0x01000007
6952c663aa5SAlexander Shaposhnikov  cpusubtype:      0x80000003
6962c663aa5SAlexander Shaposhnikov  filetype:        0x00000002
6972c663aa5SAlexander Shaposhnikov  ncmds:           14
6982c663aa5SAlexander Shaposhnikov  sizeofcmds:      744
6992c663aa5SAlexander Shaposhnikov  flags:           0x00200085
7002c663aa5SAlexander Shaposhnikov  reserved:        0x00000000
7012c663aa5SAlexander ShaposhnikovLoadCommands:
7022c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT_64
7032c663aa5SAlexander Shaposhnikov    cmdsize:         72
7042c663aa5SAlexander Shaposhnikov    segname:         __PAGEZERO
7052c663aa5SAlexander Shaposhnikov    vmaddr:          0
7062c663aa5SAlexander Shaposhnikov    vmsize:          4294967296
7072c663aa5SAlexander Shaposhnikov    fileoff:         0
7082c663aa5SAlexander Shaposhnikov    filesize:        0
7092c663aa5SAlexander Shaposhnikov    maxprot:         0
7102c663aa5SAlexander Shaposhnikov    initprot:        0
7112c663aa5SAlexander Shaposhnikov    nsects:          0
7122c663aa5SAlexander Shaposhnikov    flags:           0
7132c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT_64
7142c663aa5SAlexander Shaposhnikov    cmdsize:         232
7152c663aa5SAlexander Shaposhnikov    segname:         __TEXT
7162c663aa5SAlexander Shaposhnikov    vmaddr:          4294967296
7172c663aa5SAlexander Shaposhnikov    vmsize:          4096
7182c663aa5SAlexander Shaposhnikov    fileoff:         0
7192c663aa5SAlexander Shaposhnikov    filesize:        4096
7202c663aa5SAlexander Shaposhnikov    maxprot:         5
7212c663aa5SAlexander Shaposhnikov    initprot:        5
7222c663aa5SAlexander Shaposhnikov    nsects:          2
7232c663aa5SAlexander Shaposhnikov    flags:           0
7242c663aa5SAlexander Shaposhnikov    Sections:
7252c663aa5SAlexander Shaposhnikov      - sectname:        __text
7262c663aa5SAlexander Shaposhnikov        segname:         __TEXT
7272c663aa5SAlexander Shaposhnikov        addr:            0x0000000100000FA0
7282c663aa5SAlexander Shaposhnikov        size:            15
7292c663aa5SAlexander Shaposhnikov        offset:          0x00000FA0
7302c663aa5SAlexander Shaposhnikov        align:           4
7312c663aa5SAlexander Shaposhnikov        reloff:          0x00000000
7322c663aa5SAlexander Shaposhnikov        nreloc:          0
7332c663aa5SAlexander Shaposhnikov        flags:           0x80000400
7342c663aa5SAlexander Shaposhnikov        reserved1:       0x00000000
7352c663aa5SAlexander Shaposhnikov        reserved2:       0x00000000
7362c663aa5SAlexander Shaposhnikov        reserved3:       0x00000000
7372c663aa5SAlexander Shaposhnikov        content:         554889E531C0C745FC000000005DC3
7382c663aa5SAlexander Shaposhnikov      - sectname:        __unwind_info
7392c663aa5SAlexander Shaposhnikov        segname:         __TEXT
7402c663aa5SAlexander Shaposhnikov        addr:            0x0000000100000FB0
7412c663aa5SAlexander Shaposhnikov        size:            72
7422c663aa5SAlexander Shaposhnikov        offset:          0x00000FB0
7432c663aa5SAlexander Shaposhnikov        align:           2
7442c663aa5SAlexander Shaposhnikov        reloff:          0x00000000
7452c663aa5SAlexander Shaposhnikov        nreloc:          0
7462c663aa5SAlexander Shaposhnikov        flags:           0x00000000
7472c663aa5SAlexander Shaposhnikov        reserved1:       0x00000000
7482c663aa5SAlexander Shaposhnikov        reserved2:       0x00000000
7492c663aa5SAlexander Shaposhnikov        reserved3:       0x00000000
7502c663aa5SAlexander Shaposhnikov        content:         010000001C000000000000001C000000000000001C00000002000000A00F00003400000034000000B00F00000000000034000000030000000C000100100001000000000000000001
7512c663aa5SAlexander Shaposhnikov  - cmd:             LC_SEGMENT_64
7522c663aa5SAlexander Shaposhnikov    cmdsize:         72
7532c663aa5SAlexander Shaposhnikov    segname:         __LINKEDIT
7542c663aa5SAlexander Shaposhnikov    vmaddr:          4294971392
7552c663aa5SAlexander Shaposhnikov    vmsize:          4096
7562c663aa5SAlexander Shaposhnikov    fileoff:         4096
7572c663aa5SAlexander Shaposhnikov    filesize:        152
7582c663aa5SAlexander Shaposhnikov    maxprot:         1
7592c663aa5SAlexander Shaposhnikov    initprot:        1
7602c663aa5SAlexander Shaposhnikov    nsects:          0
7612c663aa5SAlexander Shaposhnikov    flags:           0
7622c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYLD_INFO_ONLY
7632c663aa5SAlexander Shaposhnikov    cmdsize:         48
7642c663aa5SAlexander Shaposhnikov    rebase_off:      0
7652c663aa5SAlexander Shaposhnikov    rebase_size:     0
7662c663aa5SAlexander Shaposhnikov    bind_off:        0
7672c663aa5SAlexander Shaposhnikov    bind_size:       0
7682c663aa5SAlexander Shaposhnikov    weak_bind_off:   0
7692c663aa5SAlexander Shaposhnikov    weak_bind_size:  0
7702c663aa5SAlexander Shaposhnikov    lazy_bind_off:   0
7712c663aa5SAlexander Shaposhnikov    lazy_bind_size:  0
7722c663aa5SAlexander Shaposhnikov    export_off:      4096
7732c663aa5SAlexander Shaposhnikov    export_size:     48
7742c663aa5SAlexander Shaposhnikov  - cmd:             LC_SYMTAB
7752c663aa5SAlexander Shaposhnikov    cmdsize:         24
7762c663aa5SAlexander Shaposhnikov    symoff:          4152
7772c663aa5SAlexander Shaposhnikov    nsyms:           3
7782c663aa5SAlexander Shaposhnikov    stroff:          4200
7792c663aa5SAlexander Shaposhnikov    strsize:         48
7802c663aa5SAlexander Shaposhnikov  - cmd:             LC_DYSYMTAB
7812c663aa5SAlexander Shaposhnikov    cmdsize:         80
7822c663aa5SAlexander Shaposhnikov    ilocalsym:       0
7832c663aa5SAlexander Shaposhnikov    nlocalsym:       0
7842c663aa5SAlexander Shaposhnikov    iextdefsym:      0
7852c663aa5SAlexander Shaposhnikov    nextdefsym:      2
7862c663aa5SAlexander Shaposhnikov    iundefsym:       2
7872c663aa5SAlexander Shaposhnikov    nundefsym:       1
7882c663aa5SAlexander Shaposhnikov    tocoff:          0
7892c663aa5SAlexander Shaposhnikov    ntoc:            0
7902c663aa5SAlexander Shaposhnikov    modtaboff:       0
7912c663aa5SAlexander Shaposhnikov    nmodtab:         0
7922c663aa5SAlexander Shaposhnikov    extrefsymoff:    0
7932c663aa5SAlexander Shaposhnikov    nextrefsyms:     0
7942c663aa5SAlexander Shaposhnikov    indirectsymoff:  0
7952c663aa5SAlexander Shaposhnikov    nindirectsyms:   0
7962c663aa5SAlexander Shaposhnikov    extreloff:       0
7972c663aa5SAlexander Shaposhnikov    nextrel:         0
7982c663aa5SAlexander Shaposhnikov    locreloff:       0
7992c663aa5SAlexander Shaposhnikov    nlocrel:         0
8002c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLINKER
8012c663aa5SAlexander Shaposhnikov    cmdsize:         32
8022c663aa5SAlexander Shaposhnikov    name:            12
803*c0da287cSFangrui Song    Content:         '/usr/lib/dyld'
8042c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    7
8052c663aa5SAlexander Shaposhnikov  - cmd:             LC_UUID
8062c663aa5SAlexander Shaposhnikov    cmdsize:         24
8072c663aa5SAlexander Shaposhnikov    uuid:            D70F7C9D-410A-3567-83E2-4CA3F33585FF
8082c663aa5SAlexander Shaposhnikov  - cmd:             LC_BUILD_VERSION
8092c663aa5SAlexander Shaposhnikov    cmdsize:         32
8102c663aa5SAlexander Shaposhnikov    platform:        1
8112c663aa5SAlexander Shaposhnikov    minos:           658944
8122c663aa5SAlexander Shaposhnikov    sdk:             658944
8132c663aa5SAlexander Shaposhnikov    ntools:          1
8142c663aa5SAlexander Shaposhnikov    Tools:
8152c663aa5SAlexander Shaposhnikov      - tool:            3
8162c663aa5SAlexander Shaposhnikov        version:         34734080
8172c663aa5SAlexander Shaposhnikov  - cmd:             LC_SOURCE_VERSION
8182c663aa5SAlexander Shaposhnikov    cmdsize:         16
8192c663aa5SAlexander Shaposhnikov    version:         0
8202c663aa5SAlexander Shaposhnikov  - cmd:             LC_MAIN
8212c663aa5SAlexander Shaposhnikov    cmdsize:         24
8222c663aa5SAlexander Shaposhnikov    entryoff:        4000
8232c663aa5SAlexander Shaposhnikov    stacksize:       0
8242c663aa5SAlexander Shaposhnikov  - cmd:             LC_LOAD_DYLIB
8252c663aa5SAlexander Shaposhnikov    cmdsize:         56
8262c663aa5SAlexander Shaposhnikov    dylib:
8272c663aa5SAlexander Shaposhnikov      name:            24
8282c663aa5SAlexander Shaposhnikov      timestamp:       2
8292c663aa5SAlexander Shaposhnikov      current_version: 82115073
8302c663aa5SAlexander Shaposhnikov      compatibility_version: 65536
831*c0da287cSFangrui Song    Content:         '/usr/lib/libSystem.B.dylib'
8322c663aa5SAlexander Shaposhnikov    ZeroPadBytes:    6
8332c663aa5SAlexander Shaposhnikov  - cmd:             LC_FUNCTION_STARTS
8342c663aa5SAlexander Shaposhnikov    cmdsize:         16
8352c663aa5SAlexander Shaposhnikov    dataoff:         4144
8362c663aa5SAlexander Shaposhnikov    datasize:        8
8372c663aa5SAlexander Shaposhnikov  - cmd:             LC_DATA_IN_CODE
8382c663aa5SAlexander Shaposhnikov    cmdsize:         16
8392c663aa5SAlexander Shaposhnikov    dataoff:         4152
8402c663aa5SAlexander Shaposhnikov    datasize:        0
8412c663aa5SAlexander ShaposhnikovLinkEditData:
8422c663aa5SAlexander Shaposhnikov  ExportTrie:
8432c663aa5SAlexander Shaposhnikov    TerminalSize:    0
8442c663aa5SAlexander Shaposhnikov    NodeOffset:      0
8452c663aa5SAlexander Shaposhnikov    Name:            ''
8462c663aa5SAlexander Shaposhnikov    Flags:           0x0000000000000000
8472c663aa5SAlexander Shaposhnikov    Address:         0x0000000000000000
8482c663aa5SAlexander Shaposhnikov    Other:           0x0000000000000000
8492c663aa5SAlexander Shaposhnikov    ImportName:      ''
8502c663aa5SAlexander Shaposhnikov    Children:
8512c663aa5SAlexander Shaposhnikov      - TerminalSize:    0
8522c663aa5SAlexander Shaposhnikov        NodeOffset:      5
8532c663aa5SAlexander Shaposhnikov        Name:            _
8542c663aa5SAlexander Shaposhnikov        Flags:           0x0000000000000000
8552c663aa5SAlexander Shaposhnikov        Address:         0x0000000000000000
8562c663aa5SAlexander Shaposhnikov        Other:           0x0000000000000000
8572c663aa5SAlexander Shaposhnikov        ImportName:      ''
8582c663aa5SAlexander Shaposhnikov        Children:
8592c663aa5SAlexander Shaposhnikov          - TerminalSize:    2
8602c663aa5SAlexander Shaposhnikov            NodeOffset:      33
8612c663aa5SAlexander Shaposhnikov            Name:            _mh_execute_header
8622c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
8632c663aa5SAlexander Shaposhnikov            Address:         0x0000000000000000
8642c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
8652c663aa5SAlexander Shaposhnikov            ImportName:      ''
8662c663aa5SAlexander Shaposhnikov          - TerminalSize:    3
8672c663aa5SAlexander Shaposhnikov            NodeOffset:      37
8682c663aa5SAlexander Shaposhnikov            Name:            main
8692c663aa5SAlexander Shaposhnikov            Flags:           0x0000000000000000
8702c663aa5SAlexander Shaposhnikov            Address:         0x0000000000000FA0
8712c663aa5SAlexander Shaposhnikov            Other:           0x0000000000000000
8722c663aa5SAlexander Shaposhnikov            ImportName:      ''
8732c663aa5SAlexander Shaposhnikov  NameList:
8742c663aa5SAlexander Shaposhnikov    - n_strx:          2
8752c663aa5SAlexander Shaposhnikov      n_type:          0x0F
8762c663aa5SAlexander Shaposhnikov      n_sect:          1
8772c663aa5SAlexander Shaposhnikov      n_desc:          16
8782c663aa5SAlexander Shaposhnikov      n_value:         4294967296
8792c663aa5SAlexander Shaposhnikov    - n_strx:          22
8802c663aa5SAlexander Shaposhnikov      n_type:          0x0F
8812c663aa5SAlexander Shaposhnikov      n_sect:          1
8822c663aa5SAlexander Shaposhnikov      n_desc:          0
8832c663aa5SAlexander Shaposhnikov      n_value:         4294971296
8842c663aa5SAlexander Shaposhnikov    - n_strx:          28
8852c663aa5SAlexander Shaposhnikov      n_type:          0x01
8862c663aa5SAlexander Shaposhnikov      n_sect:          0
8872c663aa5SAlexander Shaposhnikov      n_desc:          256
8882c663aa5SAlexander Shaposhnikov      n_value:         0
8892c663aa5SAlexander Shaposhnikov  StringTable:
8902c663aa5SAlexander Shaposhnikov    - ' '
8912c663aa5SAlexander Shaposhnikov    - __mh_execute_header
8922c663aa5SAlexander Shaposhnikov    - _main
8932c663aa5SAlexander Shaposhnikov    - dyld_stub_binder
8942c663aa5SAlexander Shaposhnikov    - ''
8952c663aa5SAlexander Shaposhnikov    - ''
8962c663aa5SAlexander Shaposhnikov    - ''
8972c663aa5SAlexander Shaposhnikov...
898