diff --git a/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs b/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs index 08d56f1c..8e25f2bd 100644 --- a/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/DeepSea/Deobfuscator.cs @@ -141,10 +141,8 @@ namespace de4dot.code.deobfuscators.DeepSea { } DeobfuscatedFile.stringDecryptersAdded(); - if (options.DecryptResources) { - resourceResolver.initialize(DeobfuscatedFile, this); - decryptResources(); - } + resourceResolver.initialize(DeobfuscatedFile, this); + decryptResources(); dumpEmbeddedAssemblies(); @@ -168,6 +166,8 @@ namespace de4dot.code.deobfuscators.DeepSea { if (!options.DumpEmbeddedAssemblies) return; foreach (var info in assemblyResolver.getAssemblyInfos()) { + if (info.resource == resourceResolver.Resource) + continue; DeobfuscatedFile.createAssemblyFile(info.data, info.simpleName, info.extension); addResourceToBeRemoved(info.resource, string.Format("Embedded assembly: {0}", info.fullName)); } diff --git a/de4dot.code/deobfuscators/DeepSea/ResourceResolver.cs b/de4dot.code/deobfuscators/DeepSea/ResourceResolver.cs index 9b4de2b1..bcb89f4f 100644 --- a/de4dot.code/deobfuscators/DeepSea/ResourceResolver.cs +++ b/de4dot.code/deobfuscators/DeepSea/ResourceResolver.cs @@ -23,6 +23,10 @@ namespace de4dot.code.deobfuscators.DeepSea { class ResourceResolver : ResolverBase { EmbeddedResource resource; + public EmbeddedResource Resource { + get { return resource; } + } + public ResourceResolver(ModuleDefinition module) : base(module) { }