代码清理

dev
walon 2025-06-22 10:39:31 +08:00
parent cfe9dcdd08
commit 0ad96daa32
28 changed files with 29 additions and 77 deletions

View File

@ -172,7 +172,7 @@ namespace Obfuz.Emit
Assert.IsNotNull(_multiplyFloat, "ExprUtility.Multiply(float, float) not found"); Assert.IsNotNull(_multiplyFloat, "ExprUtility.Multiply(float, float) not found");
_multiplyDouble = mod.Import(exprUtilityType.GetMethod("Multiply", new[] { typeof(double), typeof(double) })); _multiplyDouble = mod.Import(exprUtilityType.GetMethod("Multiply", new[] { typeof(double), typeof(double) }));
Assert.IsNotNull(_multiplyDouble, "ExprUtility.Multiply(double, double) not found"); Assert.IsNotNull(_multiplyDouble, "ExprUtility.Multiply(double, double) not found");
_divideInt = mod.Import(exprUtilityType.GetMethod("Divide", new[] {typeof(int), typeof(int) })); _divideInt = mod.Import(exprUtilityType.GetMethod("Divide", new[] { typeof(int), typeof(int) }));
Assert.IsNotNull(_divideInt, "ExprUtility.Divide(int, int) not found"); Assert.IsNotNull(_divideInt, "ExprUtility.Divide(int, int) not found");
_divideLong = mod.Import(exprUtilityType.GetMethod("Divide", new[] { typeof(long), typeof(long) })); _divideLong = mod.Import(exprUtilityType.GetMethod("Divide", new[] { typeof(long), typeof(long) }));
Assert.IsNotNull(_divideLong); Assert.IsNotNull(_divideLong);

View File

@ -1,6 +1,5 @@
using dnlib.DotNet; using dnlib.DotNet;
using dnlib.DotNet.Emit; using dnlib.DotNet.Emit;
using dnlib.DotNet.Writer;
using Obfuz.Utils; using Obfuz.Utils;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -153,7 +152,7 @@ namespace Obfuz.Emit
datas.Add(type); datas.Add(type);
} }
private EvalDataType CalcBasicBinOpRetType(List<EvalDataType> datas, EvalDataType op1, EvalDataType op2) private EvalDataType CalcBasicBinOpRetType(List<EvalDataType> datas, EvalDataType op1, EvalDataType op2)
{ {
switch (op1) switch (op1)
{ {
@ -174,7 +173,7 @@ namespace Obfuz.Emit
case EvalDataType.Int32: return EvalDataType.Int64; case EvalDataType.Int32: return EvalDataType.Int64;
case EvalDataType.Int64: case EvalDataType.Int64:
case EvalDataType.I: case EvalDataType.I:
return EvalDataType.Int64; return EvalDataType.Int64;
default: throw new Exception($"Unsupported operand type: {op2} for {op1} in binary operation."); default: throw new Exception($"Unsupported operand type: {op2} for {op1} in binary operation.");
} }
} }

View File

@ -1,6 +1,5 @@
using NUnit.Framework; using NUnit.Framework;
using Obfuz.Utils; using Obfuz.Utils;
using System;
using System.Collections.Generic; using System.Collections.Generic;
namespace Obfuz.EncryptionVM.Instructions namespace Obfuz.EncryptionVM.Instructions

View File

@ -2,7 +2,6 @@
using dnlib.DotNet.Emit; using dnlib.DotNet.Emit;
using Obfuz.Emit; using Obfuz.Emit;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace Obfuz.ObfusPasses namespace Obfuz.ObfusPasses
{ {

View File

@ -237,7 +237,7 @@ namespace Obfuz.ObfusPasses.CallObfus
salt = salt, salt = salt,
encryptedIndex = encryptedIndex, encryptedIndex = encryptedIndex,
}; };
methodDispatcher.methods.Add(new CallInfo { id = $"{method}{(callVir ? "" : "v")}", method = method, callVir = callVir }); methodDispatcher.methods.Add(new CallInfo { id = $"{method}{(callVir ? "" : "v")}", method = method, callVir = callVir });
_methodProxys.Add(key, proxyInfo); _methodProxys.Add(key, proxyInfo);
} }
return new ProxyCallMethodData(proxyInfo.proxyMethod, proxyInfo.encryptedOps, proxyInfo.salt, proxyInfo.encryptedIndex, proxyInfo.index); return new ProxyCallMethodData(proxyInfo.proxyMethod, proxyInfo.encryptedOps, proxyInfo.salt, proxyInfo.encryptedIndex, proxyInfo.index);

