SymbolObfus Debug模式时所有命名前加$。只要不重名,不再追加index后缀

backup
walon 2025-05-05 10:14:42 +08:00
parent 07afb0f7ef
commit c875577939
3 changed files with 14 additions and 10 deletions

View File

@ -8,9 +8,16 @@ namespace Obfuz.ObfusPasses.SymbolObfus
private class TestNameScope : NameScopeBase private class TestNameScope : NameScopeBase
{ {
private int _nextIndex; private int _nextIndex;
protected override void BuildNewName(StringBuilder nameBuilder, string originalName) protected override void BuildNewName(StringBuilder nameBuilder, string originalName, string lastName)
{ {
nameBuilder.Append($"<{originalName}>{_nextIndex++}"); if (string.IsNullOrEmpty(lastName))
{
nameBuilder.Append($"${originalName}");
}
else
{
nameBuilder.Append($"${originalName}{_nextIndex++}");
}
} }
} }
@ -18,10 +25,5 @@ namespace Obfuz.ObfusPasses.SymbolObfus
{ {
return new TestNameScope(); return new TestNameScope();
} }
public override string GetNewName(ParamDef param, string originalName)
{
return $"${originalName}";
}
} }
} }

View File

@ -16,7 +16,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
_nextIndex = 0; _nextIndex = 0;
} }
protected override void BuildNewName(StringBuilder nameBuilder, string originalName) protected override void BuildNewName(StringBuilder nameBuilder, string originalName, string lastName)
{ {
for (int i = _nextIndex++; ;) for (int i = _nextIndex++; ;)
{ {

View File

@ -20,16 +20,18 @@ namespace Obfuz.ObfusPasses.SymbolObfus
} }
protected abstract void BuildNewName(StringBuilder nameBuilder, string originalName); protected abstract void BuildNewName(StringBuilder nameBuilder, string originalName, string lastName);
private string CreateNewName(string originalName) private string CreateNewName(string originalName)
{ {
var nameBuilder = new StringBuilder(); var nameBuilder = new StringBuilder();
string lastName = null;
while (true) while (true)
{ {
nameBuilder.Clear(); nameBuilder.Clear();
BuildNewName(nameBuilder, originalName); BuildNewName(nameBuilder, originalName, lastName);
string newName = nameBuilder.ToString(); string newName = nameBuilder.ToString();
lastName = newName;
if (_preservedNames.Add(newName)) if (_preservedNames.Add(newName))
{ {
return newName; return newName;