Esempio n. 1
0
        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");
            }
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
                }
            }
        }
Esempio n. 5
0
        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 );
            }
        }
Esempio n. 6
0
 public void WriteMap(ObfuscationMap map)
 {
 }
Esempio n. 7
0
        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");
        }
Esempio n. 8
0
		public void WriteMap(ObfuscationMap map)
		{
		}
Esempio n. 9
0
        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");
        }