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