From a48dad21bcf16121cb97ee059410c4bc7a0cab4f Mon Sep 17 00:00:00 2001 From: walon Date: Tue, 29 Apr 2025 10:04:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84ProxyCall?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DynamicMemoryEncryptionPass.cs | 29 +++++++++++++++++++ Editor/Obfuscator.cs | 2 +- ...roxyPolicy.cs => ConfigProxyCallPolicy.cs} | 2 +- ...cator.cs => DefaultProxyCallObfuscator.cs} | 4 +-- ...yObfuscator.cs => IProxyCallObfuscator.cs} | 2 +- ...amicProxyPolicy.cs => IProxyCallPolicy.cs} | 2 +- ...atorBase.cs => ProxyCallObfuscatorBase.cs} | 2 +- .../{DynamicProxyPass.cs => ProxyCallPass.cs} | 12 ++++---- ...xyPolicyBase.cs => ProxyCallPolicyBase.cs} | 2 +- 9 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 Editor/DynamicMemoryEncryption/DynamicMemoryEncryptionPass.cs rename Editor/ProxyCall/{ConfigDynamicProxyPolicy.cs => ConfigProxyCallPolicy.cs} (92%) rename Editor/ProxyCall/{DefaultDynamicProxyObfuscator.cs => DefaultProxyCallObfuscator.cs} (89%) rename Editor/ProxyCall/{IDynamicProxyObfuscator.cs => IProxyCallObfuscator.cs} (88%) rename Editor/ProxyCall/{IDynamicProxyPolicy.cs => IProxyCallPolicy.cs} (88%) rename Editor/ProxyCall/{DynamicProxyObfuscatorBase.cs => ProxyCallObfuscatorBase.cs} (79%) rename Editor/ProxyCall/{DynamicProxyPass.cs => ProxyCallPass.cs} (86%) rename Editor/ProxyCall/{DynamicProxyPolicyBase.cs => ProxyCallPolicyBase.cs} (76%) diff --git a/Editor/DynamicMemoryEncryption/DynamicMemoryEncryptionPass.cs b/Editor/DynamicMemoryEncryption/DynamicMemoryEncryptionPass.cs new file mode 100644 index 0000000..9480a3c --- /dev/null +++ b/Editor/DynamicMemoryEncryption/DynamicMemoryEncryptionPass.cs @@ -0,0 +1,29 @@ +using dnlib.DotNet; +using dnlib.DotNet.Emit; +using Obfuz; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class DynamicMemoryEncryptionPass : MethodBodyObfuscationPassBase +{ + public override void Start(ObfuscatorContext ctx) + { + + } + + public override void Stop(ObfuscatorContext ctx) + { + + } + + protected override bool NeedObfuscateMethod(MethodDef method) + { + return true; + } + + protected override bool TryObfuscateInstruction(MethodDef callingMethod, Instruction inst, IList instructions, int instructionIndex, List outputInstructions, List totalFinalInstructions) + { + throw new System.NotImplementedException(); + } +} diff --git a/Editor/Obfuscator.cs b/Editor/Obfuscator.cs index a88e3ac..40cc3a6 100644 --- a/Editor/Obfuscator.cs +++ b/Editor/Obfuscator.cs @@ -46,7 +46,7 @@ namespace Obfuz _obfuscationAssemblyNames = options.obfuscationAssemblyNames; _assemblyCache = new AssemblyCache(new PathAssemblyResolver(options.assemblySearchDirs.ToArray())); - _pipeline.AddPass(new DynamicProxyPass()); + _pipeline.AddPass(new ProxyCallPass()); _pipeline.AddPass(new ExprObfuscationPass()); _pipeline.AddPass(new DataVirtualizationPass()); _pipeline.AddPass(new RenameSymbolPass()); diff --git a/Editor/ProxyCall/ConfigDynamicProxyPolicy.cs b/Editor/ProxyCall/ConfigProxyCallPolicy.cs similarity index 92% rename from Editor/ProxyCall/ConfigDynamicProxyPolicy.cs rename to Editor/ProxyCall/ConfigProxyCallPolicy.cs index 92e0520..e6e9658 100644 --- a/Editor/ProxyCall/ConfigDynamicProxyPolicy.cs +++ b/Editor/ProxyCall/ConfigProxyCallPolicy.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace Obfuz.DynamicProxy { - public class ConfigDynamicProxyPolicy : DynamicProxyPolicyBase + public class ConfigProxyCallPolicy : ProxyCallPolicyBase { public override bool NeedDynamicProxyCallInMethod(MethodDef method) { diff --git a/Editor/ProxyCall/DefaultDynamicProxyObfuscator.cs b/Editor/ProxyCall/DefaultProxyCallObfuscator.cs similarity index 89% rename from Editor/ProxyCall/DefaultDynamicProxyObfuscator.cs rename to Editor/ProxyCall/DefaultProxyCallObfuscator.cs index 9400813..9eb5c5e 100644 --- a/Editor/ProxyCall/DefaultDynamicProxyObfuscator.cs +++ b/Editor/ProxyCall/DefaultProxyCallObfuscator.cs @@ -6,12 +6,12 @@ using Obfuz.Emit; namespace Obfuz.DynamicProxy { - public class DefaultDynamicProxyObfuscator : DynamicProxyObfuscatorBase + public class DefaultProxyCallObfuscator : ProxyCallObfuscatorBase { private readonly IRandom _random; private readonly ProxyCallAllocator _proxyCallAllocator; - public DefaultDynamicProxyObfuscator(IRandom random) + public DefaultProxyCallObfuscator(IRandom random) { _random = random; _proxyCallAllocator = new ProxyCallAllocator(random); diff --git a/Editor/ProxyCall/IDynamicProxyObfuscator.cs b/Editor/ProxyCall/IProxyCallObfuscator.cs similarity index 88% rename from Editor/ProxyCall/IDynamicProxyObfuscator.cs rename to Editor/ProxyCall/IProxyCallObfuscator.cs index bd3126b..fcc26a4 100644 --- a/Editor/ProxyCall/IDynamicProxyObfuscator.cs +++ b/Editor/ProxyCall/IProxyCallObfuscator.cs @@ -8,7 +8,7 @@ using System.Threading.Tasks; namespace Obfuz.DynamicProxy { - public interface IDynamicProxyObfuscator + public interface IProxyCallObfuscator { void Obfuscate(MethodDef callingMethod, IMethod calledMethod, bool callVir, List obfuscatedInstructions); diff --git a/Editor/ProxyCall/IDynamicProxyPolicy.cs b/Editor/ProxyCall/IProxyCallPolicy.cs similarity index 88% rename from Editor/ProxyCall/IDynamicProxyPolicy.cs rename to Editor/ProxyCall/IProxyCallPolicy.cs index 2154c6b..86fc264 100644 --- a/Editor/ProxyCall/IDynamicProxyPolicy.cs +++ b/Editor/ProxyCall/IProxyCallPolicy.cs @@ -7,7 +7,7 @@ using System.Threading.Tasks; namespace Obfuz.DynamicProxy { - public interface IDynamicProxyPolicy + public interface IProxyCallPolicy { bool NeedDynamicProxyCallInMethod(MethodDef method); diff --git a/Editor/ProxyCall/DynamicProxyObfuscatorBase.cs b/Editor/ProxyCall/ProxyCallObfuscatorBase.cs similarity index 79% rename from Editor/ProxyCall/DynamicProxyObfuscatorBase.cs rename to Editor/ProxyCall/ProxyCallObfuscatorBase.cs index ae23bc4..0315856 100644 --- a/Editor/ProxyCall/DynamicProxyObfuscatorBase.cs +++ b/Editor/ProxyCall/ProxyCallObfuscatorBase.cs @@ -4,7 +4,7 @@ using System.Collections.Generic; namespace Obfuz.DynamicProxy { - public abstract class DynamicProxyObfuscatorBase : IDynamicProxyObfuscator + public abstract class ProxyCallObfuscatorBase : IProxyCallObfuscator { public abstract void Obfuscate(MethodDef callingMethod, IMethod calledMethod, bool callVir, List obfuscatedInstructions); public abstract void Done(); diff --git a/Editor/ProxyCall/DynamicProxyPass.cs b/Editor/ProxyCall/ProxyCallPass.cs similarity index 86% rename from Editor/ProxyCall/DynamicProxyPass.cs rename to Editor/ProxyCall/ProxyCallPass.cs index 91ee7fe..096f429 100644 --- a/Editor/ProxyCall/DynamicProxyPass.cs +++ b/Editor/ProxyCall/ProxyCallPass.cs @@ -12,17 +12,17 @@ using UnityEngine.Assertions; namespace Obfuz.DynamicProxy { - public class DynamicProxyPass : MethodBodyObfuscationPassBase + public class ProxyCallPass : MethodBodyObfuscationPassBase { private readonly IRandom _random; - private readonly IDynamicProxyPolicy _dynamicProxyPolicy; - private readonly IDynamicProxyObfuscator _dynamicProxyObfuscator; + private readonly IProxyCallPolicy _dynamicProxyPolicy; + private readonly IProxyCallObfuscator _dynamicProxyObfuscator; - public DynamicProxyPass() + public ProxyCallPass() { _random = new RandomWithKey(new byte[] { 0x1, 0x2, 0x3, 0x4 }, 0x5); - _dynamicProxyPolicy = new ConfigDynamicProxyPolicy(); - _dynamicProxyObfuscator = new DefaultDynamicProxyObfuscator(_random); + _dynamicProxyPolicy = new ConfigProxyCallPolicy(); + _dynamicProxyObfuscator = new DefaultProxyCallObfuscator(_random); } public override void Stop(ObfuscatorContext ctx) diff --git a/Editor/ProxyCall/DynamicProxyPolicyBase.cs b/Editor/ProxyCall/ProxyCallPolicyBase.cs similarity index 76% rename from Editor/ProxyCall/DynamicProxyPolicyBase.cs rename to Editor/ProxyCall/ProxyCallPolicyBase.cs index 8718fe1..b98d4c5 100644 --- a/Editor/ProxyCall/DynamicProxyPolicyBase.cs +++ b/Editor/ProxyCall/ProxyCallPolicyBase.cs @@ -2,7 +2,7 @@ namespace Obfuz.DynamicProxy { - public abstract class DynamicProxyPolicyBase : IDynamicProxyPolicy + public abstract class ProxyCallPolicyBase : IProxyCallPolicy { public abstract bool NeedDynamicProxyCallInMethod(MethodDef method);