diff --git a/Editor/ObfusPasses/SymbolObfus/NameMaker.cs b/Editor/ObfusPasses/SymbolObfus/NameMaker.cs index 3cd5dc2..c344deb 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameMaker.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMaker.cs @@ -9,16 +9,18 @@ namespace Obfuz.ObfusPasses.SymbolObfus public class NameMaker : NameMakerBase { + private readonly string _namePrefix; private readonly List _wordSet; - public NameMaker(List wordSet) + public NameMaker(string namePrefix, List wordSet) { + _namePrefix = namePrefix; _wordSet = wordSet; } protected override INameScope CreateNameScope() { - return new NameScope(_wordSet); + return new NameScope(_namePrefix, _wordSet); } } } diff --git a/Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs b/Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs index 3c3213d..917d92f 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs @@ -14,7 +14,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus return new DebugNameMaker(); } - public static INameMaker CreateNameMakerBaseASCIICharSet() + public static INameMaker CreateNameMakerBaseASCIICharSet(string namePrefix) { var words = new List(); for (int i = 0; i < 26; i++) @@ -22,7 +22,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus words.Add(((char)('a' + i)).ToString()); words.Add(((char)('A' + i)).ToString()); } - return new NameMaker(words); + return new NameMaker(namePrefix, words); } } } diff --git a/Editor/ObfusPasses/SymbolObfus/NameScope.cs b/Editor/ObfusPasses/SymbolObfus/NameScope.cs index 7fedd40..d9da042 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameScope.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameScope.cs @@ -7,17 +7,20 @@ namespace Obfuz.ObfusPasses.SymbolObfus public class NameScope : NameScopeBase { + private readonly string _namePrefix; private readonly List _wordSet; private int _nextIndex; - public NameScope(List wordSet) + public NameScope(string namePrefix, List wordSet) { + _namePrefix = namePrefix; _wordSet = wordSet; _nextIndex = 0; } protected override void BuildNewName(StringBuilder nameBuilder, string originalName, string lastName) { + nameBuilder.Append(_namePrefix); for (int i = _nextIndex++; ;) { nameBuilder.Append(_wordSet[i % _wordSet.Count]); diff --git a/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs b/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs index cf97a50..e127aaf 100644 --- a/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs +++ b/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs @@ -58,7 +58,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus _obfuscationRuleFiles = settings.ruleFiles.ToList(); _renameRecordMap = new RenameRecordMap(settings.mappingFile); _virtualMethodGroupCalculator = new VirtualMethodGroupCalculator(); - _nameMaker = settings.debug ? NameMakerFactory.CreateDebugNameMaker() : NameMakerFactory.CreateNameMakerBaseASCIICharSet(); + _nameMaker = settings.debug ? NameMakerFactory.CreateDebugNameMaker() : NameMakerFactory.CreateNameMakerBaseASCIICharSet(settings.obfuscatedNamePrefix); } public void Init(ObfuscationPassContext ctx) diff --git a/Editor/Settings/SymbolObfusSettings.cs b/Editor/Settings/SymbolObfusSettings.cs index de5118b..bc65ee0 100644 --- a/Editor/Settings/SymbolObfusSettings.cs +++ b/Editor/Settings/SymbolObfusSettings.cs @@ -12,6 +12,8 @@ namespace Obfuz.Settings { public bool debug; + public string obfuscatedNamePrefix = "$"; + [Tooltip("path of mapping.xml")] public string mappingFile = "Assets/Obfuz/SymbolObfus/mapping.xml";