diff --git a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs index 791f95d..4a69c90 100644 --- a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs +++ b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/RenameRecordMap.cs @@ -92,7 +92,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus private readonly Dictionary _modRenames = new Dictionary(); private readonly Dictionary _typeRenames = new Dictionary(); private readonly Dictionary _methodRenames = new Dictionary(); - private readonly Dictionary _paramRenames = new Dictionary(); private readonly Dictionary _fieldRenames = new Dictionary(); private readonly Dictionary _propertyRenames = new Dictionary(); private readonly Dictionary _eventRenames = new Dictionary(); @@ -147,7 +146,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus { nameMaker.AddPreservedName(method, method.Name); string methodSig = TypeSigUtil.ComputeMethodDefSignature(method); - nameMaker.AddPreservedName(method, method.Name); RenameMappingMethod rmm = rmt?.methods.GetValueOrDefault(methodSig); if (rmm != null) @@ -163,19 +161,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus renameMappingData = rmm, oldStackTraceSignature = MetaUtil.CreateMethodDefIl2CppStackTraceSignature(method), }); - foreach (Parameter param in method.Parameters) - { - if (param.ParamDef != null) - { - _paramRenames.Add(param.ParamDef, new RenameRecord - { - status = RenameStatus.NotRenamed, - signature = param.Name, - oldName = param.Name, - newName = null, - }); - } - } } foreach (FieldDef field in type.Fields) { @@ -550,13 +535,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus methodNode.SetAttribute("oldStackTraceSignature", record.oldStackTraceSignature); methodNode.SetAttribute("newStackTraceSignature", MetaUtil.CreateMethodDefIl2CppStackTraceSignature(method)); //methodNode.SetAttribute("status", record != null ? record.status.ToString() : RenameStatus.NotRenamed.ToString()); - foreach (Parameter param in method.Parameters) - { - if (param.ParamDef != null) - { - WriteMethodParamMapping(methodNode, param.ParamDef); - } - } typeEle.AppendChild(methodNode); } @@ -568,19 +546,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus typeEle.AppendChild(methodNode); } - private void WriteMethodParamMapping(XmlElement methodEle, ParamDef param) - { - if (!_paramRenames.TryGetValue(param, out var record) || record.status == RenameStatus.NotRenamed) - { - return; - } - var paramNode = methodEle.OwnerDocument.CreateElement("param"); - paramNode.SetAttribute("index", param.Sequence.ToString()); - paramNode.SetAttribute("newName", record.newName); - //paramNode.SetAttribute("status", record.status.ToString()); - methodEle.AppendChild(paramNode); - } - public void AddRename(ModuleDef mod, string newName) { RenameRecord record = _modRenames[mod]; @@ -597,9 +562,25 @@ namespace Obfuz.ObfusPasses.SymbolObfus public void AddRename(MethodDef method, string newName) { - RenameRecord record = _methodRenames[method]; - record.status = RenameStatus.Renamed; - record.newName = newName; + if (_methodRenames.TryGetValue(method, out RenameRecord record)) + { + record.status = RenameStatus.Renamed; + record.newName = newName; + return; + } + else + { + string methodSig = TypeSigUtil.ComputeMethodDefSignature(method); + _methodRenames.Add(method, new RenameRecord + { + status = RenameStatus.Renamed, + signature = methodSig, + oldName = method.Name, + newName = newName, + renameMappingData = null, + oldStackTraceSignature = MetaUtil.CreateMethodDefIl2CppStackTraceSignature(method), + }); + } } public void InitAndAddRename(VirtualMethodGroup methodGroup, string newName) diff --git a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs index ef55dfe..d65f8c8 100644 --- a/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs +++ b/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs @@ -475,7 +475,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus VirtualMethodGroup group = _virtualMethodGroupCalculator.GetMethodGroup(method); if (!groupNeedRenames.TryGetValue(group, out var needRename)) { - needRename = group.methods.All(m => _toObfuscatedModuleSet.Contains(m.DeclaringType.Module) && _renamePolicy.NeedRename(m)); + needRename = group.methods.All(m => _obfuscatedAndNotObfuscatedModules.Contains(m.Module) && (!_toObfuscatedModuleSet.Contains(m.DeclaringType.Module) || _renamePolicy.NeedRename(m))); groupNeedRenames.Add(group, needRename); if (needRename) {