Allow passing dumped methods to reload()

This commit is contained in:
de4dot 2011-10-29 02:22:36 +02:00
parent 0e70d020b4
commit a6dcd03d26

View File

@ -48,14 +48,14 @@ namespace de4dot {
module.Write(newFilename); module.Write(newFilename);
} }
public ModuleDefinition reload(byte[] newModuleData) { public ModuleDefinition reload(byte[] newModuleData, Dictionary<uint, DumpedMethod> dumpedMethods) {
var assemblyResolver = AssemblyResolver.Instance; var assemblyResolver = AssemblyResolver.Instance;
assemblyResolver.removeModule(module); assemblyResolver.removeModule(module);
dumpedMethods = new Dictionary<uint, DumpedMethod>(); this.dumpedMethods = dumpedMethods;
var readerParameters = new ReaderParameters(ReadingMode.Deferred); var readerParameters = new ReaderParameters(ReadingMode.Deferred);
readerParameters.AssemblyResolver = assemblyResolver; readerParameters.AssemblyResolver = assemblyResolver;
module = ModuleDefinition.ReadModule(new MemoryStream(newModuleData), readerParameters); module = ModuleDefinition.ReadModule(new MemoryStream(newModuleData), readerParameters, dumpedMethods);
assemblyResolver.addModule(module); assemblyResolver.addModule(module);
return module; return module;
} }