生成混淆名全局唯一,而不是本程序集内唯一,否则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 object _namespaceScope = new object();
|
||||
private readonly object _typeNameScope = new object();
|
||||
|
||||
protected abstract INameScope CreateNameScope();
|
||||
|
||||
|
@ -26,7 +27,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers
|
|||
|
||||
public void AddPreservedName(TypeDef typeDef, string name)
|
||||
{
|
||||
GetNameScope(typeDef.Module).AddPreservedName(name);
|
||||
GetNameScope(_typeNameScope).AddPreservedName(name);
|
||||
}
|
||||
|
||||
public void AddPreservedName(MethodDef methodDef, string name)
|
||||
|
@ -75,7 +76,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers
|
|||
|
||||
public string GetNewName(TypeDef typeDef, string originalName)
|
||||
{
|
||||
return GetDefaultNewName(typeDef.Module, originalName);
|
||||
return GetDefaultNewName(_typeNameScope, originalName);
|
||||
}
|
||||
|
||||
public string GetNewName(MethodDef methodDef, string originalName)
|
||||
|
|
Loading…
Reference in New Issue