From 50a9421657d49f4522f517acf188a076223c8233 Mon Sep 17 00:00:00 2001 From: de4dot Date: Sat, 22 Oct 2011 14:53:24 +0200 Subject: [PATCH] Assembly resolver doesn't need resource decrypter --- .../CryptoObfuscator/AssemblyResolver.cs | 4 +--- .../deobfuscators/CryptoObfuscator/Deobfuscator.cs | 2 +- .../CryptoObfuscator/ResourceDecrypter.cs | 13 +++++++------ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs b/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs index 61380ffa..1b764622 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/AssemblyResolver.cs @@ -27,7 +27,6 @@ using de4dot.blocks; namespace de4dot.deobfuscators.CryptoObfuscator { class AssemblyResolver { ModuleDefinition module; - ResourceDecrypter resourceDecrypter; TypeDefinition resolverType; List assemblyInfos; @@ -50,9 +49,8 @@ namespace de4dot.deobfuscators.CryptoObfuscator { get { return assemblyInfos; } } - public AssemblyResolver(ModuleDefinition module, ResourceDecrypter resourceDecrypter) { + public AssemblyResolver(ModuleDefinition module) { this.module = module; - this.resourceDecrypter = resourceDecrypter; } public void find() { diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs b/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs index 4b9a4f73..aa39c88b 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/Deobfuscator.cs @@ -136,7 +136,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator { resourceDecrypter = new ResourceDecrypter(module); resourceResolver = new ResourceResolver(module, resourceDecrypter); - assemblyResolver = new AssemblyResolver(module, resourceDecrypter); + assemblyResolver = new AssemblyResolver(module); resourceResolver.find(); assemblyResolver.find(); diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs index 497c5b58..95a26ae2 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs @@ -64,12 +64,13 @@ namespace de4dot.deobfuscators.CryptoObfuscator { if ((flags & 2) != 0) { var memStream = new MemoryStream((int)resourceStream.Length); sourceStream.Position = 0; - var inflater = new DeflateStream(sourceStream, CompressionMode.Decompress); - while (true) { - int count = inflater.Read(buffer1, 0, buffer1.Length); - if (count <= 0) - break; - memStream.Write(buffer1, 0, count); + using (var inflater = new DeflateStream(sourceStream, CompressionMode.Decompress)) { + while (true) { + int count = inflater.Read(buffer1, 0, buffer1.Length); + if (count <= 0) + break; + memStream.Write(buffer1, 0, count); + } } sourceStream = memStream;