private void BreakProcess() { if (!OrbisDbg.IsProcessPaused()) { if (OrbisDbg.SendProcessSignal(OrbisDbg.SIGNALS.SIGSTOP) == 0) { return; } if (breakpoints.Count > 0) { for (int i = 0; i < breakpoints.Count; i++) { Breakpoint bp = breakpoints[i]; if (SelectedProcess.Equals(bp.process) && bp.enabled) { OrbisDbg.Ext.WriteByte(bp.address, bp.instruction); } } } /*OrbisDbg.registers regs = OrbisDbg.GetRegisters(); * * if (registersForm != null) * registersForm.UpdateRegisterWindow(regs); * * if(memoryForm != null) * memoryForm.UpdateMemoryView(regs.r_rip, 0x1000, OrbisDbg.GetMemory(regs.r_rip, 0x1000)); * * if(disassemblyForm != null) * disassemblyForm.UpdateDisassembly(regs.r_rip, OrbisDbg.GetMemory(regs.r_rip, 0x100), disassemblyForm.IsShowingBytes());*/ OrbisDbg.SetSingleStep(); } }
private void ContinueProcess() { bUpdatedOnPause = false; PreviousRip = 0x0; if (OrbisDbg.IsProcessPaused()) { OrbisDbg.ClearSingleStep(); if (breakpoints.Count > 0) { for (int i = 0; i < breakpoints.Count; i++) { Breakpoint bp = breakpoints[i]; if (SelectedProcess.Equals(bp.process) && bp.enabled) { OrbisDbg.Ext.WriteByte(bp.address, 0xCC); } } } if (registersForm != null) { registersForm.FreezeRegisters(); } if (disassemblyForm != null) { disassemblyForm.ClearDisassembly(); } OrbisDbg.ContinueProcess(); } }
private void SetRegistersButton_Click(object sender, EventArgs e) { if (OrbisDbg.IsProcessPaused()) { OrbisDbg.SetRegisters(GetRegisters()); } else { MessageBox.Show("The process must be paused before you can get/set registers", "Error Getting Registers"); } }
private static void CheckForPausedStateThread(MainForm main) { while (true) { bool isPaused = OrbisDbg.IsProcessPaused(); if (isPaused) { main.Invoke((MethodInvoker) delegate() { main.UpdateFormsOnPaused(); }); } Thread.Sleep(500); } }
private void StepProcess() { if (OrbisDbg.IsProcessPaused()) { OrbisDbg.SingleStep(); if (registersForm != null) { registersForm.UpdateRegisterWindow(OrbisDbg.GetRegisters()); } } }
private void Register_DoubleClick(object sender, EventArgs e) { if (OrbisDbg.IsProcessPaused()) { TextBox textBox = sender as TextBox; registerValue = textBox.Text; textBox.ReadOnly = false; textBox.ForeColor = Color.Red; } else { MessageBox.Show("The process must be paused before you can get/set registers", "Error Getting Registers"); } }