修复 ReflectionCompatibilityDetector错误地对未混淆程序集中Enum打印错误日志的bug
parent
d60d0e02dd
commit
0fe0a91793
|
@ -11,11 +11,13 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
{
|
{
|
||||||
public class ReflectionCompatibilityDetector
|
public class ReflectionCompatibilityDetector
|
||||||
{
|
{
|
||||||
|
private readonly HashSet<ModuleDef> _assembliesToObfuscate;
|
||||||
private readonly List<ModuleDef> _obfuscatedAndNotObfuscatedModules;
|
private readonly List<ModuleDef> _obfuscatedAndNotObfuscatedModules;
|
||||||
private readonly IObfuscationPolicy _renamePolicy;
|
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;
|
_obfuscatedAndNotObfuscatedModules = obfuscatedAndNotObfuscatedModules;
|
||||||
_renamePolicy = renamePolicy;
|
_renamePolicy = renamePolicy;
|
||||||
}
|
}
|
||||||
|
@ -137,7 +139,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
|
|
||||||
private bool IsAnyEnumItemRenamed(TypeDef typeDef)
|
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)
|
private void AnalyzeCallvir(IMethod calledMethod, ITypeDefOrRef constrainedType)
|
||||||
|
|
|
@ -182,7 +182,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus
|
||||||
PrecomputeNeedRename();
|
PrecomputeNeedRename();
|
||||||
if (_detectReflectionCompatibility)
|
if (_detectReflectionCompatibility)
|
||||||
{
|
{
|
||||||
var reflectionCompatibilityDetector = new ReflectionCompatibilityDetector(_obfuscatedAndNotObfuscatedModules, _renamePolicy);
|
var reflectionCompatibilityDetector = new ReflectionCompatibilityDetector(_toObfuscatedModules, _obfuscatedAndNotObfuscatedModules, _renamePolicy);
|
||||||
reflectionCompatibilityDetector.Analyze();
|
reflectionCompatibilityDetector.Analyze();
|
||||||
}
|
}
|
||||||
RenameTypes();
|
RenameTypes();
|
||||||
|
|
Loading…
Reference in New Issue