diff --git a/Editor/BuildProcess/ObfuzProcess.cs b/Editor/BuildProcess/ObfuscationProcess.cs similarity index 96% rename from Editor/BuildProcess/ObfuzProcess.cs rename to Editor/BuildProcess/ObfuscationProcess.cs index eca66d7..ba0a92d 100644 --- a/Editor/BuildProcess/ObfuzProcess.cs +++ b/Editor/BuildProcess/ObfuscationProcess.cs @@ -7,16 +7,16 @@ using System.Threading.Tasks; using UnityEditor.Build; using UnityEditor; using UnityEditor.Build.Reporting; -using UnityEngine.SceneManagement; using UnityEngine; using UnityEditor.Compilation; -using System.Reflection; +using Obfuz.Utils; +using FileUtil = Obfuz.Utils.FileUtil; -namespace Obfuz +namespace Obfuz.BuildProcess { #if UNITY_2019_1_OR_NEWER - public class ObfuzProcess : IPreprocessBuildWithReport, IPostprocessBuildWithReport + public class ObfuscationProcess : IPreprocessBuildWithReport, IPostprocessBuildWithReport { private static bool s_obfuscated = false; diff --git a/Editor/Emit/RvaDataAllocator.cs b/Editor/Emit/RvaDataAllocator.cs index 78a4cdc..14434fa 100644 --- a/Editor/Emit/RvaDataAllocator.cs +++ b/Editor/Emit/RvaDataAllocator.cs @@ -72,7 +72,7 @@ namespace Obfuz.Emit if (_rvaTypeDef == null) { _module.EnableTypeDefFindCache = false; - //_rvaTypeDef = _module.Find("$ObfuzRVA$", false); + //_rvaTypeDef = _module.Find("$ObfuzRVA$", true); //if (_rvaTypeDef != null) //{ // throw new Exception($"can't obfuscate a obfuscated assembly"); diff --git a/Editor/Menus/HybridCLRMenu.cs b/Editor/Menus/HybridCLRMenu.cs deleted file mode 100644 index 08348d9..0000000 --- a/Editor/Menus/HybridCLRMenu.cs +++ /dev/null @@ -1,16 +0,0 @@ - -#if USE_HYBRIDCLR -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Obfuz.Menus -{ - public static class HybridCLRMenu - { - } -} - -#endif \ No newline at end of file diff --git a/Editor/ProxyCall/ConfigProxyCallPolicy.cs b/Editor/ObfusPass/CallObfus/ConfigProxyCallPolicy.cs similarity index 100% rename from Editor/ProxyCall/ConfigProxyCallPolicy.cs rename to Editor/ObfusPass/CallObfus/ConfigProxyCallPolicy.cs diff --git a/Editor/ProxyCall/DefaultProxyCallObfuscator.cs b/Editor/ObfusPass/CallObfus/DefaultProxyCallObfuscator.cs similarity index 100% rename from Editor/ProxyCall/DefaultProxyCallObfuscator.cs rename to Editor/ObfusPass/CallObfus/DefaultProxyCallObfuscator.cs diff --git a/Editor/ProxyCall/IProxyCallObfuscator.cs b/Editor/ObfusPass/CallObfus/IProxyCallObfuscator.cs similarity index 100% rename from Editor/ProxyCall/IProxyCallObfuscator.cs rename to Editor/ObfusPass/CallObfus/IProxyCallObfuscator.cs diff --git a/Editor/ProxyCall/IProxyCallPolicy.cs b/Editor/ObfusPass/CallObfus/IProxyCallPolicy.cs similarity index 100% rename from Editor/ProxyCall/IProxyCallPolicy.cs rename to Editor/ObfusPass/CallObfus/IProxyCallPolicy.cs diff --git a/Editor/ProxyCall/ProxyCallObfuscatorBase.cs b/Editor/ObfusPass/CallObfus/ProxyCallObfuscatorBase.cs similarity index 100% rename from Editor/ProxyCall/ProxyCallObfuscatorBase.cs rename to Editor/ObfusPass/CallObfus/ProxyCallObfuscatorBase.cs diff --git a/Editor/ProxyCall/ProxyCallPass.cs b/Editor/ObfusPass/CallObfus/ProxyCallPass.cs similarity index 95% rename from Editor/ProxyCall/ProxyCallPass.cs rename to Editor/ObfusPass/CallObfus/ProxyCallPass.cs index 622db9f..9e80e89 100644 --- a/Editor/ProxyCall/ProxyCallPass.cs +++ b/Editor/ObfusPass/CallObfus/ProxyCallPass.cs @@ -25,12 +25,12 @@ namespace Obfuz.DynamicProxy _dynamicProxyObfuscator = new DefaultProxyCallObfuscator(_random); } - public override void Stop(ObfuscatorContext ctx) + public override void Stop(ObfuscationPassContext ctx) { _dynamicProxyObfuscator.Done(); } - public override void Start(ObfuscatorContext ctx) + public override void Start(ObfuscationPassContext ctx) { } diff --git a/Editor/ProxyCall/ProxyCallPolicyBase.cs b/Editor/ObfusPass/CallObfus/ProxyCallPolicyBase.cs similarity index 100% rename from Editor/ProxyCall/ProxyCallPolicyBase.cs rename to Editor/ObfusPass/CallObfus/ProxyCallPolicyBase.cs diff --git a/Editor/CleanUpInstructionPass.cs b/Editor/ObfusPass/CleanUp/CleanUpInstructionPass.cs similarity index 83% rename from Editor/CleanUpInstructionPass.cs rename to Editor/ObfusPass/CleanUp/CleanUpInstructionPass.cs index 9e75b6f..17eb9ca 100644 --- a/Editor/CleanUpInstructionPass.cs +++ b/Editor/ObfusPass/CleanUp/CleanUpInstructionPass.cs @@ -10,16 +10,16 @@ namespace Obfuz { public class CleanUpInstructionPass : ObfuscationPassBase { - public override void Start(ObfuscatorContext ctx) + public override void Start(ObfuscationPassContext ctx) { } - public override void Stop(ObfuscatorContext ctx) + public override void Stop(ObfuscationPassContext ctx) { } - public override void Process(ObfuscatorContext ctx) + public override void Process(ObfuscationPassContext ctx) { foreach (ModuleDef mod in ctx.toObfuscatedModules) { diff --git a/Editor/Virtualization/ConfigDataObfuscationPolicy.cs b/Editor/ObfusPass/ConstObfus/ConfigDataObfuscationPolicy.cs similarity index 100% rename from Editor/Virtualization/ConfigDataObfuscationPolicy.cs rename to Editor/ObfusPass/ConstObfus/ConfigDataObfuscationPolicy.cs diff --git a/Editor/Virtualization/DataObfuscationPolicyBase.cs b/Editor/ObfusPass/ConstObfus/DataObfuscationPolicyBase.cs similarity index 100% rename from Editor/Virtualization/DataObfuscationPolicyBase.cs rename to Editor/ObfusPass/ConstObfus/DataObfuscationPolicyBase.cs diff --git a/Editor/Virtualization/DataVirtualizationPass.cs b/Editor/ObfusPass/ConstObfus/DataVirtualizationPass.cs similarity index 97% rename from Editor/Virtualization/DataVirtualizationPass.cs rename to Editor/ObfusPass/ConstObfus/DataVirtualizationPass.cs index 755ae47..e0f1713 100644 --- a/Editor/Virtualization/DataVirtualizationPass.cs +++ b/Editor/ObfusPass/ConstObfus/DataVirtualizationPass.cs @@ -16,13 +16,13 @@ namespace Obfuz.Virtualization private IDataObfuscationPolicy _dataObfuscatorPolicy; private IDataObfuscator _dataObfuscator; - public override void Start(ObfuscatorContext ctx) + public override void Start(ObfuscationPassContext ctx) { _dataObfuscatorPolicy = new ConfigDataObfuscationPolicy(); _dataObfuscator = new DefaultDataObfuscator(); } - public override void Stop(ObfuscatorContext ctx) + public override void Stop(ObfuscationPassContext ctx) { _dataObfuscator.Done(); } diff --git a/Editor/Virtualization/DefaultDataObfuscator.cs b/Editor/ObfusPass/ConstObfus/DefaultDataObfuscator.cs similarity index 100% rename from Editor/Virtualization/DefaultDataObfuscator.cs rename to Editor/ObfusPass/ConstObfus/DefaultDataObfuscator.cs diff --git a/Editor/Virtualization/IDataObfuscationPolicy.cs b/Editor/ObfusPass/ConstObfus/IDataObfuscationPolicy.cs similarity index 100% rename from Editor/Virtualization/IDataObfuscationPolicy.cs rename to Editor/ObfusPass/ConstObfus/IDataObfuscationPolicy.cs diff --git a/Editor/Virtualization/IDataObfuscator.cs b/Editor/ObfusPass/ConstObfus/IDataObfuscator.cs similarity index 100% rename from Editor/Virtualization/IDataObfuscator.cs rename to Editor/ObfusPass/ConstObfus/IDataObfuscator.cs diff --git a/Editor/ExprObfuscation/ExprObfuscationPass.cs b/Editor/ObfusPass/ExprObfus/ExprObfuscationPass.cs similarity index 82% rename from Editor/ExprObfuscation/ExprObfuscationPass.cs rename to Editor/ObfusPass/ExprObfus/ExprObfuscationPass.cs index c304fb9..72c6879 100644 --- a/Editor/ExprObfuscation/ExprObfuscationPass.cs +++ b/Editor/ObfusPass/ExprObfus/ExprObfuscationPass.cs @@ -6,18 +6,18 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz.ExprObfuscation +namespace Obfuz.ExprObfus { public class ExprObfuscationPass : MethodBodyObfuscationPassBase { - public override void Start(ObfuscatorContext ctx) + public override void Start(ObfuscationPassContext ctx) { } - public override void Stop(ObfuscatorContext ctx) + public override void Stop(ObfuscationPassContext ctx) { } diff --git a/Editor/IObfuscationPass.cs b/Editor/ObfusPass/IObfuscationPass.cs similarity index 56% rename from Editor/IObfuscationPass.cs rename to Editor/ObfusPass/IObfuscationPass.cs index 929573b..6d1acb4 100644 --- a/Editor/IObfuscationPass.cs +++ b/Editor/ObfusPass/IObfuscationPass.cs @@ -8,10 +8,10 @@ namespace Obfuz { public interface IObfuscationPass { - void Start(ObfuscatorContext ctx); + void Start(ObfuscationPassContext ctx); - void Stop(ObfuscatorContext ctx); + void Stop(ObfuscationPassContext ctx); - void Process(ObfuscatorContext ctx); + void Process(ObfuscationPassContext ctx); } } diff --git a/Editor/MemEncrypt/ConfigEncryptionPolicy.cs b/Editor/ObfusPass/MemEncrypt/ConfigEncryptionPolicy.cs similarity index 100% rename from Editor/MemEncrypt/ConfigEncryptionPolicy.cs rename to Editor/ObfusPass/MemEncrypt/ConfigEncryptionPolicy.cs diff --git a/Editor/MemEncrypt/DefaultMemoryEncryptor.cs b/Editor/ObfusPass/MemEncrypt/DefaultMemoryEncryptor.cs similarity index 100% rename from Editor/MemEncrypt/DefaultMemoryEncryptor.cs rename to Editor/ObfusPass/MemEncrypt/DefaultMemoryEncryptor.cs diff --git a/Editor/MemEncrypt/EncryptionPolicyBase.cs b/Editor/ObfusPass/MemEncrypt/EncryptionPolicyBase.cs similarity index 100% rename from Editor/MemEncrypt/EncryptionPolicyBase.cs rename to Editor/ObfusPass/MemEncrypt/EncryptionPolicyBase.cs diff --git a/Editor/MemEncrypt/IEncryptionPolicy.cs b/Editor/ObfusPass/MemEncrypt/IEncryptionPolicy.cs similarity index 100% rename from Editor/MemEncrypt/IEncryptionPolicy.cs rename to Editor/ObfusPass/MemEncrypt/IEncryptionPolicy.cs diff --git a/Editor/MemEncrypt/IMemoryEncryptor.cs b/Editor/ObfusPass/MemEncrypt/IMemoryEncryptor.cs similarity index 100% rename from Editor/MemEncrypt/IMemoryEncryptor.cs rename to Editor/ObfusPass/MemEncrypt/IMemoryEncryptor.cs diff --git a/Editor/MemEncrypt/MemoryEncryptionPass.cs b/Editor/ObfusPass/MemEncrypt/MemoryEncryptionPass.cs similarity index 95% rename from Editor/MemEncrypt/MemoryEncryptionPass.cs rename to Editor/ObfusPass/MemEncrypt/MemoryEncryptionPass.cs index be15fd2..6c3765d 100644 --- a/Editor/MemEncrypt/MemoryEncryptionPass.cs +++ b/Editor/ObfusPass/MemEncrypt/MemoryEncryptionPass.cs @@ -14,12 +14,12 @@ namespace Obfuz.MemEncrypt private readonly IEncryptionPolicy _encryptionPolicy = new ConfigEncryptionPolicy(); private readonly IMemoryEncryptor _memoryEncryptor = new DefaultMemoryEncryptor(); - public override void Start(ObfuscatorContext ctx) + public override void Start(ObfuscationPassContext ctx) { } - public override void Stop(ObfuscatorContext ctx) + public override void Stop(ObfuscationPassContext ctx) { } diff --git a/Editor/MemEncrypt/MemoryEncryptorBase.cs b/Editor/ObfusPass/MemEncrypt/MemoryEncryptorBase.cs similarity index 100% rename from Editor/MemEncrypt/MemoryEncryptorBase.cs rename to Editor/ObfusPass/MemEncrypt/MemoryEncryptorBase.cs diff --git a/Editor/MethodBodyObfuscationPassBase.cs b/Editor/ObfusPass/MethodBodyObfuscationPassBase.cs similarity index 97% rename from Editor/MethodBodyObfuscationPassBase.cs rename to Editor/ObfusPass/MethodBodyObfuscationPassBase.cs index 5b374d0..46f33dd 100644 --- a/Editor/MethodBodyObfuscationPassBase.cs +++ b/Editor/ObfusPass/MethodBodyObfuscationPassBase.cs @@ -9,7 +9,7 @@ namespace Obfuz { protected abstract bool NeedObfuscateMethod(MethodDef method); - public override void Process(ObfuscatorContext ctx) + public override void Process(ObfuscationPassContext ctx) { foreach (ModuleDef mod in ctx.toObfuscatedModules) { diff --git a/Editor/ObfusPass/ObfuscationPassBase.cs b/Editor/ObfusPass/ObfuscationPassBase.cs new file mode 100644 index 0000000..b999d69 --- /dev/null +++ b/Editor/ObfusPass/ObfuscationPassBase.cs @@ -0,0 +1,13 @@ +using Obfuz.Emit; + +namespace Obfuz +{ + public abstract class ObfuscationPassBase : IObfuscationPass + { + public abstract void Start(ObfuscationPassContext ctx); + + public abstract void Stop(ObfuscationPassContext ctx); + + public abstract void Process(ObfuscationPassContext ctx); + } +} diff --git a/Editor/ObfuscatorContext.cs b/Editor/ObfusPass/ObfuscationPassContext.cs similarity index 90% rename from Editor/ObfuscatorContext.cs rename to Editor/ObfusPass/ObfuscationPassContext.cs index 06ed063..e15b91a 100644 --- a/Editor/ObfuscatorContext.cs +++ b/Editor/ObfusPass/ObfuscationPassContext.cs @@ -1,5 +1,6 @@ using dnlib.DotNet; using Obfuz.Rename; +using Obfuz.Utils; using System; using System.Collections.Generic; using System.Linq; @@ -9,7 +10,7 @@ using System.Threading.Tasks; namespace Obfuz { - public class ObfuscatorContext + public class ObfuscationPassContext { public AssemblyCache assemblyCache; diff --git a/Editor/Rename/CacheRenamePolicy.cs b/Editor/ObfusPass/SymbolObfus/CacheRenamePolicy.cs similarity index 100% rename from Editor/Rename/CacheRenamePolicy.cs rename to Editor/ObfusPass/SymbolObfus/CacheRenamePolicy.cs diff --git a/Editor/Rename/CombineRenamePolicy.cs b/Editor/ObfusPass/SymbolObfus/CombineRenamePolicy.cs similarity index 100% rename from Editor/Rename/CombineRenamePolicy.cs rename to Editor/ObfusPass/SymbolObfus/CombineRenamePolicy.cs diff --git a/Editor/Rename/INameMaker.cs b/Editor/ObfusPass/SymbolObfus/INameMaker.cs similarity index 100% rename from Editor/Rename/INameMaker.cs rename to Editor/ObfusPass/SymbolObfus/INameMaker.cs diff --git a/Editor/Rename/INameScope.cs b/Editor/ObfusPass/SymbolObfus/INameScope.cs similarity index 100% rename from Editor/Rename/INameScope.cs rename to Editor/ObfusPass/SymbolObfus/INameScope.cs diff --git a/Editor/Rename/IRenamePolicy.cs b/Editor/ObfusPass/SymbolObfus/IRenamePolicy.cs similarity index 100% rename from Editor/Rename/IRenamePolicy.cs rename to Editor/ObfusPass/SymbolObfus/IRenamePolicy.cs diff --git a/Editor/Rename/NameMaker.cs b/Editor/ObfusPass/SymbolObfus/NameMaker.cs similarity index 100% rename from Editor/Rename/NameMaker.cs rename to Editor/ObfusPass/SymbolObfus/NameMaker.cs diff --git a/Editor/Rename/NameMakerBase.cs b/Editor/ObfusPass/SymbolObfus/NameMakerBase.cs similarity index 100% rename from Editor/Rename/NameMakerBase.cs rename to Editor/ObfusPass/SymbolObfus/NameMakerBase.cs diff --git a/Editor/Rename/NameMakerFactory.cs b/Editor/ObfusPass/SymbolObfus/NameMakerFactory.cs similarity index 100% rename from Editor/Rename/NameMakerFactory.cs rename to Editor/ObfusPass/SymbolObfus/NameMakerFactory.cs diff --git a/Editor/Rename/NameScope.cs b/Editor/ObfusPass/SymbolObfus/NameScope.cs similarity index 100% rename from Editor/Rename/NameScope.cs rename to Editor/ObfusPass/SymbolObfus/NameScope.cs diff --git a/Editor/Rename/NameScopeBase.cs b/Editor/ObfusPass/SymbolObfus/NameScopeBase.cs similarity index 100% rename from Editor/Rename/NameScopeBase.cs rename to Editor/ObfusPass/SymbolObfus/NameScopeBase.cs diff --git a/Editor/Rename/ObfuscateRuleConfig.cs b/Editor/ObfusPass/SymbolObfus/ObfuscateRuleConfig.cs similarity index 99% rename from Editor/Rename/ObfuscateRuleConfig.cs rename to Editor/ObfusPass/SymbolObfus/ObfuscateRuleConfig.cs index 88ecff7..4b79803 100644 --- a/Editor/Rename/ObfuscateRuleConfig.cs +++ b/Editor/ObfusPass/SymbolObfus/ObfuscateRuleConfig.cs @@ -1,5 +1,6 @@ using dnlib.DotNet; using Obfuz.Rename; +using Obfuz.Utils; using System; using System.Collections.Generic; using System.Linq; diff --git a/Editor/Rename/RenamePolicyBase.cs b/Editor/ObfusPass/SymbolObfus/RenamePolicyBase.cs similarity index 100% rename from Editor/Rename/RenamePolicyBase.cs rename to Editor/ObfusPass/SymbolObfus/RenamePolicyBase.cs diff --git a/Editor/Rename/RenameRecordMap.cs b/Editor/ObfusPass/SymbolObfus/RenameRecordMap.cs similarity index 100% rename from Editor/Rename/RenameRecordMap.cs rename to Editor/ObfusPass/SymbolObfus/RenameRecordMap.cs diff --git a/Editor/Rename/RenameSymbolPass.cs b/Editor/ObfusPass/SymbolObfus/RenameSymbolPass.cs similarity index 76% rename from Editor/Rename/RenameSymbolPass.cs rename to Editor/ObfusPass/SymbolObfus/RenameSymbolPass.cs index b9d6e7f..6de4c9a 100644 --- a/Editor/Rename/RenameSymbolPass.cs +++ b/Editor/ObfusPass/SymbolObfus/RenameSymbolPass.cs @@ -15,17 +15,17 @@ namespace Obfuz.Rename _symbolRename = new SymbolRename(mappingXmlPath, obfuscationRuleFiles); } - public override void Start(ObfuscatorContext ctx) + public override void Start(ObfuscationPassContext ctx) { _symbolRename.Init(ctx); } - public override void Stop(ObfuscatorContext ctx) + public override void Stop(ObfuscationPassContext ctx) { _symbolRename.Save(); } - public override void Process(ObfuscatorContext ctx) + public override void Process(ObfuscationPassContext ctx) { _symbolRename.Process(); } diff --git a/Editor/Rename/SymbolRename.cs b/Editor/ObfusPass/SymbolObfus/SymbolRename.cs similarity index 99% rename from Editor/Rename/SymbolRename.cs rename to Editor/ObfusPass/SymbolObfus/SymbolRename.cs index 796bba3..3414245 100644 --- a/Editor/Rename/SymbolRename.cs +++ b/Editor/ObfusPass/SymbolObfus/SymbolRename.cs @@ -61,7 +61,7 @@ namespace Obfuz _virtualMethodGroupCalculator = new VirtualMethodGroupCalculator(); } - public void Init(ObfuscatorContext ctx) + public void Init(ObfuscationPassContext ctx) { _assemblyCache = ctx.assemblyCache; _toObfuscatedModules = ctx.toObfuscatedModules; @@ -75,7 +75,7 @@ namespace Obfuz BuildCustomAttributeArguments(); } - private static List BuildAssemblyReferenceInfos(ObfuscatorContext ctx) + private static List BuildAssemblyReferenceInfos(ObfuscationPassContext ctx) { var obfuzAssemblies = new List(); foreach (ModuleDef mod in ctx.obfuscatedAndNotObfuscatedModules) diff --git a/Editor/Rename/SystemRenamePolicy.cs b/Editor/ObfusPass/SymbolObfus/SystemRenamePolicy.cs similarity index 100% rename from Editor/Rename/SystemRenamePolicy.cs rename to Editor/ObfusPass/SymbolObfus/SystemRenamePolicy.cs diff --git a/Editor/Rename/TestNameMaker.cs b/Editor/ObfusPass/SymbolObfus/TestNameMaker.cs similarity index 86% rename from Editor/Rename/TestNameMaker.cs rename to Editor/ObfusPass/SymbolObfus/TestNameMaker.cs index d2472a7..686946a 100644 --- a/Editor/Rename/TestNameMaker.cs +++ b/Editor/ObfusPass/SymbolObfus/TestNameMaker.cs @@ -9,7 +9,7 @@ namespace Obfuz.Rename private int _nextIndex; protected override void BuildNewName(StringBuilder nameBuilder, string originalName) { - nameBuilder.Append($"{originalName}>{_nextIndex++}"); + nameBuilder.Append($"<{originalName}>{_nextIndex++}"); } } diff --git a/Editor/Rename/UnityRenamePolicy.cs b/Editor/ObfusPass/SymbolObfus/UnityRenamePolicy.cs similarity index 100% rename from Editor/Rename/UnityRenamePolicy.cs rename to Editor/ObfusPass/SymbolObfus/UnityRenamePolicy.cs diff --git a/Editor/Rename/VirtualMethodGroupCalculator.cs b/Editor/ObfusPass/SymbolObfus/VirtualMethodGroupCalculator.cs similarity index 100% rename from Editor/Rename/VirtualMethodGroupCalculator.cs rename to Editor/ObfusPass/SymbolObfus/VirtualMethodGroupCalculator.cs diff --git a/Editor/ObfuscationPassBase.cs b/Editor/ObfuscationPassBase.cs deleted file mode 100644 index ee6d99c..0000000 --- a/Editor/ObfuscationPassBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Obfuz.Emit; - -namespace Obfuz -{ - public abstract class ObfuscationPassBase : IObfuscationPass - { - public abstract void Start(ObfuscatorContext ctx); - - public abstract void Stop(ObfuscatorContext ctx); - - public abstract void Process(ObfuscatorContext ctx); - } -} diff --git a/Editor/Obfuscator.cs b/Editor/Obfuscator.cs index 5bc0640..5ef9ea4 100644 --- a/Editor/Obfuscator.cs +++ b/Editor/Obfuscator.cs @@ -1,5 +1,6 @@ using dnlib.DotNet; using Obfuz.Emit; +using Obfuz.Utils; using System; using System.Collections.Generic; using System.IO; @@ -21,9 +22,9 @@ namespace Obfuz private readonly List _toObfuscatedModules = new List(); private readonly List _obfuscatedAndNotObfuscatedModules = new List(); - private readonly ObfuzPipeline _pipeline = new ObfuzPipeline(); + private readonly Pipeline _pipeline = new Pipeline(); - private ObfuscatorContext _ctx; + private ObfuscationPassContext _ctx; public Obfuscator(List toObfuscatedAssemblyNames, List notObfuscatedAssemblyNamesReferencingObfuscated, @@ -43,8 +44,6 @@ namespace Obfuz } _pipeline.AddPass(new CleanUpInstructionPass()); - - } public void Run() @@ -58,8 +57,7 @@ namespace Obfuz { LoadAssemblies(); - - _ctx = new ObfuscatorContext + _ctx = new ObfuscationPassContext { assemblyCache = _assemblyCache, toObfuscatedModules = _toObfuscatedModules, diff --git a/Editor/ObfuscatorBuilder.cs b/Editor/ObfuscatorBuilder.cs index 8bf4810..75febea 100644 --- a/Editor/ObfuscatorBuilder.cs +++ b/Editor/ObfuscatorBuilder.cs @@ -1,11 +1,11 @@ using Obfuz.DynamicProxy; -using Obfuz.ExprObfuscation; using Obfuz.MemEncrypt; using Obfuz.Rename; using System.Collections.Generic; using System.Linq; using Obfuz.Virtualization; using UnityEditor; +using Obfuz.ExprObfus; namespace Obfuz { diff --git a/Editor/ObfuzPipeline.cs b/Editor/Pipeline.cs similarity index 71% rename from Editor/ObfuzPipeline.cs rename to Editor/Pipeline.cs index b87acb1..08d9ae1 100644 --- a/Editor/ObfuzPipeline.cs +++ b/Editor/Pipeline.cs @@ -2,17 +2,17 @@ namespace Obfuz { - public class ObfuzPipeline + public class Pipeline { private readonly List _passes = new List(); - public ObfuzPipeline AddPass(IObfuscationPass pass) + public Pipeline AddPass(IObfuscationPass pass) { _passes.Add(pass); return this; } - public void Start(ObfuscatorContext ctx) + public void Start(ObfuscationPassContext ctx) { foreach (var pass in _passes) { @@ -20,7 +20,7 @@ namespace Obfuz } } - public void Stop(ObfuscatorContext ctx) + public void Stop(ObfuscationPassContext ctx) { foreach (var pass in _passes) @@ -29,7 +29,7 @@ namespace Obfuz } } - public void Run(ObfuscatorContext ctx) + public void Run(ObfuscationPassContext ctx) { foreach (var pass in _passes) { diff --git a/Editor/Settings/EditorStatusWatcher.cs b/Editor/Settings/EditorStatusWatcher.cs deleted file mode 100644 index bca43e3..0000000 --- a/Editor/Settings/EditorStatusWatcher.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using UnityEditor; -using UnityEditorInternal; - -namespace Obfuz -{ - - [InitializeOnLoad] - public static class EditorStatusWatcher - { - public static Action OnEditorFocused; - static bool isFocused; - static EditorStatusWatcher() => EditorApplication.update += Update; - static void Update() - { - if (isFocused != InternalEditorUtility.isApplicationActive) - { - isFocused = InternalEditorUtility.isApplicationActive; - if (isFocused) - { - _ = ObfuzSettings.Instance; - OnEditorFocused?.Invoke(); - } - } - } - } - -} \ No newline at end of file diff --git a/Editor/Settings/ObfuzSettingProvider.cs b/Editor/Settings/ObfuzSettingsProvider.cs similarity index 62% rename from Editor/Settings/ObfuzSettingProvider.cs rename to Editor/Settings/ObfuzSettingsProvider.cs index 9a486dd..618ff54 100644 --- a/Editor/Settings/ObfuzSettingProvider.cs +++ b/Editor/Settings/ObfuzSettingsProvider.cs @@ -42,10 +42,15 @@ namespace Obfuz public override void OnActivate(string searchContext, VisualElement rootElement) { - EditorStatusWatcher.OnEditorFocused += OnEditorFocused; InitGUI(); } + public override void OnDeactivate() + { + base.OnDeactivate(); + ObfuzSettings.Save(); + } + private void InitGUI() { var setting = ObfuzSettings.Instance; @@ -60,51 +65,28 @@ namespace Obfuz _extraAssemblySearchDirs = _serializedObject.FindProperty("extraAssemblySearchDirs"); } - private void OnEditorFocused() - { - InitGUI(); - Repaint(); - } - public override void OnGUI(string searchContext) { - using (CreateSettingsWindowGUIScope()) + if (_serializedObject == null||!_serializedObject.targetObject) { - if (_serializedObject == null||!_serializedObject.targetObject) - { - InitGUI(); - } - _serializedObject.Update(); - EditorGUI.BeginChangeCheck(); - - EditorGUILayout.PropertyField(_enable); - EditorGUILayout.PropertyField(_toObfuscatedAssemblyNames); - EditorGUILayout.PropertyField(_notObfuscatedAssemblyNamesReferencingObfuscated); - EditorGUILayout.PropertyField(_enabledObfuscationPasses); - EditorGUILayout.PropertyField(_mappingFile); - EditorGUILayout.PropertyField(_ruleFiles); - EditorGUILayout.PropertyField(_extraAssemblySearchDirs); - - if (EditorGUI.EndChangeCheck()) - { - _serializedObject.ApplyModifiedProperties(); - ObfuzSettings.Save(); - } + InitGUI(); } - } + _serializedObject.Update(); + EditorGUI.BeginChangeCheck(); - private IDisposable CreateSettingsWindowGUIScope() - { - var unityEditorAssembly = Assembly.GetAssembly(typeof(EditorWindow)); - var type = unityEditorAssembly.GetType("UnityEditor.SettingsWindow+GUIScope"); - return Activator.CreateInstance(type) as IDisposable; - } + EditorGUILayout.PropertyField(_enable); + EditorGUILayout.PropertyField(_toObfuscatedAssemblyNames); + EditorGUILayout.PropertyField(_notObfuscatedAssemblyNamesReferencingObfuscated); + EditorGUILayout.PropertyField(_enabledObfuscationPasses); + EditorGUILayout.PropertyField(_mappingFile); + EditorGUILayout.PropertyField(_ruleFiles); + EditorGUILayout.PropertyField(_extraAssemblySearchDirs); - public override void OnDeactivate() - { - base.OnDeactivate(); - EditorStatusWatcher.OnEditorFocused -= OnEditorFocused; - ObfuzSettings.Save(); + if (EditorGUI.EndChangeCheck()) + { + _serializedObject.ApplyModifiedProperties(); + ObfuzSettings.Save(); + } } } } \ No newline at end of file diff --git a/Editor/Utils/AssemblyCache.cs b/Editor/Utils/AssemblyCache.cs index 7a90557..ecaa587 100644 --- a/Editor/Utils/AssemblyCache.cs +++ b/Editor/Utils/AssemblyCache.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz +namespace Obfuz.Utils { public class AssemblyCache { diff --git a/Editor/Utils/AssemblyResolverBase.cs b/Editor/Utils/AssemblyResolverBase.cs index 108d5d5..7eb9491 100644 --- a/Editor/Utils/AssemblyResolverBase.cs +++ b/Editor/Utils/AssemblyResolverBase.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz +namespace Obfuz.Utils { public abstract class AssemblyResolverBase : IAssemblyResolver { diff --git a/Editor/Utils/CollectionExtensions.cs b/Editor/Utils/CollectionExtensions.cs index 5e15545..f7165ab 100644 --- a/Editor/Utils/CollectionExtensions.cs +++ b/Editor/Utils/CollectionExtensions.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz +namespace Obfuz.Utils { public static class CollectionExtensions { @@ -16,7 +16,7 @@ namespace Obfuz } } - public static V GetValueOrDefault(this IDictionary dic, K key) + public static V GetValueOrDefault(this Dictionary dic, K key) { return dic.TryGetValue(key, out V v) ? v : default(V); } diff --git a/Editor/Utils/FileUtil.cs b/Editor/Utils/FileUtil.cs index 97843b5..b400d20 100644 --- a/Editor/Utils/FileUtil.cs +++ b/Editor/Utils/FileUtil.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading; using System.Threading.Tasks; -namespace Obfuz +namespace Obfuz.Utils { public static class FileUtil { diff --git a/Editor/Utils/HashUtil.cs b/Editor/Utils/HashUtil.cs index 6d858d5..64b1795 100644 --- a/Editor/Utils/HashUtil.cs +++ b/Editor/Utils/HashUtil.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz +namespace Obfuz.Utils { public static class HashUtil { diff --git a/Editor/Utils/IAssemblyResolver.cs b/Editor/Utils/IAssemblyResolver.cs index 0bf1d4f..4a7578a 100644 --- a/Editor/Utils/IAssemblyResolver.cs +++ b/Editor/Utils/IAssemblyResolver.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz +namespace Obfuz.Utils { public interface IAssemblyResolver { diff --git a/Editor/Utils/MetaUtil.cs b/Editor/Utils/MetaUtil.cs index 79865fa..f61ab97 100644 --- a/Editor/Utils/MetaUtil.cs +++ b/Editor/Utils/MetaUtil.cs @@ -11,12 +11,6 @@ using UnityEngine.UIElements; namespace Obfuz.Utils { - public enum ThisArgType - { - None, - ValueType, - Class, - } public static class MetaUtil { diff --git a/Editor/Utils/NameMatcher.cs b/Editor/Utils/NameMatcher.cs index 56cc2a1..ea06a66 100644 --- a/Editor/Utils/NameMatcher.cs +++ b/Editor/Utils/NameMatcher.cs @@ -1,6 +1,6 @@ using System.Text.RegularExpressions; -namespace Obfuz +namespace Obfuz.Utils { public class NameMatcher { diff --git a/Editor/Utils/PathAssemblyResolver.cs b/Editor/Utils/PathAssemblyResolver.cs index 2ec6593..6b6a123 100644 --- a/Editor/Utils/PathAssemblyResolver.cs +++ b/Editor/Utils/PathAssemblyResolver.cs @@ -6,7 +6,7 @@ using System.Text; using System.Threading.Tasks; using UnityEngine; -namespace Obfuz +namespace Obfuz.Utils { public class PathAssemblyResolver : AssemblyResolverBase { diff --git a/Editor/Utils/ThisArgType.cs b/Editor/Utils/ThisArgType.cs new file mode 100644 index 0000000..3f008cc --- /dev/null +++ b/Editor/Utils/ThisArgType.cs @@ -0,0 +1,9 @@ +namespace Obfuz.Utils +{ + public enum ThisArgType + { + None, + ValueType, + Class, + } +} diff --git a/Editor/Utils/TypeSigUtil.cs b/Editor/Utils/TypeSigUtil.cs index 5240697..e016d8c 100644 --- a/Editor/Utils/TypeSigUtil.cs +++ b/Editor/Utils/TypeSigUtil.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz +namespace Obfuz.Utils { public static class TypeSigUtil {