diff --git a/Editor/Obfuscator.cs b/Editor/Obfuscator.cs index fb2e450..9e4ae67 100644 --- a/Editor/Obfuscator.cs +++ b/Editor/Obfuscator.cs @@ -34,7 +34,7 @@ namespace Obfuz _options = options; _assemblyCache = new AssemblyCache(new PathAssemblyResolver(options.AssemblySearchDirs.ToArray())); _renamePolicy = new CombineRenamePolicy(new SystemRenamePolicy(), new UnityRenamePolicy(), new XmlConfigRenamePolicy()); - _nameMaker = new NameMaker(); + _nameMaker = new TestNameMaker(); } public void DoIt() diff --git a/Editor/Rename/SymbolRename.cs b/Editor/Rename/SymbolRename.cs index 7f4c71f..ae8440c 100644 --- a/Editor/Rename/SymbolRename.cs +++ b/Editor/Rename/SymbolRename.cs @@ -315,7 +315,8 @@ namespace Obfuz } foreach (FieldDef field in hierarchyFields) { - if (field.Name == arg.Name) + // FIXME. field of Generic Base Type may not be same + if (field.Name == arg.Name && TypeEqualityComparer.Instance.Equals(field.FieldType, arg.Type)) { if (!refFieldMetasMap.TryGetValue(field, out var fieldMetas)) { @@ -502,7 +503,8 @@ namespace Obfuz } foreach (PropertyDef field in hierarchyProperties) { - if (field.Name == arg.Name) + // FIXME. field of Generic Base Type may not be same + if (field.Name == arg.Name && TypeEqualityComparer.Instance.Equals(arg.Type, field.PropertySig.RetType)) { if (!refPropertyMetasMap.TryGetValue(field, out var fieldMetas)) { diff --git a/Editor/Rename/TestNameMaker.cs b/Editor/Rename/TestNameMaker.cs new file mode 100644 index 0000000..fe8f5ee --- /dev/null +++ b/Editor/Rename/TestNameMaker.cs @@ -0,0 +1,59 @@ +using dnlib.DotNet; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Obfuz.Rename +{ + public class TestNameMaker : INameMaker + { + private int _nextIndex; + + private string GetDefaultNewName(string originName) + { + return $"{originName}>{_nextIndex++}"; + } + + public string GetNewName(ModuleDefMD mod, string originalName) + { + return GetDefaultNewName(originalName); + } + + public string GetNewNamespace(TypeDef typeDef, string originalNamespace) + { + return GetDefaultNewName(originalNamespace); + } + + public string GetNewName(TypeDef typeDef, string originalName) + { + return GetDefaultNewName(originalName); + } + + public string GetNewName(MethodDef methodDef, string originalName) + { + return GetDefaultNewName(originalName); + } + + public string GetNewName(ParamDef param, string originalName) + { + return GetDefaultNewName(originalName); + } + + public string GetNewName(FieldDef fieldDef, string originalName) + { + return GetDefaultNewName(originalName); + } + + public string GetNewName(PropertyDef propertyDef, string originalName) + { + return GetDefaultNewName(originalName); + } + + public string GetNewName(EventDef eventDef, string originalName) + { + return GetDefaultNewName(originalName); + } + } +}