diff --git a/de4dot.code/deobfuscators/Confuser/Deobfuscator.cs b/de4dot.code/deobfuscators/Confuser/Deobfuscator.cs index 3ea9c6af..fa3d1258 100644 --- a/de4dot.code/deobfuscators/Confuser/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Confuser/Deobfuscator.cs @@ -151,6 +151,11 @@ namespace de4dot.code.deobfuscators.Confuser { public override void deobfuscateBegin() { base.deobfuscateBegin(); + if (jitMethodsDecrypter != null) { + addModuleCctorInitCallToBeRemoved(jitMethodsDecrypter.InitMethod); + addTypeToBeRemoved(jitMethodsDecrypter.Type, "Method decrypter (JIT) type"); + } + proxyCallFixer.find(); } diff --git a/de4dot.code/deobfuscators/Confuser/JitMethodsDecrypter.cs b/de4dot.code/deobfuscators/Confuser/JitMethodsDecrypter.cs index e380b931..54e63155 100644 --- a/de4dot.code/deobfuscators/Confuser/JitMethodsDecrypter.cs +++ b/de4dot.code/deobfuscators/Confuser/JitMethodsDecrypter.cs @@ -50,6 +50,14 @@ namespace de4dot.code.deobfuscators.Confuser { public int options; } + public MethodDefinition InitMethod { + get { return initMethod; } + } + + public TypeDefinition Type { + get { return initMethod != null ? initMethod.DeclaringType : null; } + } + public bool Detected { get { return initMethod != null; } }