diff --git a/Editor/Settings/AssemblySettings.cs b/Editor/Settings/AssemblySettings.cs index fb0c6b6..9792351 100644 --- a/Editor/Settings/AssemblySettings.cs +++ b/Editor/Settings/AssemblySettings.cs @@ -5,7 +5,6 @@ using UnityEngine; namespace Obfuz.Settings { - [Serializable] public class AssemblySettings { diff --git a/Editor/Settings/ObfuzSettings.cs b/Editor/Settings/ObfuzSettings.cs index 7ee3af8..19fbe3c 100644 --- a/Editor/Settings/ObfuzSettings.cs +++ b/Editor/Settings/ObfuzSettings.cs @@ -47,6 +47,9 @@ namespace Obfuz.Settings [Tooltip("garbage code generator settings")] public GarbageCodeGenerationSettings garbageCodeGenerationSettings; + [Tooltip("polymorphic dll settings")] + public PolymorphicDllSettings polymorphicDllSettings; + public string ObfuzRootDir => $"Library/Obfuz"; public string GetObfuscatedAssemblyOutputPath(BuildTarget target) diff --git a/Editor/Settings/ObfuzSettingsProvider.cs b/Editor/Settings/ObfuzSettingsProvider.cs index c101aba..2b0afce 100644 --- a/Editor/Settings/ObfuzSettingsProvider.cs +++ b/Editor/Settings/ObfuzSettingsProvider.cs @@ -41,6 +41,8 @@ namespace Obfuz.Settings private SerializedProperty _garbageCodeGenerationSettings; + private SerializedProperty _polymorphicDllSettings; + public ObfuzSettingsProvider() : base("Project/Obfuz", SettingsScope.Project) { } @@ -78,6 +80,8 @@ namespace Obfuz.Settings _controlFlowObfusSettings = _serializedObject.FindProperty("controlFlowObfusSettings"); _garbageCodeGenerationSettings = _serializedObject.FindProperty("garbageCodeGenerationSettings"); + + _polymorphicDllSettings = _serializedObject.FindProperty("polymorphicDllSettings"); } public override void OnGUI(string searchContext) @@ -107,6 +111,8 @@ namespace Obfuz.Settings EditorGUILayout.PropertyField(_garbageCodeGenerationSettings); + EditorGUILayout.PropertyField(_polymorphicDllSettings); + if (EditorGUI.EndChangeCheck()) { _serializedObject.ApplyModifiedProperties(); diff --git a/Editor/Settings/PolymorphicDllSettings.cs b/Editor/Settings/PolymorphicDllSettings.cs new file mode 100644 index 0000000..e2d1180 --- /dev/null +++ b/Editor/Settings/PolymorphicDllSettings.cs @@ -0,0 +1,18 @@ +using System; +using UnityEngine; + +namespace Obfuz.Settings +{ + [Serializable] + public class PolymorphicDllSettings + { + [Tooltip("enable polymorphic DLL generation")] + public bool enable = true; + + [Tooltip("secret key for generating polymorphic DLL source code")] + public string codeGenerationSecretKey = "obfuz-polymorphic-key"; + + [Tooltip("disable load standard dotnet dll")] + public bool disableLoadStandardDll = false; + } +} diff --git a/Editor/Settings/PolymorphicDllSettings.cs.meta b/Editor/Settings/PolymorphicDllSettings.cs.meta new file mode 100644 index 0000000..f188589 --- /dev/null +++ b/Editor/Settings/PolymorphicDllSettings.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: ecab9aab707d08949b2d602a4d61084a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Plugins/dnlib.dll b/Plugins/dnlib.dll index ba1f36d..d6c2fd9 100644 Binary files a/Plugins/dnlib.dll and b/Plugins/dnlib.dll differ