Fix problem when resources aren't encrypted or compressed
This commit is contained in:
parent
779d1a8a31
commit
4f02f84d84
|
@ -37,6 +37,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator {
|
||||||
public byte[] decrypt(Stream resourceStream) {
|
public byte[] decrypt(Stream resourceStream) {
|
||||||
byte flags = (byte)resourceStream.ReadByte();
|
byte flags = (byte)resourceStream.ReadByte();
|
||||||
Stream sourceStream = resourceStream;
|
Stream sourceStream = resourceStream;
|
||||||
|
bool didSomething = false;
|
||||||
|
|
||||||
if ((flags & 1) != 0) {
|
if ((flags & 1) != 0) {
|
||||||
var memStream = new MemoryStream((int)resourceStream.Length);
|
var memStream = new MemoryStream((int)resourceStream.Length);
|
||||||
|
@ -59,6 +60,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sourceStream = memStream;
|
sourceStream = memStream;
|
||||||
|
didSomething = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & 2) != 0) {
|
if ((flags & 2) != 0) {
|
||||||
|
@ -74,6 +76,7 @@ namespace de4dot.deobfuscators.CryptoObfuscator {
|
||||||
}
|
}
|
||||||
|
|
||||||
sourceStream = memStream;
|
sourceStream = memStream;
|
||||||
|
didSomething = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((flags & 4) != 0) {
|
if ((flags & 4) != 0) {
|
||||||
|
@ -83,9 +86,10 @@ namespace de4dot.deobfuscators.CryptoObfuscator {
|
||||||
memStream.WriteByte((byte)~sourceStream.ReadByte());
|
memStream.WriteByte((byte)~sourceStream.ReadByte());
|
||||||
|
|
||||||
sourceStream = memStream;
|
sourceStream = memStream;
|
||||||
|
didSomething = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sourceStream is MemoryStream) {
|
if (didSomething && sourceStream is MemoryStream) {
|
||||||
var memStream = (MemoryStream)sourceStream;
|
var memStream = (MemoryStream)sourceStream;
|
||||||
return memStream.ToArray();
|
return memStream.ToArray();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user