obfuz/Editor/ObfusPass/MemEncrypt/ConfigEncryptionPolicy.cs

40 lines
1.0 KiB
C#
Raw Normal View History

2025-04-30 21:47:21 +08:00
using dnlib.DotNet;
namespace Obfuz.MemEncrypt
{
public class ConfigEncryptionPolicy : EncryptionPolicyBase
{
private bool IsSupportedFieldType(TypeSig type)
{
type = type.RemovePinnedAndModifiers();
switch (type.ElementType)
{
case ElementType.I4:
case ElementType.I8:
case ElementType.U4:
case ElementType.U8:
case ElementType.R4:
case ElementType.R8:
return true;
default: return false;
}
}
public override bool NeedEncrypt(FieldDef field)
{
TypeDef type = field.DeclaringType;
if (!IsSupportedFieldType(field.FieldType))
{
return false;
}
// TODO
if (type.Name == "EncryptField" || type.Name == "EncryptProperty")
{
return true;
}
return false;
}
}
}