diff --git a/de4dot.code/deobfuscators/DeobfuscatorBase.cs b/de4dot.code/deobfuscators/DeobfuscatorBase.cs index 6f959717..3694d6d2 100644 --- a/de4dot.code/deobfuscators/DeobfuscatorBase.cs +++ b/de4dot.code/deobfuscators/DeobfuscatorBase.cs @@ -499,6 +499,14 @@ namespace de4dot.deobfuscators { return list.Count == 0 ? null : list[0]; } + protected bool hasMetadataStream(string name) { + foreach (var stream in module.MetadataStreams) { + if (stream.name == name) + return true; + } + return false; + } + public virtual bool isValidNamespaceName(string ns) { if (ns == null) return false; diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs b/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs index c737e42b..5524db26 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/Deobfuscator.cs @@ -211,6 +211,11 @@ namespace de4dot.deobfuscators.dotNET_Reactor { if (sum > 0) val += 100 + 10 * (sum - 1); + if (sum == 0) { + if (hasMetadataStream("#GUlD") && hasMetadataStream("#Blop")) + val += 10; + } + return val; }