修复 ReflectionCompatibilityDetector错误地对未混淆程序集中Enum打印错误日志的bug
parent
d60d0e02dd
commit
0fe0a91793
|
@ -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)
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue