public void Read(PEFile pFile)
 {
     Offset = pFile.ReadUInt32();
     Size = pFile.ReadUInt32();
     Name = pFile.ReadString();
     uint headerSize = (uint)(sizeof(uint) * 2 + (Name.Length + 1));
     if ((headerSize & 0x03) != 0) pFile.Cursor += 4 - (headerSize & 0x03);
 }
示例#2
0
 public void Read(PEFile pFile)
 {
     Signature = pFile.ReadUInt32();
     Machine = pFile.ReadUInt16();
     NumberOfSections = pFile.ReadUInt16();
     Timestamp = pFile.ReadUInt32();
     PointerToSymbolTable = pFile.ReadUInt32();
     NumberOfSymbols = pFile.ReadUInt32();
     SizeOfOptionalHeader = pFile.ReadUInt16();
     Characteristics = pFile.ReadUInt16();
 }
示例#3
0
 public void Read(PEFile pFile)
 {
     Signature            = pFile.ReadUInt32();
     Machine              = pFile.ReadUInt16();
     NumberOfSections     = pFile.ReadUInt16();
     Timestamp            = pFile.ReadUInt32();
     PointerToSymbolTable = pFile.ReadUInt32();
     NumberOfSymbols      = pFile.ReadUInt32();
     SizeOfOptionalHeader = pFile.ReadUInt16();
     Characteristics      = pFile.ReadUInt16();
 }
示例#4
0
 public void Read(PEFile pFile)
 {
     Signature             = pFile.ReadUInt16();
     LastPageByteCount     = pFile.ReadUInt16();
     PageCount             = pFile.ReadUInt16();
     RelocationCount       = pFile.ReadUInt16();
     HeaderParagraphCount  = pFile.ReadUInt16();
     MinimumParagraphCount = pFile.ReadUInt16();
     MaximumParagraphCount = pFile.ReadUInt16();
     RegisterSS            = pFile.ReadUInt16();
     RegisterSP            = pFile.ReadUInt16();
     Checksum         = pFile.ReadUInt16();
     RegisterIP       = pFile.ReadUInt16();
     RegisterCS       = pFile.ReadUInt16();
     RelocationOffset = pFile.ReadUInt16();
     Overlay          = pFile.ReadUInt16();
     for (int index = 0; index < ReservedA.Length; ++index)
     {
         ReservedA[index] = pFile.ReadUInt16();
     }
     OEMIdentifier  = pFile.ReadUInt16();
     OEMInformation = pFile.ReadUInt16();
     for (int index = 0; index < ReservedB.Length; ++index)
     {
         ReservedB[index] = pFile.ReadUInt16();
     }
     NextHeaderOffset = pFile.ReadUInt32();
 }
示例#5
0
 public void Read(PEFile pFile)
 {
     SizeOfHeader = pFile.ReadUInt32();
     MajorRuntimeVersion = pFile.ReadUInt16();
     MinorRuntimeVersion = pFile.ReadUInt16();
     Metadata.Read(pFile);
     Flags = pFile.ReadUInt32();
     EntryPointToken = pFile.ReadUInt32();
     EntryPointRVA = pFile.ReadUInt16();
     Resources.Read(pFile);
     StrongNameSignature.Read(pFile);
     CodeManagerTable.Read(pFile);
     VTableFixups.Read(pFile);
     ExportAddressTableJumps.Read(pFile);
     ManagedNativeHeader.Read(pFile);
 }
示例#6
0
        public bool Read(PEFile pFile)
        {
            Signature = pFile.ReadUInt32();
            MajorVersion = pFile.ReadUInt16();
            MinorVersion = pFile.ReadUInt16();
            Reserved = pFile.ReadUInt32();
            VersionLength = pFile.ReadUInt32();
            Version = pFile.ReadBytes(VersionLength);
            Flags = pFile.ReadUInt16();
            StreamCount = pFile.ReadUInt16();

            Streams = new CLIMetadataStreamHeader[StreamCount];
            for (int index = 0; index < Streams.Length; ++index)
            {
                Streams[index] = new CLIMetadataStreamHeader();
                Streams[index].Read(pFile);
            }
            return true;
        }
 public void Read(PEFile pFile)
 {
     ReservedA = pFile.ReadUInt32();
     MajorVersion = pFile.ReadByte();
     MinorVersion = pFile.ReadByte();
     HeapOffsetSizes = pFile.ReadByte();
     ReservedB = pFile.ReadByte();
     PresentTables = pFile.ReadUInt64();
     SortedTables = pFile.ReadUInt64();
 }
示例#8
0
 public void Read(PEFile pFile)
 {
     Name = pFile.ReadString(8);
     PhysicalAddress = VirtualSize = pFile.ReadUInt32();
     VirtualAddress = pFile.ReadUInt32();
     SizeOfRawData = pFile.ReadUInt32();
     PointerToRawData = pFile.ReadUInt32();
     PointerToRelocations = pFile.ReadUInt32();
     PointerToLineNumbers = pFile.ReadUInt32();
     NumberOfRelocations = pFile.ReadUInt16();
     NumberOfLineNumbers = pFile.ReadUInt16();
     Characteristics = pFile.ReadUInt32();
 }
示例#9
0
 public void Read(PEFile pFile)
 {
     Name                 = pFile.ReadString(8);
     PhysicalAddress      = VirtualSize = pFile.ReadUInt32();
     VirtualAddress       = pFile.ReadUInt32();
     SizeOfRawData        = pFile.ReadUInt32();
     PointerToRawData     = pFile.ReadUInt32();
     PointerToRelocations = pFile.ReadUInt32();
     PointerToLineNumbers = pFile.ReadUInt32();
     NumberOfRelocations  = pFile.ReadUInt16();
     NumberOfLineNumbers  = pFile.ReadUInt16();
     Characteristics      = pFile.ReadUInt32();
 }
