修复混淆了编译器生成的有特殊用意的Microsoft.CodeAnalysis.EmbeddedAttribute及声明了EmbeddedAttribute的CustomAttribute的bug
parent
374a297e45
commit
dcd38e288b
|
@ -14,6 +14,10 @@ namespace Obfuz.Editor
|
||||||
|
|
||||||
public const string ObfuzIgnoreAttributeFullName = "Obfuz.ObfuzIgnoreAttribute";
|
public const string ObfuzIgnoreAttributeFullName = "Obfuz.ObfuzIgnoreAttribute";
|
||||||
|
|
||||||
|
public const string ObfuzScopeFullName = "Obfuz.ObfuzScope";
|
||||||
|
|
||||||
public const string EncryptFieldAttributeFullName = "Obfuz.EncryptFieldAttribute";
|
public const string EncryptFieldAttributeFullName = "Obfuz.EncryptFieldAttribute";
|
||||||
|
|
||||||
|
public const string EmbeddedAttributeFullName = "Microsoft.CodeAnalysis.EmbeddedAttribute";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
using dnlib.DotNet;
|
using dnlib.DotNet;
|
||||||
|
using Obfuz.Editor;
|
||||||
using Obfuz.Utils;
|
using Obfuz.Utils;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Obfuz.ObfusPasses.SymbolObfus.Policies
|
namespace Obfuz.ObfusPasses.SymbolObfus.Policies
|
||||||
{
|
{
|
||||||
|
@ -12,9 +14,17 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
|
||||||
_obfuzIgnoreScopeComputeCache = obfuzIgnoreScopeComputeCache;
|
_obfuzIgnoreScopeComputeCache = obfuzIgnoreScopeComputeCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private readonly HashSet<string> _fullIgnoreTypeNames = new HashSet<string>
|
||||||
|
{
|
||||||
|
ConstValues.ObfuzIgnoreAttributeFullName,
|
||||||
|
ConstValues.ObfuzScopeFullName,
|
||||||
|
ConstValues.EncryptFieldAttributeFullName,
|
||||||
|
ConstValues.EmbeddedAttributeFullName,
|
||||||
|
};
|
||||||
|
|
||||||
private bool IsFullIgnoreObfuscatedType(TypeDef typeDef)
|
private bool IsFullIgnoreObfuscatedType(TypeDef typeDef)
|
||||||
{
|
{
|
||||||
return typeDef.FullName == "Obfuz.ObfuzIgnoreAttribute" || typeDef.FullName == "Obfuz.ObfuzScope" || typeDef.FullName == "Obfuz.EncryptFieldAttribute";
|
return _fullIgnoreTypeNames.Contains(typeDef.FullName) || MetaUtil.HasMicrosoftCodeAnalysisEmbeddedAttribute(typeDef);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override bool NeedRename(TypeDef typeDef)
|
public override bool NeedRename(TypeDef typeDef)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using dnlib.DotNet;
|
using dnlib.DotNet;
|
||||||
|
using Obfuz.Editor;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
@ -837,7 +838,7 @@ namespace Obfuz.Utils
|
||||||
|
|
||||||
public static bool HasEncryptFieldAttribute(IHasCustomAttribute obj)
|
public static bool HasEncryptFieldAttribute(IHasCustomAttribute obj)
|
||||||
{
|
{
|
||||||
return obj.CustomAttributes.Find("Obfuz.EncryptFieldAttribute") != null;
|
return obj.CustomAttributes.Find(ConstValues.EncryptFieldAttributeFullName) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool HasRuntimeInitializeOnLoadMethodAttribute(MethodDef method)
|
public static bool HasRuntimeInitializeOnLoadMethodAttribute(MethodDef method)
|
||||||
|
@ -859,5 +860,10 @@ namespace Obfuz.Utils
|
||||||
{
|
{
|
||||||
return obj.CustomAttributes.Find("Unity.Jobs.DOTSCompilerGeneratedAttribute") != null;
|
return obj.CustomAttributes.Find("Unity.Jobs.DOTSCompilerGeneratedAttribute") != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool HasMicrosoftCodeAnalysisEmbeddedAttribute(IHasCustomAttribute obj)
|
||||||
|
{
|
||||||
|
return obj.CustomAttributes.Find("Microsoft.CodeAnalysis.EmbeddedAttribute") != null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue