Assembly resolver doesn't need resource decrypter

This commit is contained in:
de4dot 2011-10-22 14:53:24 +02:00
parent 3f1b9152bd
commit 50a9421657
3 changed files with 9 additions and 10 deletions

View File

@ -27,7 +27,6 @@ using de4dot.blocks;
namespace de4dot.deobfuscators.CryptoObfuscator {
class AssemblyResolver {
ModuleDefinition module;
ResourceDecrypter resourceDecrypter;
TypeDefinition resolverType;
List<AssemblyInfo> 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() {

View File

@ -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();

View File

@ -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;