macho 0.4.1

Mach-O parser in rust
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
     Running `target/debug/examples/reader dwarfdump`
MachHeader {
    header: Header {
        magic: 4277009103,
        cputype: 16777223,
        cpusubtype: 3,
        filetype: 10,
        ncmds: 7,
        sizeofcmds: 2968,
        flags: 0,
        reserved: 0
    },
    segments: [
        SegmentCommand {
            cmd: 25,
            cmdsize: 72,
            segname: "__PAGEZERO",
            vmaddr: 0,
            vmsize: 4294967296,
            fileoff: 0,
            filesize: 0,
            maxprot: 0,
            initprot: 0,
            nsects: 0,
            flags: 0,
            sections: []
        },
        SegmentCommand {
            cmd: 25,
            cmdsize: 712,
            segname: "__TEXT",
            vmaddr: 4294967296,
            vmsize: 647168,
            fileoff: 0,
            filesize: 0,
            maxprot: 7,
            initprot: 5,
            nsects: 8,
            flags: 0,
            sections: [
                Section {
                    sectname: "__text",
                    segname: "__TEXT",
                    addr: 4294973216,
                    size: 531696,
                    offset: 0,
                    align: 4,
                    reloff: 0,
                    nreloc: 0,
                    flags: 2147484672,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__stubs",
                    segname: "__TEXT",
                    addr: 4295504912,
                    size: 378,
                    offset: 0,
                    align: 1,
                    reloff: 0,
                    nreloc: 0,
                    flags: 2147484680,
                    reserved1: 0,
                    reserved2: 6,
                    reserved3: 0
                },
                Section {
                    sectname: "__stub_helper",
                    segname: "__TEXT",
                    addr: 4295505292,
                    size: 646,
                    offset: 0,
                    align: 2,
                    reloff: 0,
                    nreloc: 0,
                    flags: 2147484672,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__gcc_except_tab__TEXT",
                    segname: "__TEXT",
                    addr: 4295505940,
                    size: 10916,
                    offset: 0,
                    align: 2,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__const",
                    segname: "__TEXT",
                    addr: 4295516864,
                    size: 25512,
                    offset: 0,
                    align: 6,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__cstring",
                    segname: "__TEXT",
                    addr: 4295542376,
                    size: 6595,
                    offset: 0,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 2,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__unwind_info",
                    segname: "__TEXT",
                    addr: 4295548972,
                    size: 6392,
                    offset: 0,
                    align: 2,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__eh_frame",
                    segname: "__TEXT",
                    addr: 4295555368,
                    size: 59040,
                    offset: 0,
                    align: 3,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                }
            ]
        },
        SegmentCommand {
            cmd: 25,
            cmdsize: 872,
            segname: "__DATA",
            vmaddr: 4295614464,
            vmsize: 28672,
            fileoff: 0,
            filesize: 0,
            maxprot: 7,
            initprot: 3,
            nsects: 10,
            flags: 0,
            sections: [
                Section {
                    sectname: "__nl_symbol_ptr",
                    segname: "__DATA",
                    addr: 4295614464,
                    size: 16,
                    offset: 0,
                    align: 3,
                    reloff: 0,
                    nreloc: 0,
                    flags: 6,
                    reserved1: 63,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__got",
                    segname: "__DATA",
                    addr: 4295614480,
                    size: 40,
                    offset: 0,
                    align: 3,
                    reloff: 0,
                    nreloc: 0,
                    flags: 6,
                    reserved1: 65,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__la_symbol_ptr",
                    segname: "__DATA",
                    addr: 4295614520,
                    size: 504,
                    offset: 0,
                    align: 3,
                    reloff: 0,
                    nreloc: 0,
                    flags: 7,
                    reserved1: 70,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__mod_init_func",
                    segname: "__DATA",
                    addr: 4295615024,
                    size: 8,
                    offset: 0,
                    align: 3,
                    reloff: 0,
                    nreloc: 0,
                    flags: 9,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__const",
                    segname: "__DATA",
                    addr: 4295615040,
                    size: 23352,
                    offset: 0,
                    align: 4,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__thread_vars",
                    segname: "__DATA",
                    addr: 4295638392,
                    size: 120,
                    offset: 0,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 19,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__data",
                    segname: "__DATA",
                    addr: 4295638512,
                    size: 776,
                    offset: 0,
                    align: 4,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__thread_data",
                    segname: "__DATA",
                    addr: 4295639288,
                    size: 168,
                    offset: 0,
                    align: 3,
                    reloff: 0,
                    nreloc: 0,
                    flags: 17,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__common",
                    segname: "__DATA",
                    addr: 4295639456,
                    size: 2608,
                    offset: 0,
                    align: 4,
                    reloff: 0,
                    nreloc: 0,
                    flags: 1,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__bss",
                    segname: "__DATA",
                    addr: 4295642064,
                    size: 288,
                    offset: 0,
                    align: 4,
                    reloff: 0,
                    nreloc: 0,
                    flags: 1,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                }
            ]
        },
        SegmentCommand {
            cmd: 25,
            cmdsize: 72,
            segname: "__LINKEDIT",
            vmaddr: 4295643136,
            vmsize: 528384,
            fileoff: 4096,
            filesize: 212888,
            maxprot: 7,
            initprot: 1,
            nsects: 0,
            flags: 0,
            sections: []
        },
        SegmentCommand {
            cmd: 25,
            cmdsize: 1192,
            segname: "__DWARF",
            vmaddr: 4296171520,
            vmsize: 1441792,
            fileoff: 217088,
            filesize: 1438776,
            maxprot: 7,
            initprot: 3,
            nsects: 14,
            flags: 0,
            sections: [
                Section {
                    sectname: "__debug_abbrev",
                    segname: "__DWARF",
                    addr: 4296171520,
                    size: 1767,
                    offset: 217088,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_aranges",
                    segname: "__DWARF",
                    addr: 4296173287,
                    size: 21424,
                    offset: 218855,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_info",
                    segname: "__DWARF",
                    addr: 4296194711,
                    size: 406097,
                    offset: 240279,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_inlined",
                    segname: "__DWARF",
                    addr: 4296600808,
                    size: 25728,
                    offset: 646376,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_line",
                    segname: "__DWARF",
                    addr: 4296626536,
                    size: 119503,
                    offset: 672104,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_loc",
                    segname: "__DWARF",
                    addr: 4296746039,
                    size: 283588,
                    offset: 791607,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_pubnames__DWARF",
                    segname: "__DWARF",
                    addr: 4297029627,
                    size: 104455,
                    offset: 1075195,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_pubtypes__DWARF",
                    segname: "__DWARF",
                    addr: 4297134082,
                    size: 68446,
                    offset: 1179650,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_ranges",
                    segname: "__DWARF",
                    addr: 4297202528,
                    size: 197600,
                    offset: 1248096,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__debug_str",
                    segname: "__DWARF",
                    addr: 4297400128,
                    size: 102679,
                    offset: 1445696,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__apple_names",
                    segname: "__DWARF",
                    addr: 4297502807,
                    size: 56456,
                    offset: 1548375,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__apple_types",
                    segname: "__DWARF",
                    addr: 4297559263,
                    size: 47265,
                    offset: 1604831,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__apple_namespac__DWARF",
                    segname: "__DWARF",
                    addr: 4297606528,
                    size: 3732,
                    offset: 1652096,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                },
                Section {
                    sectname: "__apple_objc",
                    segname: "__DWARF",
                    addr: 4297610260,
                    size: 36,
                    offset: 1655828,
                    align: 0,
                    reloff: 0,
                    nreloc: 0,
                    flags: 0,
                    reserved1: 0,
                    reserved2: 0,
                    reserved3: 0
                }
            ]
        }
    ],
    commands: [
        LoadCommand {
            cmd: 27,
            cmdsize: 24,
            data: [
                27,
                26,
                27,
                162,
                201,
                77,
                61,
                201,
                181,
                92,
                151,
                162,
                150,
                255,
                10,
                53
            ]
        },
        LoadCommand {
            cmd: 2,
            cmdsize: 24,
            data: [
                0,
                16,
                0,
                0,
                138,
                13,
                0,
                0,
                160,
                232,
                0,
                0,
                248,
                102,
                2,
                0
            ]
        }
    ]
}