2 #------------------------------------------------------------
3 # $File: mach,v 1.23 2015/10/15 21:51:22 christos Exp $
4 # Mach has two magic numbers, 0xcafebabe and 0xfeedface.
5 # Unfortunately the first, cafebabe, is shared with
6 # Java ByteCode, so they are both handled in the file "cafebabe".
7 # The "feedface" ones are handled herein.
8 #------------------------------------------------------------
9 # if set, it's for the 64-bit version of the architecture
10 # yes, this is separate from the low-order magic number bit
11 # it's also separate from the "64-bit libraries" bit in the
12 # upper 8 bits of the CPU subtype
15 >0 belong&0x01000000 0
20 >>0 belong&0x00ffffff 1
21 >>>4 belong&0x00ffffff 0 vax
22 >>>4 belong&0x00ffffff 1 vax11/780
23 >>>4 belong&0x00ffffff 2 vax11/785
24 >>>4 belong&0x00ffffff 3 vax11/750
25 >>>4 belong&0x00ffffff 4 vax11/730
26 >>>4 belong&0x00ffffff 5 uvaxI
27 >>>4 belong&0x00ffffff 6 uvaxII
28 >>>4 belong&0x00ffffff 7 vax8200
29 >>>4 belong&0x00ffffff 8 vax8500
30 >>>4 belong&0x00ffffff 9 vax8600
31 >>>4 belong&0x00ffffff 10 vax8650
32 >>>4 belong&0x00ffffff 11 vax8800
33 >>>4 belong&0x00ffffff 12 uvaxIII
34 >>>4 belong&0x00ffffff >12 vax subarchitecture=%d
35 >>0 belong&0x00ffffff 2 romp
36 >>0 belong&0x00ffffff 3 architecture=3
37 >>0 belong&0x00ffffff 4 ns32032
38 >>0 belong&0x00ffffff 5 ns32332
39 >>0 belong&0x00ffffff 6 m68k
41 >>0 belong&0x00ffffff 7
42 >>>4 belong&0x0000000f 3 i386
43 >>>4 belong&0x0000000f 4 i486
44 >>>>4 belong&0x00fffff0 0
45 >>>>4 belong&0x00fffff0 0x80 \bsx
46 >>>4 belong&0x0000000f 5 i586
47 >>>4 belong&0x0000000f 6
48 >>>>4 belong&0x00fffff0 0 p6
49 >>>>4 belong&0x00fffff0 0x10 pentium_pro
50 >>>>4 belong&0x00fffff0 0x20 pentium_2_m0x20
51 >>>>4 belong&0x00fffff0 0x30 pentium_2_m3
52 >>>>4 belong&0x00fffff0 0x40 pentium_2_m0x40
53 >>>>4 belong&0x00fffff0 0x50 pentium_2_m5
54 >>>>4 belong&0x00fffff0 >0x50 pentium_2_m0x%x
55 >>>4 belong&0x0000000f 7 celeron
56 >>>>4 belong&0x00fffff0 0x00 \b_m0x%x
57 >>>>4 belong&0x00fffff0 0x10 \b_m0x%x
58 >>>>4 belong&0x00fffff0 0x20 \b_m0x%x
59 >>>>4 belong&0x00fffff0 0x30 \b_m0x%x
60 >>>>4 belong&0x00fffff0 0x40 \b_m0x%x
61 >>>>4 belong&0x00fffff0 0x50 \b_m0x%x
62 >>>>4 belong&0x00fffff0 0x60
63 >>>>4 belong&0x00fffff0 0x70 \b_mobile
64 >>>>4 belong&0x00fffff0 >0x70 \b_m0x%x
65 >>>4 belong&0x0000000f 8 pentium_3
66 >>>>4 belong&0x00fffff0 0x00
67 >>>>4 belong&0x00fffff0 0x10 \b_m
68 >>>>4 belong&0x00fffff0 0x20 \b_xeon
69 >>>>4 belong&0x00fffff0 >0x20 \b_m0x%x
70 >>>4 belong&0x0000000f 9 pentiumM
71 >>>>4 belong&0x00fffff0 0x00
72 >>>>4 belong&0x00fffff0 >0x00 \b_m0x%x
73 >>>4 belong&0x0000000f 10 pentium_4
74 >>>>4 belong&0x00fffff0 0x00
75 >>>>4 belong&0x00fffff0 0x10 \b_m
76 >>>>4 belong&0x00fffff0 >0x10 \b_m0x%x
77 >>>4 belong&0x0000000f 11 itanium
78 >>>>4 belong&0x00fffff0 0x00
79 >>>>4 belong&0x00fffff0 0x10 \b_2
80 >>>>4 belong&0x00fffff0 >0x10 \b_m0x%x
81 >>>4 belong&0x0000000f 12 xeon
82 >>>>4 belong&0x00fffff0 0x00
83 >>>>4 belong&0x00fffff0 0x10 \b_mp
84 >>>>4 belong&0x00fffff0 >0x10 \b_m0x%x
85 >>>4 belong&0x0000000f >12 ia32 family=%d
86 >>>>4 belong&0x00fffff0 0x00
87 >>>>4 belong&0x00fffff0 >0x00 model=%x
88 >>0 belong&0x00ffffff 8 mips
89 >>>4 belong&0x00ffffff 1 R2300
90 >>>4 belong&0x00ffffff 2 R2600
91 >>>4 belong&0x00ffffff 3 R2800
92 >>>4 belong&0x00ffffff 4 R2000a
93 >>>4 belong&0x00ffffff 5 R2000
94 >>>4 belong&0x00ffffff 6 R3000a
95 >>>4 belong&0x00ffffff 7 R3000
96 >>>4 belong&0x00ffffff >7 subarchitecture=%d
97 >>0 belong&0x00ffffff 9 ns32532
98 >>0 belong&0x00ffffff 10 mc98000
99 >>0 belong&0x00ffffff 11 hppa
100 >>>4 belong&0x00ffffff 0 7100
101 >>>4 belong&0x00ffffff 1 7100LC
102 >>>4 belong&0x00ffffff >1 subarchitecture=%d
103 >>0 belong&0x00ffffff 12 arm
104 >>>4 belong&0x00ffffff 0
105 >>>4 belong&0x00ffffff 1 subarchitecture=%d
106 >>>4 belong&0x00ffffff 2 subarchitecture=%d
107 >>>4 belong&0x00ffffff 3 subarchitecture=%d
108 >>>4 belong&0x00ffffff 4 subarchitecture=%d
109 >>>4 belong&0x00ffffff 5 \bv4t
110 >>>4 belong&0x00ffffff 6 \bv6
111 >>>4 belong&0x00ffffff 7 \bv5tej
112 >>>4 belong&0x00ffffff 8 \bxscale
113 >>>4 belong&0x00ffffff 9 \bv7
114 >>>4 belong&0x00ffffff 10 \bv7f
115 >>>4 belong&0x00ffffff 11 \bv7s
116 >>>4 belong&0x00ffffff 12 \bv7k
117 >>>4 belong&0x00ffffff 13 \bv8
118 >>>4 belong&0x00ffffff 14 \bv6m
119 >>>4 belong&0x00ffffff 15 \bv7m
120 >>>4 belong&0x00ffffff 16 \bv7em
121 >>>4 belong&0x00ffffff >16 subarchitecture=%d
123 >>0 belong&0x00ffffff 13
124 >>>4 belong&0x00ffffff 0 mc88000
125 >>>4 belong&0x00ffffff 1 mc88100
126 >>>4 belong&0x00ffffff 2 mc88110
127 >>>4 belong&0x00ffffff >2 mc88000 subarchitecture=%d
128 >>0 belong&0x00ffffff 14 SPARC
129 >>0 belong&0x00ffffff 15 i860g
130 >>0 belong&0x00ffffff 16 alpha
131 >>0 belong&0x00ffffff 17 rs6000
132 >>0 belong&0x00ffffff 18 ppc
133 >>>4 belong&0x00ffffff 0
134 >>>4 belong&0x00ffffff 1 \b_601
135 >>>4 belong&0x00ffffff 2 \b_602
136 >>>4 belong&0x00ffffff 3 \b_603
137 >>>4 belong&0x00ffffff 4 \b_603e
138 >>>4 belong&0x00ffffff 5 \b_603ev
139 >>>4 belong&0x00ffffff 6 \b_604
140 >>>4 belong&0x00ffffff 7 \b_604e
141 >>>4 belong&0x00ffffff 8 \b_620
142 >>>4 belong&0x00ffffff 9 \b_650
143 >>>4 belong&0x00ffffff 10 \b_7400
144 >>>4 belong&0x00ffffff 11 \b_7450
145 >>>4 belong&0x00ffffff 100 \b_970
146 >>>4 belong&0x00ffffff >100 subarchitecture=%d
147 >>0 belong&0x00ffffff >18 architecture=%d
148 >0 belong&0x01000000 0x01000000
152 >>0 belong&0x00ffffff 0 64-bit architecture=%d
153 >>0 belong&0x00ffffff 1 64-bit architecture=%d
154 >>0 belong&0x00ffffff 2 64-bit architecture=%d
155 >>0 belong&0x00ffffff 3 64-bit architecture=%d
156 >>0 belong&0x00ffffff 4 64-bit architecture=%d
157 >>0 belong&0x00ffffff 5 64-bit architecture=%d
158 >>0 belong&0x00ffffff 6 64-bit architecture=%d
159 >>0 belong&0x00ffffff 7 x86_64
160 >>>4 belong&0x00ffffff 0 subarchitecture=%d
161 >>>4 belong&0x00ffffff 1 subarchitecture=%d
162 >>>4 belong&0x00ffffff 2 subarchitecture=%d
163 >>>4 belong&0x00ffffff 3
164 >>>4 belong&0x00ffffff 4 \b_arch1
165 >>>4 belong&0x00ffffff 8 \b_haswell
166 >>>4 belong&0x00ffffff >4 subarchitecture=%d
167 >>0 belong&0x00ffffff 8 64-bit architecture=%d
168 >>0 belong&0x00ffffff 9 64-bit architecture=%d
169 >>0 belong&0x00ffffff 10 64-bit architecture=%d
170 >>0 belong&0x00ffffff 11 64-bit architecture=%d
171 >>0 belong&0x00ffffff 12 arm64
172 >>>4 belong&0x00ffffff 0
173 >>>4 belong&0x00ffffff 1 \bv8
174 >>0 belong&0x00ffffff 13 64-bit architecture=%d
175 >>0 belong&0x00ffffff 14 64-bit architecture=%d
176 >>0 belong&0x00ffffff 15 64-bit architecture=%d
177 >>0 belong&0x00ffffff 16 64-bit architecture=%d
178 >>0 belong&0x00ffffff 17 64-bit architecture=%d
179 >>0 belong&0x00ffffff 18 ppc64
180 >>>4 belong&0x00ffffff 0
181 >>>4 belong&0x00ffffff 1 \b_601
182 >>>4 belong&0x00ffffff 2 \b_602
183 >>>4 belong&0x00ffffff 3 \b_603
184 >>>4 belong&0x00ffffff 4 \b_603e
185 >>>4 belong&0x00ffffff 5 \b_603ev
186 >>>4 belong&0x00ffffff 6 \b_604
187 >>>4 belong&0x00ffffff 7 \b_604e
188 >>>4 belong&0x00ffffff 8 \b_620
189 >>>4 belong&0x00ffffff 9 \b_650
190 >>>4 belong&0x00ffffff 10 \b_7400
191 >>>4 belong&0x00ffffff 11 \b_7450
192 >>>4 belong&0x00ffffff 100 \b_970
193 >>>4 belong&0x00ffffff >100 subarchitecture=%d
194 >>0 belong&0x00ffffff >18 64-bit architecture=%d
201 >12 belong 2 executable
202 >12 belong 3 fixed virtual memory shared library
204 >12 belong 5 preload executable
205 >12 belong 6 dynamically linked shared library
206 >12 belong 7 dynamic linker
208 >12 belong 9 dynamically linked shared library stub
209 >12 belong 10 dSYM companion file
210 >12 belong 11 kext bundle
212 >>12 belong x filetype=%d
213 >24 belong >0 \b, flags:<
214 >>24 belong &0x0000001 \bNOUNDEFS
215 >>24 belong &0x0000002 \b|INCRLINK
216 >>24 belong &0x0000004 \b|DYLDLINK
217 >>24 belong &0x0000008 \b|BINDATLOAD
218 >>24 belong &0x0000010 \b|PREBOUND
219 >>24 belong &0x0000020 \b|SPLIT_SEGS
220 >>24 belong &0x0000040 \b|LAZY_INIT
221 >>24 belong &0x0000080 \b|TWOLEVEL
222 >>24 belong &0x0000100 \b|FORCE_FLAT
223 >>24 belong &0x0000200 \b|NOMULTIDEFS
224 >>24 belong &0x0000400 \b|NOFIXPREBINDING
225 >>24 belong &0x0000800 \b|PREBINDABLE
226 >>24 belong &0x0001000 \b|ALLMODSBOUND
227 >>24 belong &0x0002000 \b|SUBSECTIONS_VIA_SYMBOLS
228 >>24 belong &0x0004000 \b|CANONICAL
229 >>24 belong &0x0008000 \b|WEAK_DEFINES
230 >>24 belong &0x0010000 \b|BINDS_TO_WEAK
231 >>24 belong &0x0020000 \b|ALLOW_STACK_EXECUTION
232 >>24 belong &0x0040000 \b|ROOT_SAFE
233 >>24 belong &0x0080000 \b|SETUID_SAFE
234 >>24 belong &0x0100000 \b|NO_REEXPORTED_DYLIBS
235 >>24 belong &0x0200000 \b|PIE
236 >>24 belong &0x0400000 \b|DEAD_STRIPPABLE_DYLIB
237 >>24 belong &0x0800000 \b|HAS_TLV_DESCRIPTORS
238 >>24 belong &0x1000000 \b|NO_HEAP_EXECUTION
239 >>24 belong &0x2000000 \b|APP_EXTENSION_SAFE
243 0 lelong&0xfffffffe 0xfeedface Mach-O
245 !:mime application/x-mach-binary
248 0 belong&0xfffffffe 0xfeedface Mach-O
250 !:mime application/x-mach-binary