private void BtnTargetSettings_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButtons.Left) { Control c = (Control)sender; Point locate = new Point(c.Location.X + e.Location.X, ((Control)sender).Location.Y + e.Location.Y); ContextMenuStrip columnsMenu = new ContextMenuStrip(); ((ToolStripMenuItem)columnsMenu.Items.Add("Big endian", null, new EventHandler((ob, ev) => { FileWatch.currentFileInfo.bigEndian = !FileStub.FileWatch.currentFileInfo.bigEndian; if (VanguardCore.vanguardConnected) { FileWatch.UpdateDomains(); } }))).Checked = FileWatch.currentFileInfo.bigEndian; ((ToolStripMenuItem)columnsMenu.Items.Add("Auto-Uncorrupt", null, new EventHandler((ob, ev) => { FileWatch.currentFileInfo.autoUncorrupt = !FileWatch.currentFileInfo.autoUncorrupt; }))).Checked = FileWatch.currentFileInfo.autoUncorrupt; ((ToolStripMenuItem)columnsMenu.Items.Add("Use Caching + Multithreading", null, new EventHandler((ob, ev) => { FileWatch.currentFileInfo.useCacheAndMultithread = !FileWatch.currentFileInfo.useCacheAndMultithread; }))).Checked = FileWatch.currentFileInfo.useCacheAndMultithread; columnsMenu.Show(this, locate); } }
public void EnableTargetInterface() { var diff = lbTarget.Location.X - btnBrowseTarget.Location.X; originalLbTargetLocation = lbTarget.Location; lbTarget.Location = btnBrowseTarget.Location; lbTarget.Visible = true; btnTargetSettings.Visible = false; btnBrowseTarget.Visible = false; originalLbTargetSize = lbTarget.Size; lbTarget.Size = new Size(lbTarget.Size.Width + diff, lbTarget.Size.Height); btnUnloadTarget.Visible = true; cbTargetType.Enabled = false; FileWatch.EnableInterface(); lbExecution.Visible = true; cbSelectedExecution.Visible = true; lbTargetStatus.Text = FileWatch.currentFileInfo.selectedTargetType.ToString() + " target loaded"; }
private void StubForm_Load(object sender, EventArgs e) { ShrinkStubForm(); cbSelectedExecution.SelectedIndex = 0; cbTargetType.SelectedIndex = 0; btnUnloadTarget.Location = btnLoadTargets.Location; btnUnloadTarget.Size = btnLoadTargets.Size; //uh oh magic numbers //this will break if the combobox font isnt Segoe UI, 12pt int magicWidth = cbTargetType.Size.Width - (411 - 387); int magicHeight = cbTargetType.Size.Width - (36 - 29); int magicX = cbTargetType.Location.X - (14 - 11); int magicY = cbTargetType.Location.Y - (14 - 11); lbTargetTypeDisplay.Font = cbTargetType.Font; //lbTargetTypeDisplay.Size = new Size(magicX, magicY); //lbTargetTypeDisplay.Location = new Point(magicWidth, magicHeight); lbTargetTypeDisplay.Visible = true; //--------------------------------------------------------------- Colors.SetRTCColor(ProgramColor, this); FileWatch.Start(); }
public void btnLoadTargets_Click(object sender, EventArgs e) { FileTarget[] overrideTargets = null; if (selectedTemplate != null) { lbTargets.Items.Clear(); overrideTargets = selectedTemplate.GetTargets(); //if (targets != null) // lbTargets.Items.AddRange(targets); //overrideTargets. } if (overrideTargets == null) { MessageBox.Show("Error loading target"); } if (!FileWatch.LoadTargets(overrideTargets)) { return; } if (!VanguardCore.vanguardConnected) { VanguardCore.Start(); } EnableTargetInterface(); }
private void StubForm_FormClosing(object sender, FormClosingEventArgs e) { if (!FileWatch.CloseTarget(false)) { e.Cancel = true; } }
private void BtnLoadTarget_Click(object sender, EventArgs e) { //only use backups for uncorrupt, reset on every reload foreach (string file in Directory.GetFiles(Path.Combine(FileWatch.currentDir, "FILEBACKUPS"))) { try { File.Delete(file); } catch { MessageBox.Show($"Could not delete file {file}"); } } if (!FileWatch.LoadTarget()) { return; } if (!VanguardCore.vanguardConnected) { VanguardCore.Start(); } EnableTargetInterface(); }
private void StubForm_FormClosing(object sender, FormClosingEventArgs e) { FileWatch.CloseActiveTargets(false, false); int nbDirtyFiles = Vault.GetDirtyTargets().Count; if (nbDirtyFiles > 0) { var answer = MessageBox.Show($"There are still {nbDirtyFiles} dirty files, would you like to restore them?", "Warning: Quitting FileStub with Dirty Files", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation); switch (answer) { case DialogResult.Cancel: e.Cancel = true; return; case DialogResult.Yes: FileWatch.RestoreDirty(); return; case DialogResult.No: default: return; } } }
public void BtnUnloadTarget_Click(object sender, EventArgs e) { if (!FileWatch.CloseTarget()) { return; } DisableTargetInterface(); }
private void BtnUnloadTarget_Click(object sender, EventArgs e) { if (!FileWatch.CloseActiveTargets(restoreTarget: false)) { return; } DisableTargetInterface(); }
private void BtnReleaseTarget_Click(object sender, EventArgs e) { if (!FileWatch.CloseTarget()) { return; } DisableTargetInterface(); }
private void StubForm_Load(object sender, EventArgs e) { cbSelectedExecution.SelectedIndex = 0; cbTargetType.SelectedIndex = 0; UICore.SetRTCColor(Color.Lavender, this); FileWatch.Start(); }
private void BtnBrowseTarget_Click(object sender, EventArgs e) { if (selectedTemplate != null) { selectedTemplate.BrowseFiles(); } else { FileWatch.InsertTargets(); } }
public void EnableTargetInterface() { btnLoadTargets.Visible = false; btnUnloadTarget.Visible = true; cbTargetType.Visible = false; FileWatch.EnableInterface(); lbExecution.Visible = true; lbTargetStatus.Text = FileWatch.currentSession.selectedTargetType.ToString() + " target loaded"; }
private void BtnBrowseTarget_Click(object sender, EventArgs e) { if (!FileWatch.LoadTarget()) { return; } if (!VanguardCore.vanguardConnected) { VanguardCore.Start(); } EnableTargetInterface(); }
private void btnSendList_Click(object sender, EventArgs e) { if (lbMultipleFiles.Items.Count == 0) { MessageBox.Show("No files are selected"); return; } FileWatch.CloseTarget(false); List <string> allFiles = new List <string>(); for (int i = 0; i < lbMultipleFiles.Items.Count; i++) { allFiles.Add(lbMultipleFiles.Items[i].ToString()); } allFiles.Sort(); string multipleFiles = ""; for (int i = 0; i < allFiles.Count; i++) { multipleFiles += allFiles[i]; if (i < allFiles.Count - 1) { multipleFiles += "|"; } } var mfi = new MultipleFileInterface(multipleFiles, FileWatch.currentFileInfo.bigEndian, FileWatch.currentFileInfo.useAutomaticBackups); if (FileWatch.currentFileInfo.useCacheAndMultithread) { mfi.getMemoryDump(); } FileWatch.currentFileInfo.targetInterface = mfi; if (VanguardCore.vanguardConnected) { FileWatch.UpdateDomains(); } this.DialogResult = DialogResult.OK; this.Close(); }
internal static bool CloseActiveTargets(bool updateDomains = true, bool restoreTarget = true) { if (FileWatch.currentSession.fileInterface != null) { if (restoreTarget) { FileWatch.RestoreTarget(); } FileWatch.currentSession.fileInterface?.CloseStream(); FileWatch.currentSession.fileInterface = null; } if (updateDomains && VanguardCore.vanguardConnected) { UpdateDomains(); } return(true); }
internal static bool CloseTarget(bool updateDomains = true) { if (FileWatch.currentFileInfo.targetInterface != null) { if (!FileWatch.RestoreTarget()) { MessageBox.Show("Unable to restore the backup. Aborting!"); return(false); } FileWatch.currentFileInfo.targetInterface.CloseStream(); FileWatch.currentFileInfo.targetInterface = null; } if (updateDomains) { UpdateDomains(); } return(true); }
private void BtnClearAllBackups_Click(object sender, EventArgs e) { if (MessageBox.Show("Are you sure you want to reset the vault?\n This will delete any remaining artifacts.", "WARNING", MessageBoxButtons.YesNo) == DialogResult.No) { return; } if (btnUnloadTarget.Visible) { BtnUnloadTarget_Click(sender, e); } FileWatch.CloseActiveTargets(); Vault.ResetVault(); lbTargets.Items.Clear(); MessageBox.Show("The vault was reset."); }
internal static bool LoadTargets(FileTarget[] provided = null) { FileTarget[] targets; string requestedFileType = currentSession.selectedTargetType; if (provided == null) { var lbTargets = S.GET <StubForm>().lbTargets; if (lbTargets.Items.Count == 0) { MessageBox.Show("No targets scheduled for loading. Aborting loading."); return(false); } targets = lbTargets.Items.Cast <FileTarget>().ToArray(); } else { targets = provided; } if (requestedFileType == TargetType.SINGLE_FILE) { FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; var target = targets[0]; string filename = targets[0].ToString(); target.BigEndian = FileWatch.currentSession.bigEndian; CloseActiveTargets(false); FileInterface fi = null; Action <object, EventArgs> action = (ob, ea) => { fi = new FileInterface(target); if (FileWatch.currentSession.useCacheAndMultithread) { fi.getMemoryDump(); } }; Action <object, EventArgs> postAction = (ob, ea) => { if (fi == null || fi.lastMemorySize == null) { MessageBox.Show("Failed to load target"); S.GET <StubForm>().DisableTargetInterface(); return; } FileWatch.currentSession.targetShortName = fi.ShortFilename; FileWatch.currentSession.targetFullName = fi.Filename; FileWatch.currentSession.fileInterface = fi; S.GET <StubForm>().lbTarget.Text = fi.GetType().ToString() + "|MemorySize:" + fi.lastMemorySize.ToString(); if (VanguardCore.vanguardConnected) { UpdateDomains(); } //Refresh the UI //RefreshUIPostLoad(); }; S.GET <StubForm>().RunProgressBar($"Loading target...", 0, action, postAction); } else //MULTIPLE_FILE { switch (currentSession.selectedTargetType) { case TargetType.MULTIPLE_FILE_SINGLEDOMAIN: FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN: default: FileInterface.identity = FileInterfaceIdentity.HASHED_PREFIX; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN_FULLPATH: FileInterface.identity = FileInterfaceIdentity.FULL_PATH; break; } foreach (var target in targets) { target.BigEndian = FileWatch.currentSession.bigEndian; } var mfi = new MultipleFileInterface(targets, FileWatch.currentSession.bigEndian, FileWatch.currentSession.useAutomaticBackups); if (FileWatch.currentSession.useCacheAndMultithread) { mfi.getMemoryDump(); } FileWatch.currentSession.fileInterface = mfi; if (VanguardCore.vanguardConnected) { FileWatch.UpdateDomains(); } S.GET <StubForm>().lbTarget.Text = mfi.ShortFilename + "|MemorySize:" + mfi.lastMemorySize.ToString(); StockpileManagerEmuSide.UnCorruptBL = null; } return(true); }
private void btnRestoreDirty_Click(object sender, EventArgs e) { FileWatch.RestoreDirty(); }
private void btnBakeAllDirty_Click(object sender, EventArgs e) { FileWatch.BakeDirty(); }
private void BtnKillProcess_Click(object sender, EventArgs e) { FileWatch.KillProcess(); }