public void Read_Unmanaged_Dll() { var data = CorFlagsReader.ReadAssemblyMetadata(new FileQuery("%WINDIR%\\System32\\kernel32.dll").Files.Single()); Assert.IsNotNull(data); Assert.AreEqual(0, data.MajorRuntimeVersion); Assert.AreEqual(ProcessorArchitecture.X86, data.ProcessorArchitecture); }
public void ReadMscorlibAssembly() { string mscorlib = new FileQuery("GAC:\\mscorlib.dll").Files.Single(); CorFlagsReader data = null; using (var fStream = new FileStream(mscorlib, FileMode.Open, FileAccess.Read)) { data = CorFlagsReader.ReadAssemblyMetadata(fStream); } Assert.IsNotNull(data); Assert.IsTrue(data.IsPureIL); Assert.IsTrue(data.IsSigned); Assert.AreEqual(ProcessorArchitecture.X86, data.ProcessorArchitecture); Assert.IsTrue(data.MajorRuntimeVersion >= 2); }
void LoadFiles(string fileName) { using (Tracer t = new Tracer(Level.L2, myType, "LoadFiles")) { using (FileStream fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { FileInfo info = new FileInfo(fileName); if (info.Length == 0) { t.Warning("Did get 0 byte file: {0}", fileName); return; } CorFlagsReader data = CorFlagsReader.ReadAssemblyMetadata(fStream); string partialPath = Path.GetFileName(fileName); if (data == null) { t.Info("File does not seem to be a valid PE File: {0}", data); Writer.PrintRow("{0}; {1}; {2}", null, partialPath, "Unknown", info.Length); return; } if (data.MajorRuntimeVersion > 0) { Writer.PrintRow("{0}; {1}; {2}; {3}; {4}", null, partialPath, "Managed", info.Length, data.ProcessorArchitecture, data.IsPureIL ? "IL Only" : "Managed C++", data.IsSigned ? "Signed" : "Unsigned"); } else { Writer.PrintRow("{0}; {1}; {2}; {3}", null, partialPath, "Unmanaged", info.Length, data.ProcessorArchitecture); } }; } }
public void Read_Non_PE_File() { var data = CorFlagsReader.ReadAssemblyMetadata(new FileQuery(@"%WINDIR%\Microsoft.NET\Framework\v2.0.50727\aspnet_perf.ini").Files.Single()); Assert.IsNull(data); }