修复 ReflectionCompatibilityDetector错误地对未混淆程序集中Enum打印错误日志的bug

1.x
walon 2025-06-16 11:41:18 +08:00
parent 830d61cc48
commit 2d9782fdb7
2 changed files with 5 additions and 3 deletions

View File

@ -11,11 +11,13 @@ namespace Obfuz.ObfusPasses.SymbolObfus
{
public class ReflectionCompatibilityDetector
{
private readonly HashSet<ModuleDef> _assembliesToObfuscate;
private readonly List<ModuleDef> _obfuscatedAndNotObfuscatedModules;
private readonly IObfuscationPolicy _renamePolicy;
public ReflectionCompatibilityDetector(List<ModuleDef> obfuscatedAndNotObfuscatedModules, IObfuscationPolicy renamePolicy)
public ReflectionCompatibilityDetector(List<ModuleDef> assembliesToObfuscate, List<ModuleDef> obfuscatedAndNotObfuscatedModules, IObfuscationPolicy renamePolicy)
{
_assembliesToObfuscate = new HashSet<ModuleDef>(assembliesToObfuscate);
_obfuscatedAndNotObfuscatedModules = obfuscatedAndNotObfuscatedModules;
_renamePolicy = renamePolicy;
}
@ -137,7 +139,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
private bool IsAnyEnumItemRenamed(TypeDef typeDef)
{
return typeDef.Fields.Any(f => _renamePolicy.NeedRename(f));
return _assembliesToObfuscate.Contains(typeDef.Module) && typeDef.Fields.Any(f => _renamePolicy.NeedRename(f));
}
private void AnalyzeCallvir(IMethod calledMethod, ITypeDefOrRef constrainedType)

View File

@ -182,7 +182,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
PrecomputeNeedRename();
if (_detectReflectionCompatibility)
{
var reflectionCompatibilityDetector = new ReflectionCompatibilityDetector(_obfuscatedAndNotObfuscatedModules, _renamePolicy);
var reflectionCompatibilityDetector = new ReflectionCompatibilityDetector(_toObfuscatedModules, _obfuscatedAndNotObfuscatedModules, _renamePolicy);
reflectionCompatibilityDetector.Analyze();
}
RenameTypes();