2025-06-17 20:21:28 +08:00
|
|
|
|
using dnlib.DotNet;
|
|
|
|
|
using dnlib.DotNet.Emit;
|
|
|
|
|
using Obfuz.Emit;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
namespace Obfuz.ObfusPasses.ExprObfus
|
|
|
|
|
{
|
|
|
|
|
interface IObfuscator
|
|
|
|
|
{
|
2025-06-20 16:56:14 +08:00
|
|
|
|
bool ObfuscateBasicUnaryOp(Instruction inst, EvalDataType op, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
2025-06-17 20:21:28 +08:00
|
|
|
|
|
2025-06-20 16:56:14 +08:00
|
|
|
|
bool ObfuscateBasicBinOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
2025-06-17 20:21:28 +08:00
|
|
|
|
|
2025-06-20 16:56:14 +08:00
|
|
|
|
bool ObfuscateUnaryBitwiseOp(Instruction inst, EvalDataType op, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
2025-06-17 20:21:28 +08:00
|
|
|
|
|
2025-06-20 16:56:14 +08:00
|
|
|
|
bool ObfuscateBinBitwiseOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
2025-06-17 20:21:28 +08:00
|
|
|
|
|
2025-06-20 16:56:14 +08:00
|
|
|
|
bool ObfuscateBitShiftOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
2025-06-17 20:21:28 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
abstract class ObfuscatorBase : IObfuscator
|
|
|
|
|
{
|
2025-06-20 16:56:14 +08:00
|
|
|
|
public abstract bool ObfuscateBasicUnaryOp(Instruction inst, EvalDataType op, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
|
|
|
|
public abstract bool ObfuscateBasicBinOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
|
|
|
|
public abstract bool ObfuscateUnaryBitwiseOp(Instruction inst, EvalDataType op, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
|
|
|
|
public abstract bool ObfuscateBinBitwiseOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
|
|
|
|
public abstract bool ObfuscateBitShiftOp(Instruction inst, EvalDataType op1, EvalDataType op2, EvalDataType ret, List<Instruction> outputInsts, ObfusMethodContext ctx);
|
2025-06-17 20:21:28 +08:00
|
|
|
|
}
|
|
|
|
|
}
|