重构ConstObfus为ConstEncrypt

backup
walon 2025-05-09 19:26:59 +08:00
parent 3094532eaa
commit 6fecb30c23
10 changed files with 28 additions and 28 deletions

View File

@ -1,7 +1,7 @@
using dnlib.DotNet; using dnlib.DotNet;
using dnlib.DotNet.Emit; using dnlib.DotNet.Emit;
using Obfuz.Emit; using Obfuz.Emit;
using Obfuz.ObfusPasses.ConstObfus.Policies; using Obfuz.ObfusPasses.ConstEncrypt.Policies;
using Obfuz.Settings; using Obfuz.Settings;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -11,24 +11,24 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using UnityEngine.Assertions; using UnityEngine.Assertions;
namespace Obfuz.ObfusPasses.ConstObfus namespace Obfuz.ObfusPasses.ConstEncrypt
{ {
public class ConstObfusPass : BasicBlockObfuscationPassBase public class ConstEncryptPass : BasicBlockObfuscationPassBase
{ {
private readonly string _configFile; private readonly string _configFile;
private IObfuscationPolicy _dataObfuscatorPolicy; private IEncryptPolicy _dataObfuscatorPolicy;
private IDataObfuscator _dataObfuscator; private IConstEncryptor _dataObfuscator;
public ConstObfusPass(ConstObfusSettings settings) public ConstEncryptPass(ConstEncryptSettings settings)
{ {
_configFile = settings.configFile; _configFile = settings.configFile;
} }
public override void Start(ObfuscationPassContext ctx) public override void Start(ObfuscationPassContext ctx)
{ {
_dataObfuscatorPolicy = new ConfigurableObfuscationPolicy(ctx.toObfuscatedAssemblyNames, _configFile); _dataObfuscatorPolicy = new ConfigurableEncryptPolicy(ctx.toObfuscatedAssemblyNames, _configFile);
_dataObfuscator = new DefaultConstObfuscator(); _dataObfuscator = new DefaultConstEncryptor();
} }
public override void Stop(ObfuscationPassContext ctx) public override void Stop(ObfuscationPassContext ctx)

View File

@ -8,16 +8,16 @@ using System.Collections.Generic;
using NUnit.Framework; using NUnit.Framework;
using System.Text; using System.Text;
namespace Obfuz.ObfusPasses.ConstObfus namespace Obfuz.ObfusPasses.ConstEncrypt
{ {
public class DefaultConstObfuscator : IDataObfuscator public class DefaultConstEncryptor : IConstEncryptor
{ {
private readonly IRandom _random; private readonly IRandom _random;
private readonly RvaDataAllocator _rvaDataAllocator; private readonly RvaDataAllocator _rvaDataAllocator;
private readonly ConstFieldAllocator _constFieldAllocator; private readonly ConstFieldAllocator _constFieldAllocator;
private readonly IEncryptor _encryptor; private readonly IEncryptor _encryptor;
public DefaultConstObfuscator() public DefaultConstEncryptor()
{ {
_random = new RandomWithKey(new byte[] { 0x1, 0x2, 0x3, 0x4 }, 0x5); _random = new RandomWithKey(new byte[] { 0x1, 0x2, 0x3, 0x4 }, 0x5);
_encryptor = new DefaultEncryptor(new byte[] { 0x1A, 0x2B, 0x3C, 0x4D }); _encryptor = new DefaultEncryptor(new byte[] { 0x1A, 0x2B, 0x3C, 0x4D });

View File

@ -3,9 +3,9 @@ using dnlib.DotNet.Emit;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Obfuz.ObfusPasses.ConstObfus namespace Obfuz.ObfusPasses.ConstEncrypt
{ {
public interface IDataObfuscator public interface IConstEncryptor
{ {
void ObfuscateInt(MethodDef method, bool needCacheValue, int value, List<Instruction> obfuscatedInstructions); void ObfuscateInt(MethodDef method, bool needCacheValue, int value, List<Instruction> obfuscatedInstructions);

View File

@ -5,7 +5,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Obfuz.ObfusPasses.ConstObfus namespace Obfuz.ObfusPasses.ConstEncrypt
{ {
public struct ConstCachePolicy public struct ConstCachePolicy
{ {
@ -15,7 +15,7 @@ namespace Obfuz.ObfusPasses.ConstObfus
public bool cacheStringNotInLoop; public bool cacheStringNotInLoop;
} }
public interface IObfuscationPolicy public interface IEncryptPolicy
{ {
bool NeedObfuscateMethod(MethodDef method); bool NeedObfuscateMethod(MethodDef method);

View File

@ -8,9 +8,9 @@ using System.Threading.Tasks;
using System.Xml; using System.Xml;
using UnityEngine; using UnityEngine;
namespace Obfuz.ObfusPasses.ConstObfus.Policies namespace Obfuz.ObfusPasses.ConstEncrypt.Policies
{ {
public class ConfigurableObfuscationPolicy : ObfuscationPolicyBase public class ConfigurableEncryptPolicy : EncryptPolicyBase
{ {
private readonly List<string> _toObfuscatedAssemblyNames; private readonly List<string> _toObfuscatedAssemblyNames;
@ -140,7 +140,7 @@ namespace Obfuz.ObfusPasses.ConstObfus.Policies
private readonly Dictionary<string, AssemblySpec> _assemblySpecs = new Dictionary<string, AssemblySpec>(); private readonly Dictionary<string, AssemblySpec> _assemblySpecs = new Dictionary<string, AssemblySpec>();
private readonly Dictionary<MethodDef, ObfuscationRule> _methodRuleCache = new Dictionary<MethodDef, ObfuscationRule>(); private readonly Dictionary<MethodDef, ObfuscationRule> _methodRuleCache = new Dictionary<MethodDef, ObfuscationRule>();
public ConfigurableObfuscationPolicy(List<string> toObfuscatedAssemblyNames, string xmlConfigFile) public ConfigurableEncryptPolicy(List<string> toObfuscatedAssemblyNames, string xmlConfigFile)
{ {
_toObfuscatedAssemblyNames = toObfuscatedAssemblyNames; _toObfuscatedAssemblyNames = toObfuscatedAssemblyNames;
LoadConfig(xmlConfigFile); LoadConfig(xmlConfigFile);

View File

@ -1,8 +1,8 @@
using dnlib.DotNet; using dnlib.DotNet;
namespace Obfuz.ObfusPasses.ConstObfus.Policies namespace Obfuz.ObfusPasses.ConstEncrypt.Policies
{ {
public abstract class ObfuscationPolicyBase : IObfuscationPolicy public abstract class EncryptPolicyBase : IEncryptPolicy
{ {
public abstract bool NeedObfuscateMethod(MethodDef method); public abstract bool NeedObfuscateMethod(MethodDef method);
public abstract ConstCachePolicy GetMethodConstCachePolicy(MethodDef method); public abstract ConstCachePolicy GetMethodConstCachePolicy(MethodDef method);

View File

@ -1,7 +1,7 @@
using Obfuz.ObfusPasses; using Obfuz.ObfusPasses;
using Obfuz.ObfusPasses.CallObfus; using Obfuz.ObfusPasses.CallObfus;
using Obfuz.ObfusPasses.CleanUp; using Obfuz.ObfusPasses.CleanUp;
using Obfuz.ObfusPasses.ConstObfus; using Obfuz.ObfusPasses.ConstEncrypt;
using Obfuz.ObfusPasses.ExprObfus; using Obfuz.ObfusPasses.ExprObfus;
using Obfuz.ObfusPasses.MemEncrypt; using Obfuz.ObfusPasses.MemEncrypt;
using Obfuz.ObfusPasses.SymbolObfus; using Obfuz.ObfusPasses.SymbolObfus;
@ -85,7 +85,7 @@ namespace Obfuz
} }
if (obfuscationPasses.HasFlag(ObfuscationPassType.ConstEncryption)) if (obfuscationPasses.HasFlag(ObfuscationPassType.ConstEncryption))
{ {
builder.AddPass(new ConstObfusPass(settings.constObfusSettings)); builder.AddPass(new ConstEncryptPass(settings.constEncryptSettings));
} }
if (obfuscationPasses.HasFlag(ObfuscationPassType.ExprObfuscation)) if (obfuscationPasses.HasFlag(ObfuscationPassType.ExprObfuscation))
{ {

View File

@ -8,7 +8,7 @@ using UnityEngine;
namespace Obfuz.Settings namespace Obfuz.Settings
{ {
[Serializable] [Serializable]
public class ConstObfusSettings public class ConstEncryptSettings
{ {
[Tooltip("config xml file")] [Tooltip("config xml file")]
public string configFile; public string configFile;

View File

@ -29,8 +29,8 @@ namespace Obfuz.Settings
[Tooltip("symbol obfuscation settings")] [Tooltip("symbol obfuscation settings")]
public SymbolObfusSettings symbolObfusSettings; public SymbolObfusSettings symbolObfusSettings;
[Tooltip("const obfuscation settings")] [Tooltip("const encryption settings")]
public ConstObfusSettings constObfusSettings; public ConstEncryptSettings constEncryptSettings;
public string ObfuzRootDir => $"Library/Obfuz"; public string ObfuzRootDir => $"Library/Obfuz";

View File

@ -36,7 +36,7 @@ namespace Obfuz.Settings
private SerializedProperty _enabledObfuscationPasses; private SerializedProperty _enabledObfuscationPasses;
private SerializedProperty _symbolObfusSettings; private SerializedProperty _symbolObfusSettings;
private SerializedProperty _constObfusSettings; private SerializedProperty _constEncryptSettings;
public ObfuzSettingsProvider() : base("Project/Obfuz", SettingsScope.Project) public ObfuzSettingsProvider() : base("Project/Obfuz", SettingsScope.Project)
{ {
@ -65,7 +65,7 @@ namespace Obfuz.Settings
_enabledObfuscationPasses = _serializedObject.FindProperty("enabledObfuscationPasses"); _enabledObfuscationPasses = _serializedObject.FindProperty("enabledObfuscationPasses");
_symbolObfusSettings = _serializedObject.FindProperty("symbolObfusSettings"); _symbolObfusSettings = _serializedObject.FindProperty("symbolObfusSettings");
_constObfusSettings = _serializedObject.FindProperty("constObfusSettings"); _constEncryptSettings = _serializedObject.FindProperty("constEncryptSettings");
} }
public override void OnGUI(string searchContext) public override void OnGUI(string searchContext)
@ -84,7 +84,7 @@ namespace Obfuz.Settings
EditorGUILayout.PropertyField(_enabledObfuscationPasses); EditorGUILayout.PropertyField(_enabledObfuscationPasses);
EditorGUILayout.PropertyField(_symbolObfusSettings); EditorGUILayout.PropertyField(_symbolObfusSettings);
EditorGUILayout.PropertyField(_constObfusSettings); EditorGUILayout.PropertyField(_constEncryptSettings);
if (EditorGUI.EndChangeCheck()) if (EditorGUI.EndChangeCheck())