Ejemplo n.º 1
0
        public void AppendEntry(MachOFatEntry entry)
        {
            if (!FatEntries.Any(v => v.cputype == entry.cputype))
            {
                FatEntries.Add(new MachOFatEntry()
                {
                    cputype    = entry.cputype,
                    cpusubtype = entry.cpusubtype,
                    offset     = 0,
                    size       = entry.size,
                    align      = entry.align,

                    srcentry  = entry,
                    archentry = entry.archentry
                });
            }
        }
Ejemplo n.º 2
0
        private void ReadFatFile(BinaryReaderBigEndian reader)
        {
            var numArchs = reader.ReadUInt32();

            Console.WriteLine($"Found Mach-O Universal with {numArchs} items");

            for (var i = 0; i < numArchs; i++)
            {
                var entry = new MachOFatEntry
                {
                    cputype    = (MachOCpuType)reader.ReadUInt32(),
                    cpusubtype = (MachOCpuSubType)reader.ReadUInt32(),
                    offset     = reader.ReadUInt32(),
                    size       = reader.ReadUInt32(),
                    align      = reader.ReadUInt32()
                };

                Console.WriteLine($"  - {entry.cputype} at offset {entry.offset} size {entry.size}");

                _fatEntries.Add(entry);
            }
        }