生成混淆名全局唯一,而不是本程序集内唯一,否则DeobfuscateStackTrace很有可能因为不同程序集的类型名重名而无法分辨准确类型
parent
7e2162e66d
commit
b7d2f69321
|
@ -11,6 +11,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers
|
||||||
private readonly Dictionary<object, INameScope> _nameScopes = new Dictionary<object, INameScope>();
|
private readonly Dictionary<object, INameScope> _nameScopes = new Dictionary<object, INameScope>();
|
||||||
|
|
||||||
private readonly object _namespaceScope = new object();
|
private readonly object _namespaceScope = new object();
|
||||||
|
private readonly object _typeNameScope = new object();
|
||||||
|
|
||||||
protected abstract INameScope CreateNameScope();
|
protected abstract INameScope CreateNameScope();
|
||||||
|
|
||||||
|
@ -26,7 +27,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers
|
||||||
|
|
||||||
public void AddPreservedName(TypeDef typeDef, string name)
|
public void AddPreservedName(TypeDef typeDef, string name)
|
||||||
{
|
{
|
||||||
GetNameScope(typeDef.Module).AddPreservedName(name);
|
GetNameScope(_typeNameScope).AddPreservedName(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddPreservedName(MethodDef methodDef, string name)
|
public void AddPreservedName(MethodDef methodDef, string name)
|
||||||
|
@ -75,7 +76,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers
|
||||||
|
|
||||||
public string GetNewName(TypeDef typeDef, string originalName)
|
public string GetNewName(TypeDef typeDef, string originalName)
|
||||||
{
|
{
|
||||||
return GetDefaultNewName(typeDef.Module, originalName);
|
return GetDefaultNewName(_typeNameScope, originalName);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetNewName(MethodDef methodDef, string originalName)
|
public string GetNewName(MethodDef methodDef, string originalName)
|
||||||
|
|
Loading…
Reference in New Issue