remove: remove obfuscation rule for method parameter. we simplify rule that if obfuscates a method, we also obfuscate its parameters.

before-split
walon 2025-05-19 15:46:12 +08:00
parent b671137958
commit 18be3c9f24
6 changed files with 3 additions and 50 deletions

View File

@ -13,7 +13,5 @@ namespace Obfuz.ObfusPasses.SymbolObfus
bool NeedRename(PropertyDef propertyDef);
bool NeedRename(EventDef eventDef);
bool NeedRename(ParamDef paramDef);
}
}

View File

@ -64,15 +64,5 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
}
return value;
}
public override bool NeedRename(ParamDef paramDef)
{
if (!_computeCache.TryGetValue(paramDef, out var value))
{
value = _underlyingPolicy.NeedRename(paramDef);
_computeCache[paramDef] = value;
}
return value;
}
}
}

View File

@ -36,10 +36,5 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{
return _policies.All(policy => policy.NeedRename(eventDef));
}
public bool NeedRename(ParamDef paramDef)
{
return _policies.All(policy => policy.NeedRename(paramDef));
}
}
}

View File

@ -65,8 +65,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{
public string ruleName;
public bool obfuscateName;
public bool obfuscateParam;
public bool obfuscateBody;
}
class FieldRuleSpec
@ -166,8 +164,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{
ruleName = "none",
obfuscateName = false,
obfuscateParam = false,
obfuscateBody = false,
};
private static readonly EventRule s_noneEventRule = new EventRule
@ -401,8 +397,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
var rule = new MethodRule();
rule.ruleName = ruleName;
rule.obfuscateName = ParseBoolNoneOrFalse(element.GetAttribute("ob-name"));
rule.obfuscateParam = ParseBoolNoneOrFalse(element.GetAttribute("ob-param"));
rule.obfuscateBody = ParseBoolNoneOrFalse(element.GetAttribute("ob-body"));
return rule;
}
@ -818,8 +812,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
}
MethodRule methodRule = e.Item2.rule;
methodCache.obfuscateName &= methodRule.obfuscateName;
methodCache.obfuscateParam &= methodRule.obfuscateParam;
methodCache.obfuscateBody &= methodRule.obfuscateBody;
}
foreach (MethodRuleSpec methodSpec in totalMethodSpecs)
{
@ -834,8 +826,6 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
}
MethodRule methodRule = methodSpec.rule;
methodCache.obfuscateName &= methodRule.obfuscateName;
methodCache.obfuscateParam &= methodRule.obfuscateParam;
methodCache.obfuscateBody &= methodRule.obfuscateBody;
}
}
}
@ -879,17 +869,5 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
TypeDefComputeCache cache = GetOrCreateTypeDefRenameComputeCache(typeDef);
return !cache.notObfuscatedEvents.Contains(eventDef);
}
public override bool NeedRename(ParamDef paramDef)
{
MethodDef methodDef = paramDef.DeclaringMethod;
TypeDef typeDef = methodDef.DeclaringType;
TypeDefComputeCache cache = GetOrCreateTypeDefRenameComputeCache(typeDef);
if (!cache.methods.TryGetValue(methodDef, out var methodCache))
{
return true;
}
return methodCache.obfuscateParam;
}
}
}

View File

@ -29,10 +29,5 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{
return true;
}
public virtual bool NeedRename(ParamDef paramDef)
{
return true;
}
}
}

View File

@ -715,14 +715,11 @@ namespace Obfuz.ObfusPasses.SymbolObfus
}
private void Rename(ParamDef param)
{
if (_renamePolicy.NeedRename(param))
{
string newName = _nameMaker.GetNewName(param, param.Name);
_renameRecordMap.AddRename(param, newName);
param.Name = newName;
}
}
private void Rename(EventDef eventDef)
{