+ public DllCharacteristics DllCharacteristics { get; }
+ public int FileAlignment { get; }
+ public ulong ImageBase { get; }
+ public Characteristics ImageCharacteristics { get; }
+ public Machine Machine { get; }
+ public ushort MajorImageVersion { get; }
+ public byte MajorLinkerVersion { get; }
+ public ushort MajorOperatingSystemVersion { get; }
+ public ushort MajorSubsystemVersion { get; }
+ public ushort MinorImageVersion { get; }
+ public byte MinorLinkerVersion { get; }
+ public ushort MinorOperatingSystemVersion { get; }
+ public ushort MinorSubsystemVersion { get; }
+ public int SectionAlignment { get; }
+ public ulong SizeOfHeapCommit { get; }
+ public ulong SizeOfHeapReserve { get; }
+ public ulong SizeOfStackCommit { get; }
+ public ulong SizeOfStackReserve { get; }
+ public Subsystem Subsystem { get; }
+ public static PEHeaderBuilder CreateExecutableHeader();
+ public static PEHeaderBuilder CreateLibraryHeader();
+ }
public sealed class PEHeaders {
+ public PEHeaders(Stream peStream, int size, bool isLoadedImage);
}
public struct PEMemoryBlock {
+ public ImmutableArray<byte> GetContent(int start, int length);
+ public BlobReader GetReader();
+ public BlobReader GetReader(int start, int length);
}
public sealed class PEReader : IDisposable {
+ public unsafe PEReader(byte* peImage, int size, bool isLoadedImage);
+ public bool IsLoadedImage { get; }
+ public PEMemoryBlock GetSectionData(string sectionName);
+ public MetadataReaderProvider ReadEmbeddedPortablePdbDebugDirectoryData(DebugDirectoryEntry entry);
+ public bool TryOpenAssociatedPortablePdb(string peImagePath, Func<string,Stream> pdbFileStreamProvider, out MetadataReaderProvider pdbReaderProvider, out string pdbPath);