SaveModuleToDiskModulesCtxMenuCommand(Lazy <ITheDebugger> theDebugger, Lazy <IModulesContent> modulesContent, IAppWindow appWindow, IMessageBoxService messageBoxService, SimpleProcessReader simpleProcessReader) : base(theDebugger, modulesContent) { this.appWindow = appWindow; this.messageBoxService = messageBoxService; this.simpleProcessReader = simpleProcessReader; }
public static MemoryModuleDefFile CreateAssembly(SimpleProcessReader simpleProcessReader, List <MemoryModuleDefFile> files) { var manifest = files[0]; var file = new MemoryModuleDefFile(simpleProcessReader, manifest.Process, manifest.Address, manifest.data, manifest.isInMemory, manifest.ModuleDef, false, manifest.AutoUpdateMemory); file.files = new List <MemoryModuleDefFile>(files); return(file); }
public PEFilesSaver(SimpleProcessReader simpleProcessReader, Tuple<DnModule, string>[] files) { this.simpleProcessReader = simpleProcessReader; infos = new ModuleInfo[files.Length]; for (int i = 0; i < files.Length; i++) { var module = files[i].Item1; infos[i] = new ModuleInfo(module.Process.CorProcess.Handle, module.Address, module.Size, files[i].Item2, !module.IsInMemory); maxProgress += 2; } }
MemoryModuleDefFile(SimpleProcessReader simpleProcessReader, DnProcess process, ulong address, byte[] data, bool isInMemory, ModuleDef module, bool loadSyms, bool autoUpdateMemory) : base(module, loadSyms) { this.simpleProcessReader = simpleProcessReader; Process = process; Address = address; this.data = data; this.isInMemory = isInMemory; AutoUpdateMemory = autoUpdateMemory; }
InMemoryModuleService(ITheDebugger theDebugger, IDocumentTabService documentTabService, Lazy<IMethodAnnotations> methodAnnotations, IAppWindow appWindow, SimpleProcessReader simpleProcessReader) { this.documentTabService = documentTabService; documentTreeView = documentTabService.DocumentTreeView; documentService = documentTreeView.DocumentService; this.appWindow = appWindow; this.methodAnnotations = methodAnnotations; this.theDebugger = theDebugger; this.simpleProcessReader = simpleProcessReader; theDebugger.OnProcessStateChanged_First += TheDebugger_OnProcessStateChanged_First; }
public PEFilesSaver(SimpleProcessReader simpleProcessReader, Tuple <DnModule, string>[] files) { this.simpleProcessReader = simpleProcessReader; infos = new ModuleInfo[files.Length]; for (int i = 0; i < files.Length; i++) { var module = files[i].Item1; infos[i] = new ModuleInfo(module.Process.CorProcess.Handle, module.Address, module.Size, files[i].Item2, !module.IsInMemory); maxProgress += 2; } }
InMemoryModuleService(ITheDebugger theDebugger, IDocumentTabService documentTabService, Lazy <IMethodAnnotations> methodAnnotations, IAppWindow appWindow, SimpleProcessReader simpleProcessReader) { this.documentTabService = documentTabService; documentTreeView = documentTabService.DocumentTreeView; documentService = documentTreeView.DocumentService; this.appWindow = appWindow; this.methodAnnotations = methodAnnotations; this.theDebugger = theDebugger; this.simpleProcessReader = simpleProcessReader; theDebugger.OnProcessStateChanged_First += TheDebugger_OnProcessStateChanged_First; }
public static MemoryModuleDefFile Create(SimpleProcessReader simpleProcessReader, DnModule dnModule, bool loadSyms) { Debug.Assert(!dnModule.IsDynamic); Debug.Assert(dnModule.Address != 0); ulong address = dnModule.Address; var process = dnModule.Process; var data = new byte[dnModule.Size]; string location = dnModule.IsInMemory ? string.Empty : dnModule.Name; simpleProcessReader.Read(process.CorProcess.Handle, address, data, 0, data.Length); var peImage = new PEImage(data, GetImageLayout(dnModule), true); var module = ModuleDefMD.Load(peImage); module.Location = location; bool autoUpdateMemory = false; //TODO: Init to default value if (GacInfo.IsGacPath(dnModule.Name)) { autoUpdateMemory = false; // GAC files are not likely to decrypt methods in memory } return(new MemoryModuleDefFile(simpleProcessReader, process, address, data, dnModule.IsInMemory, module, loadSyms, autoUpdateMemory)); }
public static MemoryModuleDefFile Create(SimpleProcessReader simpleProcessReader, DnModule dnModule, bool loadSyms) { Debug.Assert(!dnModule.IsDynamic); Debug.Assert(dnModule.Address != 0); ulong address = dnModule.Address; var process = dnModule.Process; var data = new byte[dnModule.Size]; string location = dnModule.IsInMemory ? string.Empty : dnModule.Name; simpleProcessReader.Read(process.CorProcess.Handle, address, data, 0, data.Length); var peImage = new PEImage(data, GetImageLayout(dnModule), true); var module = ModuleDefMD.Load(peImage); module.Location = location; bool autoUpdateMemory = false;//TODO: Init to default value if (GacInfo.IsGacPath(dnModule.Name)) autoUpdateMemory = false; // GAC files are not likely to decrypt methods in memory return new MemoryModuleDefFile(simpleProcessReader, process, address, data, dnModule.IsInMemory, module, loadSyms, autoUpdateMemory); }
public static MemoryModuleDefFile CreateAssembly(SimpleProcessReader simpleProcessReader, List<MemoryModuleDefFile> files) { var manifest = files[0]; var file = new MemoryModuleDefFile(simpleProcessReader, manifest.Process, manifest.Address, manifest.data, manifest.isInMemory, manifest.ModuleDef, false, manifest.AutoUpdateMemory); file.files = new List<MemoryModuleDefFile>(files); return file; }