public void ProcessesTestTarget() { var target = GetTarget("String"); var obfuscator = new SuppressIldasm(); Assert.IsTrue(obfuscator.Process(target)); target.Write("string-suppressildasm.exe"); }
public void SuppressesIldasm() { string toolPath = "Tools//ildasm//"; const string tempPath = "SuppressesIldasm.exe"; // if the resource file is missing, ildasm will fail silently if (!File.Exists(toolPath + "ildasm.exe") || !File.Exists(toolPath + "ILDasmrc.dll")) Assert.Fail("Test requires ildasm tool"); toolPath += "ildasm.exe"; Process toolProcess = null; try { // process the test target first and write the resulting assembly var target = GetTarget("String"); var obfuscator = new SuppressIldasm(); Assert.IsTrue(obfuscator.Process(target)); target.Write(tempPath); // start the tool toolProcess = new Process { StartInfo = new ProcessStartInfo(toolPath) { Arguments = "/TEXT " + tempPath, UseShellExecute = false, CreateNoWindow = true, RedirectStandardError = true } }; toolProcess.Start(); if (!toolProcess.WaitForExit(10000)) Assert.Fail("Tool process didn't exit in 10 seconds"); // test if ildasm correctly refused to process the assembly var error = toolProcess.StandardError.ReadToEnd(); Assert.IsNotNullOrEmpty(error); Assert.AreEqual("Protected module -- cannot disassemble\r\n", error); } finally { if (File.Exists(tempPath)) File.Delete(tempPath); if (toolProcess != null && !toolProcess.HasExited) toolProcess.Kill(); } }