Exemplo n.º 1
0
 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();
     }
 }