View File

@ -1,12 +1,9 @@
using dnlib.DotNet; using dnlib.DotNet;
using Obfuz.Conf; using Obfuz.Conf;
using Obfuz.Settings; using Obfuz.Settings;
using Obfuz.Utils;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Xml; using System.Xml;
using UnityEditor.VersionControl;
namespace Obfuz.ObfusPasses.EvalStackObfus namespace Obfuz.ObfusPasses.EvalStackObfus
{ {

View File

@ -4,12 +4,7 @@ using Obfuz.Data;
using Obfuz.Emit; using Obfuz.Emit;
using Obfuz.Settings; using Obfuz.Settings;
using Obfuz.Utils; using Obfuz.Utils;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace Obfuz.ObfusPasses.EvalStackObfus namespace Obfuz.ObfusPasses.EvalStackObfus
{ {

View File

@ -1,6 +1,4 @@
using dnlib.DotNet; using dnlib.DotNet.Emit;
using dnlib.DotNet.Emit;
using Obfuz.Emit;
using System.Collections.Generic; using System.Collections.Generic;
namespace Obfuz.ObfusPasses.EvalStackObfus namespace Obfuz.ObfusPasses.EvalStackObfus

View File

@ -1,12 +1,9 @@
using dnlib.DotNet; using dnlib.DotNet;
using Obfuz.Conf; using Obfuz.Conf;
using Obfuz.Settings; using Obfuz.Settings;
using Obfuz.Utils;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Xml; using System.Xml;
using UnityEditor.VersionControl;
namespace Obfuz.ObfusPasses.ExprObfus namespace Obfuz.ObfusPasses.ExprObfus
{ {

View File

@ -6,8 +6,6 @@ using Obfuz.ObfusPasses.ExprObfus.Obfuscators;
using Obfuz.Settings; using Obfuz.Settings;
using Obfuz.Utils; using Obfuz.Utils;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using UnityEngine;
namespace Obfuz.ObfusPasses.ExprObfus namespace Obfuz.ObfusPasses.ExprObfus
{ {
@ -72,7 +70,7 @@ namespace Obfuz.ObfusPasses.ExprObfus
return _obfuscationPolicy.NeedObfuscate(method); return _obfuscationPolicy.NeedObfuscate(method);
} }
protected bool TryObfuscateInstruction(IObfuscator obfuscator, InstructionParameterInfo pi, Instruction inst, List<Instruction> outputInstructions, ObfusMethodContext ctx) protected bool TryObfuscateInstruction(IObfuscator obfuscator, InstructionParameterInfo pi, Instruction inst, List<Instruction> outputInstructions, ObfusMethodContext ctx)
{ {
//Debug.Log($"Obfuscating instruction: {inst} in method: {ctx.method.FullName}"); //Debug.Log($"Obfuscating instruction: {inst} in method: {ctx.method.FullName}");
IRandom localRandom = ctx.localRandom; IRandom localRandom = ctx.localRandom;

View File

@ -1,5 +1,4 @@
using dnlib.DotNet; using dnlib.DotNet.Emit;
using dnlib.DotNet.Emit;
using Obfuz.Emit; using Obfuz.Emit;
using System.Collections.Generic; using System.Collections.Generic;

View File

@ -1,13 +1,8 @@
using dnlib.DotNet.Emit; using dnlib.DotNet.Emit;
using dnlib.DotNet;
using Obfuz.Emit;
using System.Collections.Generic;
using Obfuz.Utils;
using Obfuz.Data; using Obfuz.Data;
using UnityEngine; using Obfuz.Emit;
using UnityEngine.Assertions; using Obfuz.Utils;
using JetBrains.Annotations; using System.Collections.Generic;
using System;
namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators
{ {
@ -104,12 +99,12 @@ namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators
public override bool ObfuscateBinBitwiseOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx) public override bool ObfuscateBinBitwiseOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx)
{ {
return GenerateIdentityTransformForArgument(inst, op2, outputInsts, ctx) || base.ObfuscateBinBitwiseOp(inst, op1 , op2, ret, outputInsts, ctx); return GenerateIdentityTransformForArgument(inst, op2, outputInsts, ctx) || base.ObfuscateBinBitwiseOp(inst, op1, op2, ret, outputInsts, ctx);
} }
public override bool ObfuscateBitShiftOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx) public override bool ObfuscateBitShiftOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx)
{ {
return GenerateIdentityTransformForArgument(inst, op2, outputInsts, ctx) || base.ObfuscateBitShiftOp(inst, op1, op2 , ret, outputInsts, ctx); return GenerateIdentityTransformForArgument(inst, op2, outputInsts, ctx) || base.ObfuscateBitShiftOp(inst, op1, op2, ret, outputInsts, ctx);
} }
} }
} }

View File

@ -1,12 +1,7 @@
using dnlib.DotNet; using dnlib.DotNet;
using dnlib.DotNet.Emit; using dnlib.DotNet.Emit;
using Obfuz.Emit; using Obfuz.Emit;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using UnityEngine; using UnityEngine;
namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators

View File

@ -68,7 +68,7 @@ namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators
public override bool ObfuscateBitShiftOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx) public override bool ObfuscateBitShiftOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx)
{ {
if (!base.ObfuscateBitShiftOp(inst, op1, op2, ret,outputInsts, ctx)) if (!base.ObfuscateBitShiftOp(inst, op1, op2, ret, outputInsts, ctx))
{ {
return false; return false;
} }

View File

@ -1,12 +1,9 @@
using dnlib.DotNet; using dnlib.DotNet;
using dnlib.DotNet.Emit; using dnlib.DotNet.Emit;
using Obfuz.Editor; using Obfuz.Editor;
using Obfuz.Emit;
using Obfuz.Settings;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Net.Security;
using System.Text; using System.Text;
using UnityEngine.Assertions; using UnityEngine.Assertions;
@ -40,7 +37,7 @@ namespace Obfuz.ObfusPasses.Instinct
private string GetTypeName(TypeSig type) private string GetTypeName(TypeSig type)
{ {
type = type.RemovePinnedAndModifiers(); type = type.RemovePinnedAndModifiers();
switch(type.ElementType) switch (type.ElementType)
{ {
case ElementType.Class: case ElementType.Class:
case ElementType.ValueType: case ElementType.ValueType:

View File

@ -1,7 +1,6 @@
using dnlib.DotNet; using dnlib.DotNet;
using dnlib.DotNet.Emit; using dnlib.DotNet.Emit;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace Obfuz.ObfusPasses namespace Obfuz.ObfusPasses
{ {

View File

@ -1,6 +1,5 @@
using dnlib.DotNet; using dnlib.DotNet;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using UnityEngine.Assertions; using UnityEngine.Assertions;
namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers namespace Obfuz.ObfusPasses.SymbolObfus.NameMakers

View File

@ -2,7 +2,6 @@
using Obfuz.Editor; using Obfuz.Editor;
using Obfuz.Utils; using Obfuz.Utils;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
namespace Obfuz.ObfusPasses.SymbolObfus.Policies namespace Obfuz.ObfusPasses.SymbolObfus.Policies
{ {

View File

@ -3,8 +3,6 @@ using dnlib.DotNet.Emit;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine; using UnityEngine;
namespace Obfuz.ObfusPasses.SymbolObfus namespace Obfuz.ObfusPasses.SymbolObfus

View File

@ -2,6 +2,7 @@
using Obfuz.ObfusPasses; using Obfuz.ObfusPasses;
using Obfuz.ObfusPasses.CallObfus; using Obfuz.ObfusPasses.CallObfus;
using Obfuz.ObfusPasses.ConstEncrypt; using Obfuz.ObfusPasses.ConstEncrypt;
using Obfuz.ObfusPasses.ControlFlowObfus;
using Obfuz.ObfusPasses.EvalStackObfus; using Obfuz.ObfusPasses.EvalStackObfus;
using Obfuz.ObfusPasses.ExprObfus; using Obfuz.ObfusPasses.ExprObfus;
using Obfuz.ObfusPasses.FieldEncrypt; using Obfuz.ObfusPasses.FieldEncrypt;
@ -186,6 +187,10 @@ namespace Obfuz
{ {
builder.AddPass(new CallObfusPass(settings.callObfusSettings.ToFacade())); builder.AddPass(new CallObfusPass(settings.callObfusSettings.ToFacade()));
} }
if (obfuscationPasses.HasFlag(ObfuscationPassType.ControlFlowObfus))
{
builder.AddPass(new ControlFlowObfusPass(settings.controlFlowObfuscationSettings.ToFacade()));
}
if (obfuscationPasses.HasFlag(ObfuscationPassType.SymbolObfus)) if (obfuscationPasses.HasFlag(ObfuscationPassType.SymbolObfus))
{ {
builder.AddPass(new SymbolObfusPass(settings.symbolObfusSettings.ToFacade())); builder.AddPass(new SymbolObfusPass(settings.symbolObfusSettings.ToFacade()));

View File

@ -40,6 +40,9 @@ namespace Obfuz.Settings
[Tooltip("expression obfuscation settings")] [Tooltip("expression obfuscation settings")]
public ExprObfuscationSettings exprObfusSettings; public ExprObfuscationSettings exprObfusSettings;
[Tooltip("control flow obfuscation settings")]
public ControlFlowObfuscationSettings controlFlowObfuscationSettings;
public string ObfuzRootDir => $"Library/Obfuz"; public string ObfuzRootDir => $"Library/Obfuz";
public string GetObfuscatedAssemblyOutputPath(BuildTarget target) public string GetObfuscatedAssemblyOutputPath(BuildTarget target)

View File

@ -36,6 +36,7 @@ namespace Obfuz.Settings
private SerializedProperty _fieldEncryptSettings; private SerializedProperty _fieldEncryptSettings;
private SerializedProperty _callObfusSettings; private SerializedProperty _callObfusSettings;
private SerializedProperty _exprObfusSettings; private SerializedProperty _exprObfusSettings;
private SerializedProperty _controlFlowObfusSettings;
public ObfuzSettingsProvider() : base("Project/Obfuz", SettingsScope.Project) public ObfuzSettingsProvider() : base("Project/Obfuz", SettingsScope.Project)
{ {
@ -70,6 +71,7 @@ namespace Obfuz.Settings
_exprObfusSettings = _serializedObject.FindProperty("exprObfusSettings"); _exprObfusSettings = _serializedObject.FindProperty("exprObfusSettings");
_fieldEncryptSettings = _serializedObject.FindProperty("fieldEncryptSettings"); _fieldEncryptSettings = _serializedObject.FindProperty("fieldEncryptSettings");
_callObfusSettings = _serializedObject.FindProperty("callObfusSettings"); _callObfusSettings = _serializedObject.FindProperty("callObfusSettings");
_controlFlowObfusSettings = _serializedObject.FindProperty("controlFlowObfuscationSettings");
} }
public override void OnGUI(string searchContext) public override void OnGUI(string searchContext)
@ -94,6 +96,7 @@ namespace Obfuz.Settings
EditorGUILayout.PropertyField(_exprObfusSettings); EditorGUILayout.PropertyField(_exprObfusSettings);
EditorGUILayout.PropertyField(_fieldEncryptSettings); EditorGUILayout.PropertyField(_fieldEncryptSettings);
EditorGUILayout.PropertyField(_callObfusSettings); EditorGUILayout.PropertyField(_callObfusSettings);
EditorGUILayout.PropertyField(_controlFlowObfusSettings);
if (EditorGUI.EndChangeCheck()) if (EditorGUI.EndChangeCheck())

View File

@ -1,11 +1,7 @@
using dnlib.DotNet.Emit; using dnlib.DotNet;
using dnlib.DotNet; using dnlib.DotNet.Emit;
using Obfuz.Data; using Obfuz.Data;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Obfuz.Utils namespace Obfuz.Utils
{ {

View File

@ -1,9 +1,5 @@
using dnlib.DotNet; using dnlib.DotNet;
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Obfuz.Utils namespace Obfuz.Utils
{ {

View File

@ -1,8 +1,4 @@
using System; using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Obfuz.Utils namespace Obfuz.Utils
{ {

View File

@ -1,10 +1,4 @@
using System; namespace Obfuz
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Obfuz
{ {
public static class ObfuscationInstincts public static class ObfuscationInstincts
{ {

View File

@ -1,10 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Obfuz namespace Obfuz
{ {