From 78760622925959d724c57b17093ff4dcefddaf52 Mon Sep 17 00:00:00 2001 From: walon Date: Mon, 5 May 2025 10:24:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=B7=E6=B7=86=E5=90=8D=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=8A=A0$=E5=89=8D=E7=BC=80=EF=BC=8C=E9=81=BF=E5=85=8D?= =?UTF-8?q?=E4=B8=8E=E5=8E=9F=E5=A7=8B=E5=90=8D=E7=A7=B0=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Editor/ObfusPasses/SymbolObfus/NameMaker.cs | 6 ++++-- Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs | 4 ++-- Editor/ObfusPasses/SymbolObfus/NameScope.cs | 5 ++++- Editor/ObfusPasses/SymbolObfus/SymbolRename.cs | 2 +- Editor/Settings/SymbolObfusSettings.cs | 2 ++ 5 files changed, 13 insertions(+), 6 deletions(-) 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";