SymbolObfus Debug模式时所有命名前加$。只要不重名,不再追加index后缀
parent
07afb0f7ef
commit
c875577939
|
@ -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}";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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++; ;)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue