fix: nested type uses declaring type rule in symbol obfuscation

before-split
walon 2025-05-19 19:47:10 +08:00
parent dca7c5831f
commit 0f6207b0ae
1 changed files with 13 additions and 0 deletions

View File

@ -419,6 +419,19 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
typeRule.obfuscateName = assemblyRuleSpec.obfuscateName ?? true;
typeRule.obfuscateNamespace = assemblyRuleSpec.obfuscateName ?? true;
if (typeDef.DeclaringType != null)
{
TypeRuleSpec declaringTypeSpec = GetOrCreateTypeDefRenameComputeCache(typeDef.DeclaringType);
if (declaringTypeSpec.obfuscateName != null)
{
typeRule.obfuscateName = declaringTypeSpec.obfuscateName;
}
if (declaringTypeSpec.obfuscateNamespace != null)
{
typeRule.obfuscateNamespace = declaringTypeSpec.obfuscateNamespace;
}
}
string typeName = typeDef.FullName;
bool findMatch = false;
foreach (var typeSpec in assemblyRuleSpec.types)