public void WriteMap(ObfuscationMap map) { writer.WriteLine("Renamed Types:"); foreach (ObfuscatedClass classInfo in map.ClassMap.Values) { // print the ones we didn't skip first if (classInfo.Status == ObfuscationStatus.Renamed) { DumpClass(classInfo); } } writer.WriteLine(); writer.WriteLine("Skipped Types:"); foreach (ObfuscatedClass classInfo in map.ClassMap.Values) { // now print the stuff we skipped if (classInfo.Status == ObfuscationStatus.Skipped) { DumpClass(classInfo); } } writer.WriteLine(); writer.WriteLine("Renamed Resources:"); writer.WriteLine(); foreach (ObfuscatedThing info in map.Resources) { if (info.Status == ObfuscationStatus.Renamed) { writer.WriteLine("{0} -> {1}", info.Name, info.StatusText); } } writer.WriteLine(); writer.WriteLine("Skipped Resources:"); writer.WriteLine(); foreach (ObfuscatedThing info in map.Resources) { if (info.Status == ObfuscationStatus.Skipped) { writer.WriteLine("{0} ({1})", info.Name, info.StatusText); } } writer.WriteLine(); writer.WriteLine("Hided Strings:"); writer.WriteLine(); foreach (var kv in map.HiddenStringLookup) { writer.WriteLine($"=>{kv.Key}:\n{kv.Value}\n=>END OF {kv.Key}\n"); } }
public void WriteMap(ObfuscationMap map) { _map = map; WriteLine(0, "{"); #region Classes WriteLine(1, "\"Renamed Types\": {"); var items = map.ClassMap.Values.Where(el => el.Status == ObfuscationStatus.Renamed).ToArray(); for (var i = 0; i < items.Length; i++) { var cls = items[i]; DumpClass(2, cls, i == items.Length - 1); } WriteLine(1, "},"); WriteLine(1, "\"Skipped Types\": {"); items = map.ClassMap.Values.Where(el => el.Status == ObfuscationStatus.Skipped).ToArray(); for (var i = 0; i < items.Length; i++) { var cls = items[i]; DumpClass(2, cls, i == items.Length - 1); } WriteLine(1, "},"); #endregion #region Resources // TODO #endregion #region Strings WriteLine(1, "\"Hided Strings\": {"); var keys = map.HiddenStringLookup.Keys.ToArray(); for (var i = 0; i < keys.Length; i++) { var key = keys[i]; var val = map.HiddenStringLookup[key]; val = val .Replace("\\", "\\\\") .Replace("\"", "\\\"") .Replace("\r\n", "\\n") .Replace("\n", "\\n"); WriteLine(2, $"\"{key}\": \"{val}\"{(i == keys.Length - 1 ? "" : ",")}"); } WriteLine(1, "}"); #endregion WriteLine(0, "}"); _map = null; }
public void CheckClassHasAttribute() { Obfuscar.ObfuscationMap map = BuildAndObfuscateAssemblies(); string assmName = "AssemblyWithOverrides.dll"; AssemblyDefinition inAssmDef = AssemblyDefinition.ReadAssembly( Path.Combine(TestHelper.InputPath, assmName)); AssemblyDefinition outAssmDef = AssemblyDefinition.ReadAssembly( Path.Combine(TestHelper.OutputPath, assmName)); TypeDefinition classAType = inAssmDef.MainModule.GetType("TestClasses.ClassA"); MethodDefinition classAmethod2 = FindByName(classAType, "Method2"); MethodDefinition classAcompare = FindByName(classAType, "CompareTo"); TypeDefinition classBType = inAssmDef.MainModule.GetType("TestClasses.ClassB"); MethodDefinition classBmethod2 = FindByName(classBType, "Method2"); MethodDefinition classBcompare = FindByName(classBType, "CompareTo"); TypeDefinition classCType = inAssmDef.MainModule.GetType("TestClasses.ClassC"); MethodDefinition classCmethod1 = FindByName(classCType, "Method1"); TypeDefinition classDType = inAssmDef.MainModule.GetType("TestClasses.ClassD"); MethodDefinition classDmethod1 = FindByName(classDType, "Method1"); Obfuscar.ObfuscatedThing classAEntry = map.GetMethod(new Obfuscar.MethodKey(classAmethod2)); ObfuscatedThing classAEntry1 = map.GetMethod(new MethodKey(classAcompare)); Obfuscar.ObfuscatedThing classBEntry = map.GetMethod(new Obfuscar.MethodKey(classBmethod2)); Obfuscar.ObfuscatedThing classBEntry1 = map.GetMethod(new Obfuscar.MethodKey(classBcompare)); ObfuscatedThing classCEntry = map.GetMethod(new MethodKey(classCmethod1)); ObfuscatedThing classDEntry = map.GetMethod(new MethodKey(classDmethod1)); Assert.IsTrue( classAEntry.Status == Obfuscar.ObfuscationStatus.Renamed && classBEntry.Status == Obfuscar.ObfuscationStatus.Renamed, "Both methods should have been renamed."); Assert.IsTrue( classAEntry.StatusText == classBEntry.StatusText, "Both methods should have been renamed to the same thing."); Assert.IsTrue(classAEntry1.Status == ObfuscationStatus.Skipped); Assert.IsTrue(classBEntry1.Status == ObfuscationStatus.Skipped); Assert.IsTrue(classCEntry.Status == ObfuscationStatus.Renamed); Assert.IsTrue(classDEntry.Status == ObfuscationStatus.Renamed); }
public void WriteMap(ObfuscationMap map) { writer.WriteLine("Renamed Types:"); foreach (ObfuscatedClass classInfo in map.ClassMap.Values) { // print the ones we didn't skip first if (classInfo.Status == ObfuscationStatus.Renamed) { DumpClass(classInfo); } } writer.WriteLine(); writer.WriteLine("Skipped Types:"); foreach (ObfuscatedClass classInfo in map.ClassMap.Values) { // now print the stuff we skipped if (classInfo.Status == ObfuscationStatus.Skipped) { DumpClass(classInfo); } } writer.WriteLine(); writer.WriteLine("Renamed Resources:"); writer.WriteLine(); foreach (ObfuscatedThing info in map.Resources) { if (info.Status == ObfuscationStatus.Renamed) { writer.WriteLine("{0} -> {1}", info.Name, info.StatusText); } } writer.WriteLine(); writer.WriteLine("Skipped Resources:"); writer.WriteLine(); foreach (ObfuscatedThing info in map.Resources) { if (info.Status == ObfuscationStatus.Skipped) { writer.WriteLine("{0} ({1})", info.Name, info.StatusText); } } }
public void WriteMap( ObfuscationMap map ) { writer.WriteLine( "Renamed Types:" ); foreach ( ObfuscatedClass classInfo in map.ClassMap.Values ) { // print the ones we didn't skip first if ( classInfo.Status == ObfuscationStatus.Renamed ) DumpClass( classInfo ); } writer.WriteLine( ); writer.WriteLine( "Skipped Types:" ); foreach ( ObfuscatedClass classInfo in map.ClassMap.Values ) { // now print the stuff we skipped if ( classInfo.Status == ObfuscationStatus.Skipped ) DumpClass( classInfo ); } writer.WriteLine( ); writer.WriteLine( "Renamed Resources:" ); writer.WriteLine( ); foreach ( ObfuscatedThing info in map.Resources ) { if ( info.Status == ObfuscationStatus.Renamed ) writer.WriteLine( "{0} -> {1}", info.Name, info.StatusText ); } writer.WriteLine( ); writer.WriteLine( "Skipped Resources:" ); writer.WriteLine( ); foreach ( ObfuscatedThing info in map.Resources ) { if ( info.Status == ObfuscationStatus.Skipped ) writer.WriteLine( "{0} ({1})", info.Name, info.StatusText ); } }
public void WriteMap(ObfuscationMap map) { }
public void WriteMap( ObfuscationMap map ) { writer.WriteStartElement("mapping"); writer.WriteStartElement("renamedTypes"); foreach ( ObfuscatedClass classInfo in map.ClassMap.Values ) { // print the ones we didn't skip first if ( classInfo.Status == ObfuscationStatus.Renamed ) DumpClass( classInfo ); } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteStartElement("skippedTypes"); foreach ( ObfuscatedClass classInfo in map.ClassMap.Values ) { // now print the stuff we skipped if ( classInfo.Status == ObfuscationStatus.Skipped ) DumpClass( classInfo ); } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteStartElement("renamedResources"); foreach ( ObfuscatedThing info in map.Resources ) { if (info.Status == ObfuscationStatus.Renamed) { writer.WriteStartElement("renamedResource"); writer.WriteAttributeString("oldName", info.Name); writer.WriteAttributeString("newName", info.StatusText); writer.WriteEndElement(); } } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteStartElement("skippedResources"); foreach ( ObfuscatedThing info in map.Resources ) { if (info.Status == ObfuscationStatus.Skipped) { writer.WriteStartElement("skippedResource"); writer.WriteAttributeString("name", info.Name); writer.WriteAttributeString("reason", info.StatusText); writer.WriteEndElement(); } } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteEndElement(); writer.WriteString("\r\n"); }
public void WriteMap(ObfuscationMap map) { writer.WriteStartElement("mapping"); writer.WriteStartElement("renamedTypes"); foreach (ObfuscatedClass classInfo in map.ClassMap.Values) { // print the ones we didn't skip first if (classInfo.Status == ObfuscationStatus.Renamed) { DumpClass(classInfo); } } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteStartElement("skippedTypes"); foreach (ObfuscatedClass classInfo in map.ClassMap.Values) { // now print the stuff we skipped if (classInfo.Status == ObfuscationStatus.Skipped) { DumpClass(classInfo); } } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteStartElement("renamedResources"); foreach (ObfuscatedThing info in map.Resources) { if (info.Status == ObfuscationStatus.Renamed) { writer.WriteStartElement("renamedResource"); writer.WriteAttributeString("oldName", info.Name); writer.WriteAttributeString("newName", info.StatusText); writer.WriteEndElement(); } } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteStartElement("skippedResources"); foreach (ObfuscatedThing info in map.Resources) { if (info.Status == ObfuscationStatus.Skipped) { writer.WriteStartElement("skippedResource"); writer.WriteAttributeString("name", info.Name); writer.WriteAttributeString("reason", info.StatusText); writer.WriteEndElement(); } } writer.WriteEndElement(); writer.WriteString("\r\n"); writer.WriteEndElement(); writer.WriteString("\r\n"); }