From 4f02f84d8429a8544c4587b47e75690a3e87cbea Mon Sep 17 00:00:00 2001 From: de4dot Date: Sun, 23 Oct 2011 22:03:38 +0200 Subject: [PATCH] Fix problem when resources aren't encrypted or compressed --- .../deobfuscators/CryptoObfuscator/ResourceDecrypter.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs index 6fe509e1..d57188e8 100644 --- a/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs +++ b/de4dot.code/deobfuscators/CryptoObfuscator/ResourceDecrypter.cs @@ -37,6 +37,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator { public byte[] decrypt(Stream resourceStream) { byte flags = (byte)resourceStream.ReadByte(); Stream sourceStream = resourceStream; + bool didSomething = false; if ((flags & 1) != 0) { var memStream = new MemoryStream((int)resourceStream.Length); @@ -59,6 +60,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator { } } sourceStream = memStream; + didSomething = true; } if ((flags & 2) != 0) { @@ -74,6 +76,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator { } sourceStream = memStream; + didSomething = true; } if ((flags & 4) != 0) { @@ -83,9 +86,10 @@ namespace de4dot.deobfuscators.CryptoObfuscator { memStream.WriteByte((byte)~sourceStream.ReadByte()); sourceStream = memStream; + didSomething = true; } - if (sourceStream is MemoryStream) { + if (didSomething && sourceStream is MemoryStream) { var memStream = (MemoryStream)sourceStream; return memStream.ToArray(); }