From 0f6207b0ae0518be495f3244db90408a1f1bb214 Mon Sep 17 00:00:00 2001 From: walon Date: Mon, 19 May 2025 19:47:10 +0800 Subject: [PATCH] fix: nested type uses declaring type rule in symbol obfuscation --- .../Policies/ConfigurableRenamePolicy.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Obfuz/Packages/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/ConfigurableRenamePolicy.cs b/Obfuz/Packages/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/ConfigurableRenamePolicy.cs index 718800a..7605ca7 100644 --- a/Obfuz/Packages/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/ConfigurableRenamePolicy.cs +++ b/Obfuz/Packages/com.code-philosophy.obfuz/Editor/ObfusPasses/SymbolObfus/Policies/ConfigurableRenamePolicy.cs @@ -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)