From ca65972c64063d856bc4db60883537a0a89764d3 Mon Sep 17 00:00:00 2001 From: de4dot Date: Mon, 16 Jul 2012 18:02:32 +0200 Subject: [PATCH] Add a force option to deobfuscate() method --- de4dot.code/ObfuscatedFile.cs | 6 +++++- de4dot.code/deobfuscators/ISimpleDeobfuscator.cs | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/de4dot.code/ObfuscatedFile.cs b/de4dot.code/ObfuscatedFile.cs index 15c38078..e120a1ef 100644 --- a/de4dot.code/ObfuscatedFile.cs +++ b/de4dot.code/ObfuscatedFile.cs @@ -731,7 +731,11 @@ namespace de4dot.code { } void ISimpleDeobfuscator.deobfuscate(MethodDefinition method) { - if (check(method, SimpleDeobFlags.HasDeobfuscated)) + ((ISimpleDeobfuscator)this).deobfuscate(method, false); + } + + void ISimpleDeobfuscator.deobfuscate(MethodDefinition method, bool force) { + if (!force && check(method, SimpleDeobFlags.HasDeobfuscated)) return; deobfuscate(method, "Deobfuscating control flow", (blocks) => { diff --git a/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs b/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs index 527bcf3d..6b028100 100644 --- a/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs +++ b/de4dot.code/deobfuscators/ISimpleDeobfuscator.cs @@ -22,6 +22,7 @@ using Mono.Cecil; namespace de4dot.code.deobfuscators { public interface ISimpleDeobfuscator { void deobfuscate(MethodDefinition method); + void deobfuscate(MethodDefinition method, bool force); void decryptStrings(MethodDefinition method, IDeobfuscator deob); } }