obfuz/Editor/Settings/CallObfuscationSettings.cs

54 lines
1.7 KiB
C#
Raw Normal View History

using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Obfuz.Settings
{
2025-07-01 18:46:09 +08:00
public enum ProxyMode
{
Dispatch,
Delegate,
}
public class CallObfuscationSettingsFacade
{
2025-07-01 18:46:09 +08:00
public ProxyMode proxyMode;
public int obfuscationLevel;
public int maxProxyMethodCountPerDispatchMethod;
public bool obfuscateCallToMethodInMscorlib;
2025-07-01 18:46:09 +08:00
public List<string> ruleFiles;
}
[Serializable]
public class CallObfuscationSettings
{
2025-07-01 18:46:09 +08:00
public ProxyMode proxyMode = ProxyMode.Dispatch;
[Tooltip("The obfuscation level for the obfuscation. Higher levels provide more security but may impact performance.")]
[Range(1, 4)]
public int obfuscationLevel = 1;
[Tooltip("The maximum number of proxy methods that can be generated per dispatch method. This helps to limit the complexity of the generated code and improve performance.")]
public int maxProxyMethodCountPerDispatchMethod = 100;
2025-07-01 18:46:09 +08:00
[Tooltip("Whether to obfuscate calls to methods in mscorlib. Enable this option will impact performance.")]
public bool obfuscateCallToMethodInMscorlib;
[Tooltip("rule config xml files")]
public string[] ruleFiles;
public CallObfuscationSettingsFacade ToFacade()
{
return new CallObfuscationSettingsFacade
{
2025-07-01 18:46:09 +08:00
proxyMode = proxyMode,
obfuscationLevel = obfuscationLevel,
maxProxyMethodCountPerDispatchMethod = maxProxyMethodCountPerDispatchMethod,
obfuscateCallToMethodInMscorlib = obfuscateCallToMethodInMscorlib,
2025-07-01 18:46:09 +08:00
ruleFiles = ruleFiles?.ToList() ?? new List<string>(),
};
}
}
}