ruby-macho 0.2.3 → 0.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/macho.rb +1 -1
- data/lib/macho/headers.rb +136 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 555d8c0f3cd81252ac1319053a95d643536387a2
|
4
|
+
data.tar.gz: 23a91b4980829b2b8d2133f226aeefbc4bd950b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37f23f18f8a4a4c07933978d7be6bcb65cc6655f778496a8b2b5e2932cfa199f3230bb82399f1f964c06469ec74cece3fd9fb2ef4c6d39c2ef933eaa185ae96c
|
7
|
+
data.tar.gz: 39bfb1a708519820a4afbbccb6a47da8c7ef3ad2641d7ad5c7969709f50f4ce7ffc3369918238848da2786f49fd9e10209d0e7e0b6bbba96a2a9620b6f6bdfc6
|
data/lib/macho.rb
CHANGED
data/lib/macho/headers.rb
CHANGED
@@ -34,6 +34,9 @@ module MachO
|
|
34
34
|
# any CPU (unused?)
|
35
35
|
CPU_TYPE_ANY = -1
|
36
36
|
|
37
|
+
# m68k compatible CPUs
|
38
|
+
CPU_TYPE_MC680X0 = 0x06
|
39
|
+
|
37
40
|
# i386 and later compatible CPUs
|
38
41
|
CPU_TYPE_I386 = 0x07
|
39
42
|
|
@@ -43,6 +46,9 @@ module MachO
|
|
43
46
|
# 32-bit ARM compatible CPUs
|
44
47
|
CPU_TYPE_ARM = 0x0c
|
45
48
|
|
49
|
+
# m88k compatible CPUs
|
50
|
+
CPU_TYPE_MC88000 = 0xd
|
51
|
+
|
46
52
|
# 64-bit ARM compatible CPUs
|
47
53
|
CPU_TYPE_ARM64 = (CPU_TYPE_ARM | CPU_ARCH_ABI64)
|
48
54
|
|
@@ -71,10 +77,42 @@ module MachO
|
|
71
77
|
CPU_SUBTYPE_LIB64 = 0x80000000
|
72
78
|
|
73
79
|
# the lowest common sub-type for `CPU_TYPE_I386`
|
74
|
-
|
80
|
+
CPU_SUBTYPE_I386 = 3
|
81
|
+
|
82
|
+
# the i486 sub-type for `CPU_TYPE_I386`
|
83
|
+
CPU_SUBTYPE_486 = 4
|
84
|
+
|
85
|
+
# the i486SX sub-type for `CPU_TYPE_I386`
|
86
|
+
CPU_SUBTYPE_486SX = 132
|
87
|
+
|
88
|
+
# the i586 (P5, Pentium) sub-type for `CPU_TYPE_I386`
|
89
|
+
CPU_SUBTYPE_586 = 5
|
90
|
+
CPU_SUBTYPE_PENT = CPU_SUBTYPE_586
|
91
|
+
|
92
|
+
# the Pentium Pro (P6) sub-type for `CPU_TYPE_I386`
|
93
|
+
CPU_SUBTYPE_PENTPRO = 22
|
94
|
+
|
95
|
+
# the Pentium II (P6, M3?) sub-type for `CPU_TYPE_I386`
|
96
|
+
CPU_SUBTYPE_PENTII_M3 = 54
|
97
|
+
|
98
|
+
# the Pentium II (P6, M5?) sub-type for `CPU_TYPE_I386`
|
99
|
+
CPU_SUBTYPE_PENTII_M5 = 86
|
100
|
+
|
101
|
+
# the Pentium 4 (Netburst) sub-type for `CPU_TYPE_I386`
|
102
|
+
CPU_SUBTYPE_PENTIUM_4 = 10
|
103
|
+
|
104
|
+
# the lowest common sub-type for `CPU_TYPE_MC680X0`
|
105
|
+
CPU_SUBTYPE_MC680X0_ALL = 1
|
106
|
+
CPU_SUBTYPE_MC68030 = CPU_SUBTYPE_MC680X0_ALL
|
107
|
+
|
108
|
+
# the 040 subtype for `CPU_TYPE_MC680X0`
|
109
|
+
CPU_SUBTYPE_MC68040 = 2
|
110
|
+
|
111
|
+
# the 030 subtype for `CPU_TYPE_MC680X0`
|
112
|
+
CPU_SUBTYPE_MC68030_ONLY = 3
|
75
113
|
|
76
114
|
# the lowest common sub-type for `CPU_TYPE_X86_64`
|
77
|
-
CPU_SUBTYPE_X86_64_ALL =
|
115
|
+
CPU_SUBTYPE_X86_64_ALL = CPU_SUBTYPE_I386
|
78
116
|
|
79
117
|
# the Haskell sub-type for `CPU_TYPE_X86_64`
|
80
118
|
CPU_SUBTYPE_X86_64_H = 8
|
@@ -82,15 +120,39 @@ module MachO
|
|
82
120
|
# the lowest common sub-type for `CPU_TYPE_ARM`
|
83
121
|
CPU_SUBTYPE_ARM_ALL = 0
|
84
122
|
|
123
|
+
# the v4t sub-type for `CPU_TYPE_ARM`
|
124
|
+
CPU_SUBTYPE_ARM_V4T = 5
|
125
|
+
|
126
|
+
# the v6 sub-type for `CPU_TYPE_ARM`
|
127
|
+
CPU_SUBTYPE_ARM_V6 = 6
|
128
|
+
|
129
|
+
# the v5 sub-type for `CPU_TYPE_ARM`
|
130
|
+
CPU_SUBTYPE_ARM_V5TEJ = 7
|
131
|
+
|
132
|
+
# the xscale (v5 family) sub-type for `CPU_TYPE_ARM`
|
133
|
+
CPU_SUBTYPE_ARM_XSCALE = 8
|
134
|
+
|
85
135
|
# the v7 sub-type for `CPU_TYPE_ARM`
|
86
136
|
CPU_SUBTYPE_ARM_V7 = 9
|
87
137
|
|
88
|
-
# the
|
138
|
+
# the v7f (Cortex A9) sub-type for `CPU_TYPE_ARM`
|
139
|
+
CPU_SUBTYPE_ARM_V7F = 10
|
140
|
+
|
141
|
+
# the v7s ("Swift") sub-type for `CPU_TYPE_ARM`
|
89
142
|
CPU_SUBTYPE_ARM_V7S = 11
|
90
143
|
|
91
|
-
# the v7k sub-type for `CPU_TYPE_ARM`
|
144
|
+
# the v7k ("Kirkwood40") sub-type for `CPU_TYPE_ARM`
|
92
145
|
CPU_SUBTYPE_ARM_V7K = 12
|
93
146
|
|
147
|
+
# the v6m sub-type for `CPU_TYPE_ARM`
|
148
|
+
CPU_SUBTYPE_ARM_V6M = 14
|
149
|
+
|
150
|
+
# the v7m sub-type for `CPU_TYPE_ARM`
|
151
|
+
CPU_SUBTYPE_ARM_V7M = 15
|
152
|
+
|
153
|
+
# the v7em sub-type for `CPU_TYPE_ARM`
|
154
|
+
CPU_SUBTYPE_ARM_V7EM = 16
|
155
|
+
|
94
156
|
# the v8 sub-type for `CPU_TYPE_ARM`
|
95
157
|
CPU_SUBTYPE_ARM_V8 = 13
|
96
158
|
|
@@ -100,9 +162,43 @@ module MachO
|
|
100
162
|
# the v8 sub-type for `CPU_TYPE_ARM64`
|
101
163
|
CPU_SUBTYPE_ARM64_V8 = 1
|
102
164
|
|
165
|
+
# the lowest common sub-type for `CPU_TYPE_MC88000`
|
166
|
+
CPU_SUBTYPE_MC88000_ALL = 0
|
167
|
+
CPU_SUBTYPE_MMAX_JPC = CPU_SUBTYPE_MC88000_ALL
|
168
|
+
|
169
|
+
# the 100 sub-type for `CPU_TYPE_MC88000`
|
170
|
+
CPU_SUBTYPE_MC88100 = 1
|
171
|
+
|
172
|
+
# the 110 sub-type for `CPU_TYPE_MC88000`
|
173
|
+
CPU_SUBTYPE_MC88110 = 2
|
174
|
+
|
103
175
|
# the lowest common sub-type for `CPU_TYPE_POWERPC`
|
104
176
|
CPU_SUBTYPE_POWERPC_ALL = 0
|
105
177
|
|
178
|
+
# the 601 sub-type for `CPU_TYPE_POWERPC`
|
179
|
+
CPU_SUBTYPE_POWERPC_601 = 1
|
180
|
+
|
181
|
+
# the 602 sub-type for `CPU_TYPE_POWERPC`
|
182
|
+
CPU_SUBTYPE_POWERPC_602 = 2
|
183
|
+
|
184
|
+
# the 603 sub-type for `CPU_TYPE_POWERPC`
|
185
|
+
CPU_SUBTYPE_POWERPC_603 = 3
|
186
|
+
|
187
|
+
# the 603e (G2) sub-type for `CPU_TYPE_POWERPC`
|
188
|
+
CPU_SUBTYPE_POWERPC_603E = 4
|
189
|
+
|
190
|
+
# the 603ev sub-type for `CPU_TYPE_POWERPC`
|
191
|
+
CPU_SUBTYPE_POWERPC_603EV = 5
|
192
|
+
|
193
|
+
# the 604 sub-type for `CPU_TYPE_POWERPC`
|
194
|
+
CPU_SUBTYPE_POWERPC_604 = 6
|
195
|
+
|
196
|
+
# the 604e sub-type for `CPU_TYPE_POWERPC`
|
197
|
+
CPU_SUBTYPE_POWERPC_604E = 7
|
198
|
+
|
199
|
+
# the 620 sub-type for `CPU_TYPE_POWERPC`
|
200
|
+
CPU_SUBTYPE_POWERPC_620 = 8
|
201
|
+
|
106
202
|
# the 750 (G3) sub-type for `CPU_TYPE_POWERPC`
|
107
203
|
CPU_SUBTYPE_POWERPC_750 = 9
|
108
204
|
|
@@ -118,10 +214,19 @@ module MachO
|
|
118
214
|
# any CPU sub-type for CPU type `CPU_TYPE_POWERPC64`
|
119
215
|
CPU_SUBTYPE_POWERPC64_ALL = CPU_SUBTYPE_POWERPC_ALL
|
120
216
|
|
121
|
-
# association of CPU types/subtype pairs to symbol representations
|
217
|
+
# association of CPU types/subtype pairs to symbol representations in
|
218
|
+
# (very) roughly descending order of commonness
|
219
|
+
# @see https://opensource.apple.com/source/cctools/cctools-877.8/libstuff/arch.c
|
122
220
|
CPU_SUBTYPES = {
|
123
221
|
CPU_TYPE_I386 => {
|
124
|
-
|
222
|
+
CPU_SUBTYPE_I386 => :i386,
|
223
|
+
CPU_SUBTYPE_486 => :i486,
|
224
|
+
CPU_SUBTYPE_486SX => :i486SX,
|
225
|
+
CPU_SUBTYPE_586 => :i586, # also "pentium" in arch(3)
|
226
|
+
CPU_SUBTYPE_PENTPRO => :i686, # also "pentpro" in arch(3)
|
227
|
+
CPU_SUBTYPE_PENTII_M3 => :pentIIm3,
|
228
|
+
CPU_SUBTYPE_PENTII_M5 => :pentIIm5,
|
229
|
+
CPU_SUBTYPE_PENTIUM_4 => :pentium4,
|
125
230
|
}.freeze,
|
126
231
|
CPU_TYPE_X86_64 => {
|
127
232
|
CPU_SUBTYPE_X86_64_ALL => :x86_64,
|
@@ -129,17 +234,31 @@ module MachO
|
|
129
234
|
}.freeze,
|
130
235
|
CPU_TYPE_ARM => {
|
131
236
|
CPU_SUBTYPE_ARM_ALL => :arm,
|
237
|
+
CPU_SUBTYPE_ARM_V4T => :armv4t,
|
238
|
+
CPU_SUBTYPE_ARM_V6 => :armv6,
|
239
|
+
CPU_SUBTYPE_ARM_V5TEJ => :armv5,
|
240
|
+
CPU_SUBTYPE_ARM_XSCALE => :xscale,
|
132
241
|
CPU_SUBTYPE_ARM_V7 => :armv7,
|
242
|
+
CPU_SUBTYPE_ARM_V7F => :armv7f,
|
133
243
|
CPU_SUBTYPE_ARM_V7S => :armv7s,
|
134
244
|
CPU_SUBTYPE_ARM_V7K => :armv7k,
|
245
|
+
CPU_SUBTYPE_ARM_V6M => :armv6m,
|
246
|
+
CPU_SUBTYPE_ARM_V7M => :armv7m,
|
247
|
+
CPU_SUBTYPE_ARM_V7EM => :armv7em,
|
135
248
|
CPU_SUBTYPE_ARM_V8 => :armv8,
|
136
249
|
}.freeze,
|
137
250
|
CPU_TYPE_ARM64 => {
|
138
251
|
CPU_SUBTYPE_ARM64_ALL => :arm64,
|
139
|
-
CPU_SUBTYPE_ARM64_V8 => :
|
252
|
+
CPU_SUBTYPE_ARM64_V8 => :arm64v8,
|
140
253
|
}.freeze,
|
141
254
|
CPU_TYPE_POWERPC => {
|
142
255
|
CPU_SUBTYPE_POWERPC_ALL => :ppc,
|
256
|
+
CPU_SUBTYPE_POWERPC_601 => :ppc601,
|
257
|
+
CPU_SUBTYPE_POWERPC_603 => :ppc603,
|
258
|
+
CPU_SUBTYPE_POWERPC_603E => :ppc603e,
|
259
|
+
CPU_SUBTYPE_POWERPC_603EV => :ppc603ev,
|
260
|
+
CPU_SUBTYPE_POWERPC_604 => :ppc604,
|
261
|
+
CPU_SUBTYPE_POWERPC_604E => :ppc604e,
|
143
262
|
CPU_SUBTYPE_POWERPC_750 => :ppc750,
|
144
263
|
CPU_SUBTYPE_POWERPC_7400 => :ppc7400,
|
145
264
|
CPU_SUBTYPE_POWERPC_7450 => :ppc7450,
|
@@ -147,7 +266,17 @@ module MachO
|
|
147
266
|
}.freeze,
|
148
267
|
CPU_TYPE_POWERPC64 => {
|
149
268
|
CPU_SUBTYPE_POWERPC64_ALL => :ppc64,
|
269
|
+
# apparently the only exception to the naming scheme
|
270
|
+
CPU_SUBTYPE_POWERPC_970 => :ppc970_64,
|
150
271
|
}.freeze,
|
272
|
+
CPU_TYPE_MC680X0 => {
|
273
|
+
CPU_SUBTYPE_MC680X0_ALL => :m68k,
|
274
|
+
CPU_SUBTYPE_MC68030 => :mc68030,
|
275
|
+
CPU_SUBTYPE_MC68040 => :mc68040,
|
276
|
+
},
|
277
|
+
CPU_TYPE_MC88000 => {
|
278
|
+
CPU_SUBTYPE_MC88000_ALL => :m88k,
|
279
|
+
},
|
151
280
|
}.freeze
|
152
281
|
|
153
282
|
# relocatable object file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-macho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- William Woodruff
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A library for viewing and manipulating Mach-O files in Ruby.
|
14
14
|
email: william@tuffbizz.com
|