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