public override void Read(PeReader rdr) { rdr.SetPosition(hdr.WindowsSpecificFieldsOffset); if (hdr.Type == ExecutableType.PE32Plus) { imgBas = rdr.ReadUInt64(); sectA = rdr.ReadUInt32(); fA = rdr.ReadUInt32(); maOs = rdr.ReadUInt16(); miOs = rdr.ReadUInt16(); maImg = rdr.ReadUInt16(); miImg = rdr.ReadUInt16(); maSs = rdr.ReadUInt16(); miSs = rdr.ReadUInt16(); winVer = rdr.ReadUInt32(); sImg = rdr.ReadUInt32(); sHdr = rdr.ReadUInt32(); cs = rdr.ReadUInt32(); Ss = (WindowsSubsystem)rdr.ReadUInt16(); dll = (DLLCharacteristics)rdr.ReadUInt16(); sSr = rdr.ReadUInt64(); sSc = rdr.ReadUInt64(); sHr = rdr.ReadUInt64(); sHc = rdr.ReadUInt64(); ldrF = rdr.ReadUInt32(); noDd = rdr.ReadUInt32(); } else { imgBas = rdr.ReadUInt32(); sectA = rdr.ReadUInt32(); fA = rdr.ReadUInt32(); maOs = rdr.ReadUInt16(); miOs = rdr.ReadUInt16(); maImg = rdr.ReadUInt16(); miImg = rdr.ReadUInt16(); maSs = rdr.ReadUInt16(); miSs = rdr.ReadUInt16(); winVer = rdr.ReadUInt32(); sImg = rdr.ReadUInt32(); sHdr = rdr.ReadUInt32(); cs = rdr.ReadUInt32(); Ss = (WindowsSubsystem)rdr.ReadUInt16(); dll = (DLLCharacteristics)rdr.ReadUInt16(); sSr = rdr.ReadUInt32(); sSc = rdr.ReadUInt32(); sHr = rdr.ReadUInt32(); sHc = rdr.ReadUInt32(); ldrF = rdr.ReadUInt32(); noDd = rdr.ReadUInt32(); } }