diff --git a/de4dot.code/ObfuscatedFile.cs b/de4dot.code/ObfuscatedFile.cs index 3f79577d..3330636e 100644 --- a/de4dot.code/ObfuscatedFile.cs +++ b/de4dot.code/ObfuscatedFile.cs @@ -407,12 +407,10 @@ namespace de4dot.code { } IEnumerable getMethodTokens() { - var tokens = new List(); + if (!userStringDecrypterMethods) + return deob.getStringDecrypterMethods(); - if (!userStringDecrypterMethods) { - options.StringDecrypterMethods.Clear(); - options.StringDecrypterMethods.AddRange(deob.getStringDecrypterMethods()); - } + var tokens = new List(); foreach (var val in options.StringDecrypterMethods) { var tokenStr = val.Trim(); diff --git a/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs b/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs index e8bb9ed0..36472ad6 100644 --- a/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Babel_NET/Deobfuscator.cs @@ -259,10 +259,10 @@ namespace de4dot.code.deobfuscators.Babel_NET { base.deobfuscateEnd(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); if (stringDecrypter.DecryptMethod != null) - list.Add(stringDecrypter.DecryptMethod.MetadataToken.ToInt32().ToString("X8")); + list.Add(stringDecrypter.DecryptMethod.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs b/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs index 539cba8a..ba1113c1 100644 --- a/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/CliSecure/Deobfuscator.cs @@ -225,10 +225,10 @@ namespace de4dot.code.deobfuscators.CliSecure { base.deobfuscateEnd(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); if (stringDecrypter.Method != null) - list.Add(stringDecrypter.Method.MetadataToken.ToInt32().ToString("X8")); + list.Add(stringDecrypter.Method.MetadataToken.ToInt32()); return list; } diff --git a/de4dot.code/deobfuscators/CodeVeil/Deobfuscator.cs b/de4dot.code/deobfuscators/CodeVeil/Deobfuscator.cs index 6f98e9ae..4dd868aa 100644 --- a/de4dot.code/deobfuscators/CodeVeil/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/CodeVeil/Deobfuscator.cs @@ -278,10 +278,10 @@ namespace de4dot.code.deobfuscators.CodeVeil { base.deobfuscateEnd(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); if (stringDecrypter.DecryptMethod != null) - list.Add(stringDecrypter.DecryptMethod.MetadataToken.ToInt32().ToString("X8")); + list.Add(stringDecrypter.DecryptMethod.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs b/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs index 43c0922c..0238c936 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs @@ -231,10 +231,10 @@ namespace de4dot.code.deobfuscators.CryptoObfuscator { addResourceToBeRemoved(resource, reason); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); if (stringDecrypter.Method != null) - list.Add(stringDecrypter.Method.MetadataToken.ToInt32().ToString("X8")); + list.Add(stringDecrypter.Method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs b/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs index 3d495b03..98af2ec1 100644 --- a/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs @@ -253,10 +253,10 @@ done: removeInlinedMethods(DsInlinedMethodsFinder.find(module)); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); foreach (var method in stringDecrypter.DecrypterMethods) - list.Add(method.MetadataToken.ToInt32().ToString("X8")); + list.Add(method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/DeobfuscatorBase.cs b/de4dot.code/deobfuscators/DeobfuscatorBase.cs index 8352a56a..d7909d58 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorBase.cs @@ -224,9 +224,7 @@ namespace de4dot.code.deobfuscators { } } - public virtual IEnumerable getStringDecrypterMethods() { - return new List(); - } + public abstract IEnumerable getStringDecrypterMethods(); class MethodCallRemover { Dictionary> methodNameInfos = new Dictionary>(); diff --git a/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs b/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs index 25813070..4e332fb6 100644 --- a/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Dotfuscator/Deobfuscator.cs @@ -126,10 +126,10 @@ namespace de4dot.code.deobfuscators.Dotfuscator { base.deobfuscateEnd(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); foreach (var method in stringDecrypter.StringDecrypters) - list.Add(method.MetadataToken.ToInt32().ToString("X8")); + list.Add(method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/Eazfuscator_NET/Deobfuscator.cs b/de4dot.code/deobfuscators/Eazfuscator_NET/Deobfuscator.cs index 8d742ad9..534f9ac2 100644 --- a/de4dot.code/deobfuscators/Eazfuscator_NET/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Eazfuscator_NET/Deobfuscator.cs @@ -545,10 +545,10 @@ namespace de4dot.code.deobfuscators.Eazfuscator_NET { base.deobfuscateEnd(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); if (decryptStringMethod != null) - list.Add(decryptStringMethod.MetadataToken.ToInt32().ToString("X8")); + list.Add(decryptStringMethod.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/Goliath_NET/Deobfuscator.cs b/de4dot.code/deobfuscators/Goliath_NET/Deobfuscator.cs index ac15032e..d4ce0294 100644 --- a/de4dot.code/deobfuscators/Goliath_NET/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Goliath_NET/Deobfuscator.cs @@ -270,10 +270,10 @@ namespace de4dot.code.deobfuscators.Goliath_NET { findAndRemoveInlinedMethods(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); foreach (var method in stringDecrypter.getMethods()) - list.Add(method.MetadataToken.ToInt32().ToString("X8")); + list.Add(method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/IDeobfuscator.cs b/de4dot.code/deobfuscators/IDeobfuscator.cs index 873394de..21b2b882 100644 --- a/de4dot.code/deobfuscators/IDeobfuscator.cs +++ b/de4dot.code/deobfuscators/IDeobfuscator.cs @@ -107,6 +107,6 @@ namespace de4dot.code.deobfuscators { void deobfuscateEnd(); // Called to get method token / pattern of string decrypters - IEnumerable getStringDecrypterMethods(); + IEnumerable getStringDecrypterMethods(); } } diff --git a/de4dot.code/deobfuscators/Skater_NET/Deobfuscator.cs b/de4dot.code/deobfuscators/Skater_NET/Deobfuscator.cs index e625ba67..3d09eb37 100644 --- a/de4dot.code/deobfuscators/Skater_NET/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Skater_NET/Deobfuscator.cs @@ -118,8 +118,8 @@ namespace de4dot.code.deobfuscators.Skater_NET { base.deobfuscateEnd(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); return list; } } diff --git a/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs b/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs index 03e09fd7..e226c4f7 100644 --- a/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/SmartAssembly/Deobfuscator.cs @@ -542,10 +542,10 @@ namespace de4dot.code.deobfuscators.SmartAssembly { } } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); foreach (var method in staticStringInliner.Methods) - list.Add(method.MetadataToken.ToInt32().ToString("X8")); + list.Add(method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/Spices_Net/Deobfuscator.cs b/de4dot.code/deobfuscators/Spices_Net/Deobfuscator.cs index ec0067f2..b26ca06c 100644 --- a/de4dot.code/deobfuscators/Spices_Net/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Spices_Net/Deobfuscator.cs @@ -208,10 +208,10 @@ namespace de4dot.code.deobfuscators.Spices_Net { } } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); foreach (var info in stringDecrypter.DecrypterInfos) - list.Add(info.method.MetadataToken.ToInt32().ToString("X8")); + list.Add(info.method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs b/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs index a6c1bf73..205a8b35 100644 --- a/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Unknown/Deobfuscator.cs @@ -17,6 +17,7 @@ along with de4dot. If not, see . */ +using System.Collections.Generic; using System.Text.RegularExpressions; namespace de4dot.code.deobfuscators.Unknown { @@ -112,5 +113,9 @@ namespace de4dot.code.deobfuscators.Unknown { } return null; } + + public override IEnumerable getStringDecrypterMethods() { + return new List(); + } } } diff --git a/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs b/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs index 2cde2af0..fc4cba7e 100644 --- a/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/Xenocode/Deobfuscator.cs @@ -109,10 +109,10 @@ namespace de4dot.code.deobfuscators.Xenocode { base.deobfuscateEnd(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); if (stringDecrypter.Method != null) - list.Add(stringDecrypter.Method.MetadataToken.ToInt32().ToString("X8")); + list.Add(stringDecrypter.Method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/v3/Deobfuscator.cs b/de4dot.code/deobfuscators/dotNET_Reactor/v3/Deobfuscator.cs index f4f880c4..55e9931b 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/v3/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/v3/Deobfuscator.cs @@ -329,10 +329,10 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v3 { findAndRemoveInlinedMethods(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); foreach (var method in decrypterType.StringDecrypters) - list.Add(method.MetadataToken.ToInt32().ToString("X8")); + list.Add(method.MetadataToken.ToInt32()); return list; } } diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/v4/Deobfuscator.cs b/de4dot.code/deobfuscators/dotNET_Reactor/v4/Deobfuscator.cs index 353c1a83..4e76bd32 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/v4/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/v4/Deobfuscator.cs @@ -580,12 +580,12 @@ namespace de4dot.code.deobfuscators.dotNET_Reactor.v4 { findAndRemoveInlinedMethods(); } - public override IEnumerable getStringDecrypterMethods() { - var list = new List(); + public override IEnumerable getStringDecrypterMethods() { + var list = new List(); foreach (var info in stringDecrypter.DecrypterInfos) - list.Add(info.method.MetadataToken.ToInt32().ToString("X8")); + list.Add(info.method.MetadataToken.ToInt32()); if (stringDecrypter.OtherStringDecrypter != null) - list.Add(stringDecrypter.OtherStringDecrypter.MetadataToken.ToInt32().ToString("X8")); + list.Add(stringDecrypter.OtherStringDecrypter.MetadataToken.ToInt32()); return list; }