internal static bool IsMachOLibrary(FatEntry fat_entry, BinaryReader reader, bool throw_if_error = false) { var pos = reader.BaseStream.Position; var magic = reader.ReadUInt32(); var rv = false; switch (magic) { case MachO.MH_CIGAM: case MachO.MH_MAGIC: case MachO.MH_CIGAM_64: case MachO.MH_MAGIC_64: rv = true; break; default: rv = false; break; } reader.BaseStream.Position = pos; if (throw_if_error && !rv) { throw ErrorHelper.CreateError(1600, Errors.MX1600, magic.ToString("x"), fat_entry.Parent.Filename); } return(rv); }
internal void Read(BinaryReader reader) { magic = reader.ReadUInt32(); _nfat_arch = reader.ReadUInt32(); entries = new List <FatEntry> ((int)nfat_arch); for (int i = 0; i < (int)nfat_arch; i++) { var entry = new FatEntry(); entry.Read(this, reader); entries.Add(entry); } foreach (var entry in entries) { entry.ReadEntry(reader); } }
public MachOFile(FatEntry parent) { fat_parent = parent; }
internal static bool IsMachOLibrary(FatEntry fat_entry, BinaryReader reader, bool throw_if_error = false) { var pos = reader.BaseStream.Position; var magic = reader.ReadUInt32 (); var rv = false; switch (magic) { case MachO.MH_CIGAM: case MachO.MH_MAGIC: case MachO.MH_CIGAM_64: case MachO.MH_MAGIC_64: rv = true; break; default: rv = false; break; } reader.BaseStream.Position = pos; if (throw_if_error && !rv) throw ErrorHelper.CreateError (1600, "Not a Mach-O dynamic library (unknown header '0x{0}'): {1}.", magic.ToString ("x"), fat_entry.Parent.Filename); return rv; }
internal void Read(BinaryReader reader) { magic = reader.ReadUInt32 (); _nfat_arch = reader.ReadUInt32 (); entries = new List<FatEntry> ((int) nfat_arch); for (int i = 0; i < (int) nfat_arch; i++) { var entry = new FatEntry (); entry.Read (this, reader); entries.Add (entry); } foreach (var entry in entries) entry.ReadEntry (reader); }