using System; using System.IO; using Mono.Cecil; namespace de4dot.deobfuscators { static class DeobUtils { public static void decryptAndAddResources(ModuleDefinition module, string encryptedName, Func decryptResource) { Log.v("Decrypting resources, name: {0}", Utils.toCsharpString(encryptedName)); var decryptedResourceData = decryptResource(); if (decryptedResourceData == null) throw new ApplicationException("decryptedResourceData is null"); var resourceModule = ModuleDefinition.ReadModule(new MemoryStream(decryptedResourceData)); Log.indent(); foreach (var rsrc in resourceModule.Resources) { Log.v("Adding decrypted resource {0}", Utils.toCsharpString(rsrc.Name)); module.Resources.Add(rsrc); } Log.deIndent(); } } }