Example #1
0
 static List<MethodNameGroup> getSorted(MethodNameGroups groups)
 {
     var allGroups = new List<MethodNameGroup>(groups.getAllGroups());
     allGroups.Sort((a, b) => Utils.compareInt32(b.Count, a.Count));
     return allGroups;
 }
Example #2
0
 void restorePropertiesAndEvents(MethodNameGroups groups)
 {
     var allGroups = groups.getAllGroups();
     restoreVirtualProperties(allGroups);
     restorePropertiesFromNames(allGroups);
     resetVirtualPropertyNames(allGroups);
     restoreVirtualEvents(allGroups);
     restoreEventsFromNames(allGroups);
     resetVirtualEventNames(allGroups);
 }
Example #3
0
 void removeUselessOverrides(MethodNameGroups groups)
 {
     foreach (var group in groups.getAllGroups()) {
         foreach (var method in group.Methods) {
             if (!method.Owner.HasModule)
                 continue;
             if (!method.isPublic())
                 continue;
             var overrides = method.MethodDefinition.Overrides;
             for (int i = 0; i < overrides.Count; i++) {
                 var overrideMethod = overrides[i];
                 if (method.MethodDefinition.Name != overrideMethod.Name)
                     continue;
                 Log.v("Removed useless override from method {0} ({1:X8}), override: {2:X8}",
                             Utils.removeNewlines(method.MethodDefinition),
                             method.MethodDefinition.MetadataToken.ToInt32(),
                             overrideMethod.MetadataToken.ToInt32());
                 overrides.RemoveAt(i);
                 i--;
             }
         }
     }
 }
Example #4
0
        void restoreMethodArgs(MethodNameGroups groups)
        {
            foreach (var group in groups.getAllGroups()) {
                if (group.Methods[0].ParamDefs.Count == 0)
                    continue;

                var argNames = getValidArgNames(group);

                foreach (var method in group.Methods) {
                    if (!method.Owner.HasModule)
                        continue;
                    var nameChecker = method.Owner.Module.ObfuscatedFile.NameChecker;

                    for (int i = 0; i < argNames.Length; i++) {
                        var argName = argNames[i];
                        if (argName == null || !nameChecker.isValidMethodArgName(argName))
                            continue;
                        var info = memberInfos.param(method.ParamDefs[i]);
                        if (nameChecker.isValidMethodArgName(info.oldName))
                            continue;
                        info.newName = argName;
                    }
                }
            }
        }
Example #5
0
 static List<MethodNameGroup> getSorted(MethodNameGroups groups)
 {
     var allGroups = new List<MethodNameGroup>(groups.getAllGroups());
     allGroups.Sort((a, b) => b.Count.CompareTo(a.Count));
     return allGroups;
 }