From 2fcd13000bc0021a56d3e7b13232371f6c09bb2b Mon Sep 17 00:00:00 2001 From: de4dot Date: Tue, 1 Nov 2011 14:18:29 +0100 Subject: [PATCH] Add option to disable method inlining --- blocks/cflow/BlocksCflowDeobfuscator.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/blocks/cflow/BlocksCflowDeobfuscator.cs b/blocks/cflow/BlocksCflowDeobfuscator.cs index 6e6cf9d5..6081f665 100644 --- a/blocks/cflow/BlocksCflowDeobfuscator.cs +++ b/blocks/cflow/BlocksCflowDeobfuscator.cs @@ -18,6 +18,7 @@ */ using System.Collections.Generic; +using Mono.Cecil; using Mono.Cecil.Cil; namespace de4dot.blocks.cflow { @@ -31,6 +32,8 @@ namespace de4dot.blocks.cflow { StLdlocFixer stLdlocFixer = new StLdlocFixer(); MethodCallInliner methodCallInliner = new MethodCallInliner(); + public bool InlineMethods { get; set; } + public void init(Blocks blocks) { this.blocks = blocks; } @@ -49,9 +52,11 @@ namespace de4dot.blocks.cflow { if (iterations == 0) changed |= fixDotfuscatorLoop(); - foreach (var block in allBlocks) { - methodCallInliner.init(blocks, block); - changed |= methodCallInliner.deobfuscate(); + if (InlineMethods) { + foreach (var block in allBlocks) { + methodCallInliner.init(blocks, block); + changed |= methodCallInliner.deobfuscate(); + } } foreach (var block in allBlocks) {