Ejemplo n.º 1
0
 private static IEnumerable <PEFSectionHeader> ReadSections(PEFContainerHeader containerHeader, EndianByteImageReader rdr)
 {
     for (int i = 0; i < containerHeader.sectionCount; i++)
     {
         yield return(rdr.ReadStruct <PEFSectionHeader>());
     }
 }
Ejemplo n.º 2
0
        private PEFContainerHeader(EndianByteImageReader rdr)
        {
            this = rdr.ReadStruct <PEFContainerHeader>();
            if (tag1 != TAG1_MAGIC)
            {
                throw new BadImageFormatException("Unexpected tag1 magic");
            }

            if (tag2 != TAG2_MAGIC)
            {
                throw new BadImageFormatException("Unexpected tag2 magic");
            }

            switch (architecture)
            {
            case OSType.kPowerPCCFragArch:
            case OSType.kMotorola68KCFragArch:
            case OSType.kAnyCFragArch:
                break;

            default:
                throw new BadImageFormatException("Unexpected/unsupported architecture");
            }

            if (formatVersion != 1)
            {
                throw new BadImageFormatException($"Unsupported format version {formatVersion}");
            }
        }
Ejemplo n.º 3
0
        private PEFLoaderRelocationHeader(EndianByteImageReader rdr)
        {
            this = rdr.ReadStruct <PEFLoaderRelocationHeader>();

            if (reservedA != 0)
            {
                throw new BadImageFormatException("Invalid PEFLoaderRelocationHeader");
            }
        }
Ejemplo n.º 4
0
        private PEFImportedLibrary(EndianByteImageReader rdr)
        {
            this = rdr.ReadStruct <PEFImportedLibrary>();

            if (reservedA != 0 || reservedB != 0)
            {
                throw new BadImageFormatException("Invalid PEFImportedLibrary");
            }
        }
Ejemplo n.º 5
0
 private PEFSectionHeader(EndianByteImageReader rdr)
 {
     this = rdr.ReadStruct <PEFSectionHeader>();
 }
Ejemplo n.º 6
0
 private PEFExportedSymbol(EndianByteImageReader rdr)
 {
     this = rdr.ReadStruct <PEFExportedSymbol>();
 }
Ejemplo n.º 7
0
 private PEFLoaderInfoHeader(EndianByteImageReader rdr)
 {
     this = rdr.ReadStruct <PEFLoaderInfoHeader>();
 }