- Serializable类型名也会被混淆,但可序列化字段不会被混淆
- Obfuz.EncryptField类不会被混淆 - 必须是MonoBehaviour继承的类型中事件函数名才不会被混淆before-split
parent
4ca7a53a1e
commit
c1600f0f4d
|
@ -7,7 +7,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
|
|||
{
|
||||
private bool IsFullIgnoreObfuscatedType(TypeDef typeDef)
|
||||
{
|
||||
return typeDef.FullName == "Obfuz.ObfuzIgnoreAttribute" || typeDef.FullName == "Obfuz.ObfuzScope";
|
||||
return typeDef.FullName == "Obfuz.ObfuzIgnoreAttribute" || typeDef.FullName == "Obfuz.ObfuzScope" || typeDef.FullName == "Obfuz.EncryptFieldAttribute";
|
||||
}
|
||||
|
||||
public override bool NeedRename(TypeDef typeDef)
|
||||
|
|
|
@ -141,7 +141,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
|
|||
|
||||
public override bool NeedRename(TypeDef typeDef)
|
||||
{
|
||||
if (MetaUtil.IsScriptOrSerializableType(typeDef))
|
||||
if (MetaUtil.IsScriptType(typeDef))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
@ -163,7 +163,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus.Policies
|
|||
public override bool NeedRename(MethodDef methodDef)
|
||||
{
|
||||
TypeDef typeDef = methodDef.DeclaringType;
|
||||
if (MetaUtil.IsInheritFromUnityObject(typeDef) && s_monoBehaviourEvents.Contains(methodDef.Name))
|
||||
if (MetaUtil.IsInheritFromMonoBehaviour(typeDef) && s_monoBehaviourEvents.Contains(methodDef.Name))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ namespace Obfuz.Utils
|
|||
return null;
|
||||
}
|
||||
|
||||
public static bool IsInheritFromUnityObject(TypeDef typeDef)
|
||||
public static bool IsInheritFromMonoBehaviour(TypeDef typeDef)
|
||||
{
|
||||
TypeDef cur = typeDef;
|
||||
while (true)
|
||||
|
@ -126,7 +126,7 @@ namespace Obfuz.Utils
|
|||
{
|
||||
return false;
|
||||
}
|
||||
if (cur.Name == "Object" && cur.Namespace == "UnityEngine" && cur.Module.Name == "UnityEngine.CoreModule.dll")
|
||||
if (cur.Name == "MonoBehaviour" && cur.Namespace == "UnityEngine" && cur.Module.Name == "UnityEngine.CoreModule.dll")
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
@ -134,18 +134,8 @@ namespace Obfuz.Utils
|
|||
}
|
||||
|
||||
|
||||
|
||||
public static bool IsScriptOrSerializableType(TypeDef type)
|
||||
public static bool IsScriptType(TypeDef type)
|
||||
{
|
||||
if (type.ContainsGenericParameter)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (type.IsSerializable)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
for (TypeDef parentType = GetBaseTypeDef(type); parentType != null; parentType = GetBaseTypeDef(parentType))
|
||||
{
|
||||
if ((parentType.Name == "MonoBehaviour" || parentType.Name == "ScriptableObject")
|
||||
|
@ -159,6 +149,11 @@ namespace Obfuz.Utils
|
|||
return false;
|
||||
}
|
||||
|
||||
public static bool IsScriptOrSerializableType(TypeDef type)
|
||||
{
|
||||
return type.IsSerializable || IsScriptType(type);
|
||||
}
|
||||
|
||||
public static bool IsSerializableTypeSig(TypeSig typeSig)
|
||||
{
|
||||
typeSig = typeSig.RemovePinnedAndModifiers();
|
||||
|
|
Loading…
Reference in New Issue