混淆名默认加$前缀,避免与原始名称冲突

backup
walon 2025-05-05 10:24:13 +08:00
parent c875577939
commit 7876062292
5 changed files with 13 additions and 6 deletions

View File

@ -9,16 +9,18 @@ namespace Obfuz.ObfusPasses.SymbolObfus
public class NameMaker : NameMakerBase
{
private readonly string _namePrefix;
private readonly List<string> _wordSet;
public NameMaker(List<string> wordSet)
public NameMaker(string namePrefix, List<string> wordSet)
{
_namePrefix = namePrefix;
_wordSet = wordSet;
}
protected override INameScope CreateNameScope()
{
return new NameScope(_wordSet);
return new NameScope(_namePrefix, _wordSet);
}
}
}

View File

@ -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<string>();
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);
}
}
}

View File

@ -7,17 +7,20 @@ namespace Obfuz.ObfusPasses.SymbolObfus
public class NameScope : NameScopeBase
{
private readonly string _namePrefix;
private readonly List<string> _wordSet;
private int _nextIndex;
public NameScope(List<string> wordSet)
public NameScope(string namePrefix, List<string> 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]);

View File

@ -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)

View File

@ -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";