Add methods to encrypt resource data, and set new data

This commit is contained in:
de4dot 2011-11-25 15:21:29 +01:00
parent d9a776aa3f
commit 07f0376b45

View File

@ -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");
}
}
}