obfuz/com.code-philosophy.obfuz/Editor/ObfusPasses/CleanUp/CleanUpInstructionPass.cs

42 lines
1.1 KiB
C#

using dnlib.DotNet;
using dnlib.DotNet.Emit;
namespace Obfuz.ObfusPasses.CleanUp
{
public class CleanUpInstructionPass : ObfuscationPassBase
{
public override ObfuscationPassType Type => ObfuscationPassType.None;
public override void Start()
{
}
public override void Stop()
{
}
public override void Process()
{
var ctx = ObfuscationPassContext.Current;
foreach (ModuleDef mod in ctx.modulesToObfuscate)
{
foreach (TypeDef type in mod.GetTypes())
{
foreach (MethodDef method in type.Methods)
{
if (method.HasBody)
{
CilBody body = method.Body;
body.SimplifyBranches();
body.OptimizeMacros();
body.OptimizeBranches();
// TODO remove dup
}
}
}
}
}
}
}