示例#1
0
        private void ForceQuitProcess()
        {
            if (AllowQuit())
            {
                if (memoryForm != null)
                {
                    memoryForm.Close();
                }

                if (disassemblyForm != null)
                {
                    disassemblyForm.Close();
                }

                if (registersForm != null)
                {
                    registersForm.Close();
                }

                if (breakpointForm != null)
                {
                    breakpointForm.Close();
                }

                OrbisDbg.SendProcessSignal(OrbisDbg.SIGNALS.SIGKILL);

                SetButtonsEnabled(false);
            }
            else
            {
                MessageBox.Show("Please clear breakpoints and detach before quittting the game", "Process can't quit");
            }
        }
示例#2
0
        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();
            }
        }