From 07f0376b4547559cf8cae37c85d81fb310f2ceea Mon Sep 17 00:00:00 2001 From: de4dot Date: Fri, 25 Nov 2011 15:21:29 +0100 Subject: [PATCH] Add methods to encrypt resource data, and set new data --- .../dotNET_Reactor/EncryptedResource.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs b/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs index 97d9d780..cda5905f 100644 --- a/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs +++ b/de4dot.code/deobfuscators/dotNET_Reactor/EncryptedResource.cs @@ -162,5 +162,27 @@ namespace de4dot.deobfuscators.dotNET_Reactor { } } } + + public byte[] encrypt(byte[] data) { + if (key == null || iv == null) + throw new ApplicationException("Can't encrypt resource"); + + using (var aes = new RijndaelManaged { Mode = CipherMode.CBC }) { + using (var transform = aes.CreateEncryptor(key, iv)) { + return transform.TransformFinalBlock(data, 0, data.Length); + } + } + } + + public void updateResource(byte[] encryptedData) { + for (int i = 0; i < module.Resources.Count; i++) { + if (module.Resources[i] == encryptedDataResource) { + encryptedDataResource = new EmbeddedResource(encryptedDataResource.Name, encryptedDataResource.Attributes, encryptedData); + module.Resources[i] = encryptedDataResource; + return; + } + } + throw new ApplicationException("Could not find encrypted resource"); + } } }