diff --git a/Editor/ObfusPasses/IObfuscationPass.cs b/Editor/IObfuscationPass.cs similarity index 91% rename from Editor/ObfusPasses/IObfuscationPass.cs rename to Editor/IObfuscationPass.cs index 838669f..6d1acb4 100644 --- a/Editor/ObfusPasses/IObfuscationPass.cs +++ b/Editor/IObfuscationPass.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz.ObfusPasses +namespace Obfuz { public interface IObfuscationPass { diff --git a/Editor/ObfusPasses/ConstObfus/DataVirtualizationPass.cs b/Editor/ObfusPasses/ConstObfus/ConstObfusPass.cs similarity index 96% rename from Editor/ObfusPasses/ConstObfus/DataVirtualizationPass.cs rename to Editor/ObfusPasses/ConstObfus/ConstObfusPass.cs index 039d605..e3620ba 100644 --- a/Editor/ObfusPasses/ConstObfus/DataVirtualizationPass.cs +++ b/Editor/ObfusPasses/ConstObfus/ConstObfusPass.cs @@ -11,14 +11,14 @@ using UnityEngine.Assertions; namespace Obfuz.ObfusPasses.ConstObfus { - public class DataVirtualizationPass : InstructionObfuscationPassBase + public class ConstObfusPass : InstructionObfuscationPassBase { - private IDataObfuscationPolicy _dataObfuscatorPolicy; + private IConstObfuscationPolicy _dataObfuscatorPolicy; private IDataObfuscator _dataObfuscator; public override void Start(ObfuscationPassContext ctx) { - _dataObfuscatorPolicy = new ConfigDataObfuscationPolicy(); + _dataObfuscatorPolicy = new RuleBasedObfuscationPolicy(); _dataObfuscator = new DefaultDataObfuscator(); } diff --git a/Editor/ObfusPasses/ConstObfus/DataObfuscationPolicyBase.cs b/Editor/ObfusPasses/ConstObfus/ConstObfuscationPolicyBase.cs similarity index 92% rename from Editor/ObfusPasses/ConstObfus/DataObfuscationPolicyBase.cs rename to Editor/ObfusPasses/ConstObfus/ConstObfuscationPolicyBase.cs index 4316acb..43e36bf 100644 --- a/Editor/ObfusPasses/ConstObfus/DataObfuscationPolicyBase.cs +++ b/Editor/ObfusPasses/ConstObfus/ConstObfuscationPolicyBase.cs @@ -2,7 +2,7 @@ namespace Obfuz.ObfusPasses.ConstObfus { - public abstract class DataObfuscationPolicyBase : IDataObfuscationPolicy + public abstract class ConstObfuscationPolicyBase : IConstObfuscationPolicy { public virtual bool NeedObfuscateMethod(MethodDef method) { diff --git a/Editor/ObfusPasses/ConstObfus/IDataObfuscationPolicy.cs b/Editor/ObfusPasses/ConstObfus/IConstObfuscationPolicy.cs similarity index 93% rename from Editor/ObfusPasses/ConstObfus/IDataObfuscationPolicy.cs rename to Editor/ObfusPasses/ConstObfus/IConstObfuscationPolicy.cs index 66e42af..e32a861 100644 --- a/Editor/ObfusPasses/ConstObfus/IDataObfuscationPolicy.cs +++ b/Editor/ObfusPasses/ConstObfus/IConstObfuscationPolicy.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace Obfuz.ObfusPasses.ConstObfus { - public interface IDataObfuscationPolicy + public interface IConstObfuscationPolicy { bool NeedObfuscateMethod(MethodDef method); diff --git a/Editor/ObfusPasses/ConstObfus/ConfigDataObfuscationPolicy.cs b/Editor/ObfusPasses/ConstObfus/RuleBasedObfuscationPolicy.cs similarity index 94% rename from Editor/ObfusPasses/ConstObfus/ConfigDataObfuscationPolicy.cs rename to Editor/ObfusPasses/ConstObfus/RuleBasedObfuscationPolicy.cs index b368497..f83c97a 100644 --- a/Editor/ObfusPasses/ConstObfus/ConfigDataObfuscationPolicy.cs +++ b/Editor/ObfusPasses/ConstObfus/RuleBasedObfuscationPolicy.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace Obfuz.ObfusPasses.ConstObfus { - public class ConfigDataObfuscationPolicy : DataObfuscationPolicyBase + public class RuleBasedObfuscationPolicy : ConstObfuscationPolicyBase { public override bool NeedObfuscateMethod(MethodDef method) { diff --git a/Editor/ObfusPasses/SymbolObfus/IRenamePolicy.cs b/Editor/ObfusPasses/SymbolObfus/IObfuscationPolicy.cs similarity index 89% rename from Editor/ObfusPasses/SymbolObfus/IRenamePolicy.cs rename to Editor/ObfusPasses/SymbolObfus/IObfuscationPolicy.cs index 21d5c2f..34f9e99 100644 --- a/Editor/ObfusPasses/SymbolObfus/IRenamePolicy.cs +++ b/Editor/ObfusPasses/SymbolObfus/IObfuscationPolicy.cs @@ -2,7 +2,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus { - public interface IRenamePolicy + public interface IObfuscationPolicy { bool NeedRename(TypeDef typeDef); diff --git a/Editor/ObfusPasses/SymbolObfus/DebugNameMaker.cs b/Editor/ObfusPasses/SymbolObfus/NameMakers/DebugNameMaker.cs similarity index 93% rename from Editor/ObfusPasses/SymbolObfus/DebugNameMaker.cs rename to Editor/ObfusPasses/SymbolObfus/NameMakers/DebugNameMaker.cs index 90483d7..b7b4e3f 100644 --- a/Editor/ObfusPasses/SymbolObfus/DebugNameMaker.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakers/DebugNameMaker.cs @@ -1,7 +1,7 @@ using dnlib.DotNet; using System.Text; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers { public class DebugNameMaker : NameMakerBase { diff --git a/Editor/ObfusPasses/SymbolObfus/INameScope.cs b/Editor/ObfusPasses/SymbolObfus/NameMakers/INameScope.cs similarity index 73% rename from Editor/ObfusPasses/SymbolObfus/INameScope.cs rename to Editor/ObfusPasses/SymbolObfus/NameMakers/INameScope.cs index 87d2d5a..9fb5a98 100644 --- a/Editor/ObfusPasses/SymbolObfus/INameScope.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakers/INameScope.cs @@ -1,4 +1,4 @@ -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers { public interface INameScope { diff --git a/Editor/ObfusPasses/SymbolObfus/NameMakerBase.cs b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameMakerBase.cs similarity index 98% rename from Editor/ObfusPasses/SymbolObfus/NameMakerBase.cs rename to Editor/ObfusPasses/SymbolObfus/NameMakers/NameMakerBase.cs index 234e370..a103757 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameMakerBase.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameMakerBase.cs @@ -5,7 +5,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers { public abstract class NameMakerBase : INameMaker { diff --git a/Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameMakerFactory.cs similarity index 85% rename from Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs rename to Editor/ObfusPasses/SymbolObfus/NameMakers/NameMakerFactory.cs index 917d92f..b0ba913 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameMakerFactory.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameMakerFactory.cs @@ -5,7 +5,7 @@ using System.Runtime.Remoting.Messaging; using System.Text; using System.Threading.Tasks; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers { public static class NameMakerFactory { @@ -22,7 +22,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus words.Add(((char)('a' + i)).ToString()); words.Add(((char)('A' + i)).ToString()); } - return new NameMaker(namePrefix, words); + return new WordSetNameMaker(namePrefix, words); } } } diff --git a/Editor/ObfusPasses/SymbolObfus/NameScope.cs b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameScope.cs similarity index 94% rename from Editor/ObfusPasses/SymbolObfus/NameScope.cs rename to Editor/ObfusPasses/SymbolObfus/NameMakers/NameScope.cs index d9da042..610f845 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameScope.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameScope.cs @@ -2,7 +2,7 @@ using System.Collections.Generic; using System.Text; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers { public class NameScope : NameScopeBase diff --git a/Editor/ObfusPasses/SymbolObfus/NameScopeBase.cs b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameScopeBase.cs similarity index 96% rename from Editor/ObfusPasses/SymbolObfus/NameScopeBase.cs rename to Editor/ObfusPasses/SymbolObfus/NameMakers/NameScopeBase.cs index 7bb0774..4f3d213 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameScopeBase.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakers/NameScopeBase.cs @@ -1,7 +1,7 @@ using System.Collections.Generic; using System.Text; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers { public abstract class NameScopeBase : INameScope { diff --git a/Editor/ObfusPasses/SymbolObfus/NameMaker.cs b/Editor/ObfusPasses/SymbolObfus/NameMakers/WordSetNameMaker.cs similarity index 72% rename from Editor/ObfusPasses/SymbolObfus/NameMaker.cs rename to Editor/ObfusPasses/SymbolObfus/NameMakers/WordSetNameMaker.cs index c344deb..8e8b5db 100644 --- a/Editor/ObfusPasses/SymbolObfus/NameMaker.cs +++ b/Editor/ObfusPasses/SymbolObfus/NameMakers/WordSetNameMaker.cs @@ -4,15 +4,15 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers { - public class NameMaker : NameMakerBase + public class WordSetNameMaker : NameMakerBase { private readonly string _namePrefix; private readonly List _wordSet; - public NameMaker(string namePrefix, List wordSet) + public WordSetNameMaker(string namePrefix, List wordSet) { _namePrefix = namePrefix; _wordSet = wordSet; diff --git a/Editor/ObfusPasses/SymbolObfus/CacheRenamePolicy.cs b/Editor/ObfusPasses/SymbolObfus/Policies/CacheRenamePolicy.cs similarity index 90% rename from Editor/ObfusPasses/SymbolObfus/CacheRenamePolicy.cs rename to Editor/ObfusPasses/SymbolObfus/Policies/CacheRenamePolicy.cs index 580eb34..937ff66 100644 --- a/Editor/ObfusPasses/SymbolObfus/CacheRenamePolicy.cs +++ b/Editor/ObfusPasses/SymbolObfus/Policies/CacheRenamePolicy.cs @@ -2,15 +2,15 @@ using System.Collections.Generic; using System.Linq; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.Policies { - public class CacheRenamePolicy : RenamePolicyBase + public class CacheRenamePolicy : ObfuscationPolicyBase { - private readonly IRenamePolicy _underlyingPolicy; + private readonly IObfuscationPolicy _underlyingPolicy; private readonly Dictionary _computeCache = new Dictionary(); - public CacheRenamePolicy(IRenamePolicy underlyingPolicy) + public CacheRenamePolicy(IObfuscationPolicy underlyingPolicy) { _underlyingPolicy = underlyingPolicy; } diff --git a/Editor/ObfusPasses/SymbolObfus/CombineRenamePolicy.cs b/Editor/ObfusPasses/SymbolObfus/Policies/CombineRenamePolicy.cs similarity index 80% rename from Editor/ObfusPasses/SymbolObfus/CombineRenamePolicy.cs rename to Editor/ObfusPasses/SymbolObfus/Policies/CombineRenamePolicy.cs index 0354e56..53ca0c9 100644 --- a/Editor/ObfusPasses/SymbolObfus/CombineRenamePolicy.cs +++ b/Editor/ObfusPasses/SymbolObfus/Policies/CombineRenamePolicy.cs @@ -1,13 +1,13 @@ using dnlib.DotNet; using System.Linq; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.Policies { - public class CombineRenamePolicy : IRenamePolicy + public class CombineRenamePolicy : IObfuscationPolicy { - private readonly IRenamePolicy[] _policies; + private readonly IObfuscationPolicy[] _policies; - public CombineRenamePolicy(params IRenamePolicy[] policies) + public CombineRenamePolicy(params IObfuscationPolicy[] policies) { _policies = policies; } diff --git a/Editor/ObfusPasses/SymbolObfus/RenamePolicyBase.cs b/Editor/ObfusPasses/SymbolObfus/Policies/ObfuscationPolicyBase.cs similarity index 85% rename from Editor/ObfusPasses/SymbolObfus/RenamePolicyBase.cs rename to Editor/ObfusPasses/SymbolObfus/Policies/ObfuscationPolicyBase.cs index 44dba18..96cfcce 100644 --- a/Editor/ObfusPasses/SymbolObfus/RenamePolicyBase.cs +++ b/Editor/ObfusPasses/SymbolObfus/Policies/ObfuscationPolicyBase.cs @@ -1,8 +1,8 @@ using dnlib.DotNet; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.Policies { - public abstract class RenamePolicyBase : IRenamePolicy + public abstract class ObfuscationPolicyBase : IObfuscationPolicy { public virtual bool NeedRename(TypeDef typeDef) diff --git a/Editor/ObfusPasses/SymbolObfus/RuleBasedRenamePolicy.cs b/Editor/ObfusPasses/SymbolObfus/Policies/RuleBasedRenamePolicy.cs similarity index 99% rename from Editor/ObfusPasses/SymbolObfus/RuleBasedRenamePolicy.cs rename to Editor/ObfusPasses/SymbolObfus/Policies/RuleBasedRenamePolicy.cs index d5b7a3d..4f5781c 100644 --- a/Editor/ObfusPasses/SymbolObfus/RuleBasedRenamePolicy.cs +++ b/Editor/ObfusPasses/SymbolObfus/Policies/RuleBasedRenamePolicy.cs @@ -9,10 +9,10 @@ using System.Xml; using System.Xml.Linq; using UnityEngine; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.Policies { - public class RuleBasedRenamePolicy : RenamePolicyBase + public class RuleBasedRenamePolicy : ObfuscationPolicyBase { enum ObfuscationType { @@ -500,7 +500,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus return rule; } - public void LoadXmls(List xmlFiles) + private void LoadXmls(List xmlFiles) { var rawAssemblySpecElements = new List(); foreach (string file in xmlFiles) @@ -709,9 +709,10 @@ namespace Obfuz.ObfusPasses.SymbolObfus private readonly HashSet _obfuscationAssemblyNames; - public RuleBasedRenamePolicy(List obfuscationAssemblyNames) + public RuleBasedRenamePolicy(List obfuscationAssemblyNames, List xmlFiles) { this._obfuscationAssemblyNames = obfuscationAssemblyNames.ToHashSet(); + LoadXmls(xmlFiles); } private TypeDefComputeCache GetOrCreateTypeDefRenameComputeCache(TypeDef typeDef) diff --git a/Editor/ObfusPasses/SymbolObfus/SystemRenamePolicy.cs b/Editor/ObfusPasses/SymbolObfus/Policies/SystemRenamePolicy.cs similarity index 86% rename from Editor/ObfusPasses/SymbolObfus/SystemRenamePolicy.cs rename to Editor/ObfusPasses/SymbolObfus/Policies/SystemRenamePolicy.cs index 3ed249d..d00cec5 100644 --- a/Editor/ObfusPasses/SymbolObfus/SystemRenamePolicy.cs +++ b/Editor/ObfusPasses/SymbolObfus/Policies/SystemRenamePolicy.cs @@ -1,8 +1,8 @@ using dnlib.DotNet; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.Policies { - public class SystemRenamePolicy : RenamePolicyBase + public class SystemRenamePolicy : ObfuscationPolicyBase { public override bool NeedRename(TypeDef typeDef) { diff --git a/Editor/ObfusPasses/SymbolObfus/UnityRenamePolicy.cs b/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs similarity index 95% rename from Editor/ObfusPasses/SymbolObfus/UnityRenamePolicy.cs rename to Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs index e571684..9878973 100644 --- a/Editor/ObfusPasses/SymbolObfus/UnityRenamePolicy.cs +++ b/Editor/ObfusPasses/SymbolObfus/Policies/UnityRenamePolicy.cs @@ -6,10 +6,10 @@ using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; -namespace Obfuz.ObfusPasses.SymbolObfus +namespace Obfuz.ObfusPasses.SymbolObfus.Policies { - public class UnityRenamePolicy : RenamePolicyBase + public class UnityRenamePolicy : ObfuscationPolicyBase { private static HashSet s_monoBehaviourEvents = new HashSet { "Awake", diff --git a/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs b/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs index 894124d..05925a3 100644 --- a/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs +++ b/Editor/ObfusPasses/SymbolObfus/SymbolRename.cs @@ -1,5 +1,7 @@ using dnlib.DotNet; using Obfuz.ObfusPasses.SymbolObfus; +using Obfuz.ObfusPasses.SymbolObfus.NameMakers; +using Obfuz.ObfusPasses.SymbolObfus.Policies; using Obfuz.Settings; using Obfuz.Utils; using System; @@ -38,8 +40,7 @@ namespace Obfuz.ObfusPasses.SymbolObfus private List _obfuscatedAndNotObfuscatedModules; private List _obfuzAssemblies; private HashSet _toObfuscatedModuleSet; - private RuleBasedRenamePolicy _obfuscateRuleConfig; - private IRenamePolicy _renamePolicy; + private IObfuscationPolicy _renamePolicy; private INameMaker _nameMaker; private readonly Dictionary> _customAttributeArgumentsWithTypeByMods = new Dictionary>(); private readonly RenameRecordMap _renameRecordMap; @@ -70,9 +71,8 @@ namespace Obfuz.ObfusPasses.SymbolObfus _obfuscatedAndNotObfuscatedModules = ctx.obfuscatedAndNotObfuscatedModules; _toObfuscatedModuleSet = ctx.toObfuscatedModules.ToHashSet(); _obfuzAssemblies = BuildAssemblyReferenceInfos(ctx); - _obfuscateRuleConfig = new RuleBasedRenamePolicy(ctx.toObfuscatedAssemblyNames); - _obfuscateRuleConfig.LoadXmls(_obfuscationRuleFiles); - _renamePolicy = new CacheRenamePolicy(new CombineRenamePolicy(new SystemRenamePolicy(), new UnityRenamePolicy(), _obfuscateRuleConfig)); + var obfuscateRuleConfig = new RuleBasedRenamePolicy(ctx.toObfuscatedAssemblyNames, _obfuscationRuleFiles); + _renamePolicy = new CacheRenamePolicy(new CombineRenamePolicy(new SystemRenamePolicy(), new UnityRenamePolicy(), obfuscateRuleConfig)); BuildCustomAttributeArguments(); } diff --git a/Editor/ObfusPasses/ObfuscationPassContext.cs b/Editor/ObfuscationPassContext.cs similarity index 95% rename from Editor/ObfusPasses/ObfuscationPassContext.cs rename to Editor/ObfuscationPassContext.cs index a1cd233..31ac19f 100644 --- a/Editor/ObfusPasses/ObfuscationPassContext.cs +++ b/Editor/ObfuscationPassContext.cs @@ -7,7 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Obfuz.ObfusPasses +namespace Obfuz { public class ObfuscationPassContext diff --git a/Editor/ObfuscatorBuilder.cs b/Editor/ObfuscatorBuilder.cs index 0205ab0..c2682f0 100644 --- a/Editor/ObfuscatorBuilder.cs +++ b/Editor/ObfuscatorBuilder.cs @@ -85,7 +85,7 @@ namespace Obfuz } if (obfuscationPasses.HasFlag(ObfuscationPassType.ConstEncryption)) { - builder.AddPass(new DataVirtualizationPass()); + builder.AddPass(new ConstObfusPass()); } if (obfuscationPasses.HasFlag(ObfuscationPassType.ExprObfuscation)) {