diff --git a/de4dot.code/AssemblyModule.cs b/de4dot.code/AssemblyModule.cs index ee030fab..f910d1cd 100644 --- a/de4dot.code/AssemblyModule.cs +++ b/de4dot.code/AssemblyModule.cs @@ -48,6 +48,18 @@ namespace de4dot { module.Write(newFilename); } + public ModuleDefinition reload(byte[] newModuleData) { + var assemblyResolver = AssemblyResolver.Instance; + assemblyResolver.removeModule(module); + dumpedMethods = new Dictionary(); + + var readerParameters = new ReaderParameters(ReadingMode.Deferred); + readerParameters.AssemblyResolver = assemblyResolver; + module = ModuleDefinition.ReadModule(new MemoryStream(newModuleData), readerParameters); + assemblyResolver.addModule(module); + return module; + } + void readMethodsFile() { if (new FileInfo(methodsFilename).Exists) { using (var reader = new BinaryReader(File.Open(methodsFilename, FileMode.Open, FileAccess.Read, FileShare.Read))) {