示例#10
0
 public void Read(PEFile pFile)
 {
     Signature = pFile.ReadUInt16();
     LastPageByteCount = pFile.ReadUInt16();
     PageCount = pFile.ReadUInt16();
     RelocationCount = pFile.ReadUInt16();
     HeaderParagraphCount = pFile.ReadUInt16();
     MinimumParagraphCount = pFile.ReadUInt16();
     MaximumParagraphCount = pFile.ReadUInt16();
     RegisterSS = pFile.ReadUInt16();
     RegisterSP = pFile.ReadUInt16();
     Checksum = pFile.ReadUInt16();
     RegisterIP = pFile.ReadUInt16();
     RegisterCS = pFile.ReadUInt16();
     RelocationOffset = pFile.ReadUInt16();
     Overlay = pFile.ReadUInt16();
     for (int index = 0; index < ReservedA.Length; ++index) ReservedA[index] = pFile.ReadUInt16();
     OEMIdentifier = pFile.ReadUInt16();
     OEMInformation = pFile.ReadUInt16();
     for (int index = 0; index < ReservedB.Length; ++index) ReservedB[index] = pFile.ReadUInt16();
     NextHeaderOffset = pFile.ReadUInt32();
 }
示例#11
0
 public bool Read(PEFile pFile)
 {
     Magic = pFile.ReadUInt16();
     MajorLinkerVersion      = pFile.ReadByte();
     MinorLinkerVersion      = pFile.ReadByte();
     SizeOfCode              = pFile.ReadUInt32();
     SizeOfInitializedData   = pFile.ReadUInt32();
     SizeOfUninitializedData = pFile.ReadUInt32();
     AddressOfEntryPoint     = pFile.ReadUInt32();
     BaseOfCode              = pFile.ReadUInt32();
     BaseOfData              = pFile.ReadUInt32();
     ImageBase                   = pFile.ReadUInt32();
     SectionAlignment            = pFile.ReadUInt32();
     FileAlignment               = pFile.ReadUInt32();
     MajorOperatingSystemVersion = pFile.ReadUInt16();
     MinorOperatingSystemVersion = pFile.ReadUInt16();
     MajorImageVersion           = pFile.ReadUInt16();
     MinorImageVersion           = pFile.ReadUInt16();
     MajorSubsystemVersion       = pFile.ReadUInt16();
     MinorSubsystemVersion       = pFile.ReadUInt16();
     Reserved            = pFile.ReadUInt32();
     SizeOfImage         = pFile.ReadUInt32();
     SizeOfHeaders       = pFile.ReadUInt32();
     Checksum            = pFile.ReadUInt32();
     Subsystem           = pFile.ReadUInt16();
     DllCharacteristics  = pFile.ReadUInt16();
     SizeOfStackReserve  = pFile.ReadUInt32();
     SizeOfStackCommit   = pFile.ReadUInt32();
     SizeOfHeapReserve   = pFile.ReadUInt32();
     SizeOfHeapCommit    = pFile.ReadUInt32();
     LoaderFlags         = pFile.ReadUInt32();
     NumberOfRVAAndSizes = pFile.ReadUInt32();
     for (int index = 0; index < DataDirectories.Length; ++index)
     {
         DataDirectories[index] = new DataDirectory();
         DataDirectories[index].Read(pFile);
     }
     return(true);
 }
示例#12
0
 public void Read(PEFile pFile)
 {
     VirtualAddress = pFile.ReadUInt32();
     Size = pFile.ReadUInt32();
 }
示例#13
0
 public bool Read(PEFile pFile)
 {
     Magic = pFile.ReadUInt16();
     MajorLinkerVersion = pFile.ReadByte();
     MinorLinkerVersion = pFile.ReadByte();
     SizeOfCode = pFile.ReadUInt32();
     SizeOfInitializedData = pFile.ReadUInt32();
     SizeOfUninitializedData = pFile.ReadUInt32();
     AddressOfEntryPoint = pFile.ReadUInt32();
     BaseOfCode = pFile.ReadUInt32();
     BaseOfData = pFile.ReadUInt32();
     ImageBase = pFile.ReadUInt32();
     SectionAlignment = pFile.ReadUInt32();
     FileAlignment = pFile.ReadUInt32();
     MajorOperatingSystemVersion = pFile.ReadUInt16();
     MinorOperatingSystemVersion = pFile.ReadUInt16();
     MajorImageVersion = pFile.ReadUInt16();
     MinorImageVersion = pFile.ReadUInt16();
     MajorSubsystemVersion = pFile.ReadUInt16();
     MinorSubsystemVersion = pFile.ReadUInt16();
     Reserved = pFile.ReadUInt32();
     SizeOfImage = pFile.ReadUInt32();
     SizeOfHeaders = pFile.ReadUInt32();
     Checksum = pFile.ReadUInt32();
     Subsystem = pFile.ReadUInt16();
     DllCharacteristics = pFile.ReadUInt16();
     SizeOfStackReserve = pFile.ReadUInt32();
     SizeOfStackCommit = pFile.ReadUInt32();
     SizeOfHeapReserve = pFile.ReadUInt32();
     SizeOfHeapCommit = pFile.ReadUInt32();
     LoaderFlags = pFile.ReadUInt32();
     NumberOfRVAAndSizes = pFile.ReadUInt32();
     for (int index = 0; index < DataDirectories.Length; ++index)
     {
         DataDirectories[index] = new DataDirectory();
         DataDirectories[index].Read(pFile);
     }
     return true;
 }
示例#14
0
 public void Read(PEFile pFile)
 {
     VirtualAddress = pFile.ReadUInt32();
     Size           = pFile.ReadUInt32();
 }