diff --git a/Editor/ObfusPasses/EvalStackObfus/EvalStackObfusPass.cs b/Editor/ObfusPasses/EvalStackObfus/EvalStackObfusPass.cs index 4d102d0..8c6b506 100644 --- a/Editor/ObfusPasses/EvalStackObfus/EvalStackObfusPass.cs +++ b/Editor/ObfusPasses/EvalStackObfus/EvalStackObfusPass.cs @@ -72,7 +72,7 @@ namespace Obfuz.ObfusPasses.EvalStackObfus protected override void ObfuscateData(MethodDef method) { - Debug.Log($"Obfuscating method: {method.FullName} with EvalStackObfusPass"); + //Debug.Log($"Obfuscating method: {method.FullName} with EvalStackObfusPass"); IList instructions = method.Body.Instructions; var outputInstructions = new List(); var totalFinalInstructions = new List(); diff --git a/Editor/ObfusPasses/ExprObfus/Obfuscators/MostAdvancedObfuscator.cs b/Editor/ObfusPasses/ExprObfus/Obfuscators/MostAdvancedObfuscator.cs index abbb107..abf885e 100644 --- a/Editor/ObfusPasses/ExprObfus/Obfuscators/MostAdvancedObfuscator.cs +++ b/Editor/ObfusPasses/ExprObfus/Obfuscators/MostAdvancedObfuscator.cs @@ -1,6 +1,7 @@ using dnlib.DotNet.Emit; using Obfuz.Emit; using System.Collections.Generic; +using System.Linq; namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators { @@ -10,7 +11,11 @@ namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators public override bool ObfuscateBasicUnaryOp(Instruction inst, EvalDataType op, EvalDataType ret, List outputInsts, ObfusMethodContext ctx) { - if (!GenerateIdentityTransformForArgument(inst, op, outputInsts, ctx)) + if (!base.ObfuscateBasicUnaryOp(inst, op, ret, outputInsts, ctx)) + { + return false; + } + if (outputInsts.Last().OpCode.Code != inst.OpCode.Code) { return false; } @@ -20,7 +25,11 @@ namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators public override bool ObfuscateBasicBinOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List outputInsts, ObfusMethodContext ctx) { - if (!GenerateIdentityTransformForArgument(inst, op2, outputInsts, ctx)) + if (!base.ObfuscateBasicBinOp(inst, op1, op2, ret, outputInsts, ctx)) + { + return false; + } + if (outputInsts.Last().OpCode.Code != inst.OpCode.Code) { return false; } @@ -30,7 +39,12 @@ namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators public override bool ObfuscateUnaryBitwiseOp(Instruction inst, EvalDataType op, EvalDataType ret, List outputInsts, ObfusMethodContext ctx) { - if (!GenerateIdentityTransformForArgument(inst, op, outputInsts, ctx)) + if (!base.ObfuscateUnaryBitwiseOp(inst, op, ret, outputInsts, ctx)) + { + return false; + } + + if (outputInsts.Last().OpCode.Code != inst.OpCode.Code) { return false; } @@ -40,7 +54,11 @@ namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators public override bool ObfuscateBinBitwiseOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List outputInsts, ObfusMethodContext ctx) { - if (!GenerateIdentityTransformForArgument(inst, op2, outputInsts, ctx)) + if (!base.ObfuscateBinBitwiseOp(inst, op1, op2, ret, outputInsts, ctx)) + { + return false; + } + if (outputInsts.Last().OpCode.Code != inst.OpCode.Code) { return false; } @@ -50,7 +68,11 @@ namespace Obfuz.ObfusPasses.ExprObfus.Obfuscators public override bool ObfuscateBitShiftOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List outputInsts, ObfusMethodContext ctx) { - if (!GenerateIdentityTransformForArgument(inst, op2, outputInsts, ctx)) + if (!base.ObfuscateBitShiftOp(inst, op1, op2, ret,outputInsts, ctx)) + { + return false; + } + if (outputInsts.Last().OpCode.Code != inst.OpCode.Code) { return false; } diff --git a/Editor/ObfuscatorBuilder.cs b/Editor/ObfuscatorBuilder.cs index 6da2038..fea5fef 100644 --- a/Editor/ObfuscatorBuilder.cs +++ b/Editor/ObfuscatorBuilder.cs @@ -170,6 +170,10 @@ namespace Obfuz { builder.AddPass(new ConstEncryptPass(settings.constEncryptSettings.ToFacade())); } + if (obfuscationPasses.HasFlag(ObfuscationPassType.ExprObfus)) + { + builder.AddPass(new ExprObfusPass(settings.exprObfusSettings.ToFacade())); + } if (obfuscationPasses.HasFlag(ObfuscationPassType.EvalStackObfus)) { builder.AddPass(new EvalStackObfusPass(settings.evalStackObfusSettings.ToFacade())); @@ -178,10 +182,6 @@ namespace Obfuz { builder.AddPass(new FieldEncryptPass(settings.fieldEncryptSettings.ToFacade())); } - if (obfuscationPasses.HasFlag(ObfuscationPassType.ExprObfus)) - { - builder.AddPass(new ExprObfusPass(settings.exprObfusSettings.ToFacade())); - } if (obfuscationPasses.HasFlag(ObfuscationPassType.CallObfus)) { builder.AddPass(new CallObfusPass(settings.callObfusSettings.ToFacade()));