private static ModuleDefinition GetClrBasicsFor(string file, PEFile pe) { var stream = new MemoryStream(File.ReadAllBytes(file)); var reader = new BinaryStreamReader(stream, new byte[1024]); pe.ReadFrom(reader); var clrDirectory = pe.OptionalHeader.DataDirectories[(int)DataDirectoryKind.Clr]; var rvaStream = new RvaStream( stream, pe.SectionHeaders.Select( s => new RvaStream.Range { PhysicalAddress = s.PointerToRawData, Size = s.VirtualSize, VirtualAddress = s.VirtualAddress }) .ToArray()); rvaStream.Position = clrDirectory.VirtualAddress; var sectionReader = new BinaryStreamReader(rvaStream, new byte[32]); var clrmod = new ModuleDefinition(); ClrModuleReader.Read(sectionReader, clrmod); return(clrmod); }