symbol obfus规则中TypeSpec支持 applyToNestedTypes 属性

before-split
walon 2025-05-27 19:02:18 +08:00
parent 22fca877f6
commit 1b3c1c4958
1 changed files with 5 additions and 4 deletions

View File

@ -205,6 +205,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
rule.nameMatcher = new NameMatcher(element.GetAttribute("name")); rule.nameMatcher = new NameMatcher(element.GetAttribute("name"));
rule.obfuscateName = ConfigUtil.ParseNullableBool(element.GetAttribute("obName")); rule.obfuscateName = ConfigUtil.ParseNullableBool(element.GetAttribute("obName"));
rule.applyToMembers = ParseApplyToMembersScope(element.GetAttribute("applyToMembers")); rule.applyToMembers = ParseApplyToMembersScope(element.GetAttribute("applyToMembers"));
rule.applyToNestedTypes = ConfigUtil.ParseNullableBool(element.GetAttribute("applyToNestedTypes")) ?? true;
rule.modifierType = ParseModifierType(element.GetAttribute("modifier")); rule.modifierType = ParseModifierType(element.GetAttribute("modifier"));
rule.classType = ParseClassType(element.GetAttribute("classType")); rule.classType = ParseClassType(element.GetAttribute("classType"));
@ -638,12 +639,12 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
} }
} }
foreach (TypeDef nestedType in typeDef.NestedTypes) if (typeSpec.applyToNestedTypes)
{ {
var nestedRuleResult = GetOrCreateTypeRuleResult(nestedType); foreach (TypeDef nestedType in typeDef.NestedTypes)
if (typeSpec.applyToNestedTypes && typeSpec.obfuscateName != null)
{ {
nestedRuleResult.obfuscateName = typeSpec.obfuscateName; var nestedRuleResult = GetOrCreateTypeRuleResult(nestedType);
BuildTypeRuleResult(typeSpec, nestedType, nestedRuleResult);
} }
} }
} }