From 63607a66788278171882c41b8a5776e7f5bf19b1 Mon Sep 17 00:00:00 2001 From: PythEch Date: Sat, 23 Jan 2016 17:09:01 +0200 Subject: [PATCH] Fix string decryption for Eazfuscator.NET 5.1 v5.1 changes a few instructions in , other than it's almost the same --- .../deobfuscators/Eazfuscator_NET/StringDecrypter.cs | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/de4dot.code/deobfuscators/Eazfuscator_NET/StringDecrypter.cs b/de4dot.code/deobfuscators/Eazfuscator_NET/StringDecrypter.cs index fe99038f..ccdff446 100644 --- a/de4dot.code/deobfuscators/Eazfuscator_NET/StringDecrypter.cs +++ b/de4dot.code/deobfuscators/Eazfuscator_NET/StringDecrypter.cs @@ -47,6 +47,7 @@ namespace de4dot.code.deobfuscators.Eazfuscator_NET { EfConstantsReader stringMethodConsts; bool isV32OrLater; bool isV50OrLater; + bool isV51OrLater; int? validStringDecrypterValue; DynamicDynocodeIterator dynocode; MethodDef realMethod; @@ -429,11 +430,7 @@ namespace de4dot.code.deobfuscators.Eazfuscator_NET { return null; if (instrs[index++].OpCode.Code != Code.Ldc_I4_0) return null; - if (instrs[index++].OpCode.Code != Code.Ceq) - return null; - if (instrs[index++].OpCode.Code != Code.Ldc_I4_0) - return null; - if (instrs[index++].OpCode.Code != Code.Ceq) + if (instrs[index++].OpCode.Code != Code.Cgt_Un) return null; var stloc = instrs[index++]; if (!stloc.IsStloc()) @@ -720,8 +717,8 @@ done: ; if (index + 4 >= instrs.Count) return false; - var ldloc = instrs[index + 3]; - var stfld = instrs[index + 4]; + var ldloc = instrs[index + 2]; + var stfld = instrs[index + 3]; if (!ldloc.IsLdloc() || stfld.OpCode.Code != Code.Stfld) return false; var enumerableField = stfld.Operand as FieldDef;