Skip to main content
Glama
0xhackerfren

Frida Game Hacking MCP

by 0xhackerfren

remove_breakpoint

Remove a breakpoint at a specified memory address in game hacking and reverse engineering workflows using Frida MCP server.

Instructions

Remove a breakpoint.

Args:
    address: Address of breakpoint to remove

Returns:
    Removal status.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
addressYes

Implementation Reference

  • The handler function for the 'remove_breakpoint' tool. It checks if a breakpoint exists at the given address in the session state, unloads the associated Frida script, removes it from the breakpoints dictionary, and returns success or error status.
    def remove_breakpoint(address: str) -> Dict[str, Any]:
        """
        Remove a breakpoint.
        
        Args:
            address: Address of breakpoint to remove
        
        Returns:
            Removal status.
        """
        global _session
        
        if address not in _session.breakpoints:
            return {"error": f"No breakpoint at {address}"}
        
        try:
            _session.breakpoints[address].unload()
            del _session.breakpoints[address]
            return {"success": True, "address": address}
        
        except Exception as e:
            return {"error": f"Failed to remove breakpoint: {str(e)}"}
  • The FridaSession class manages session state including a 'breakpoints' dictionary that stores active breakpoint scripts, used by remove_breakpoint to track and remove breakpoints.
    class FridaSession:
        """Manages Frida session state."""
        
        def __init__(self):
            self.device: Optional[Any] = None
            self.session: Optional[Any] = None
            self.pid: Optional[int] = None
            self.process_name: Optional[str] = None
            self.spawned: bool = False
            self.scan_state: ScanState = ScanState()
            self.hooks: Dict[str, HookInfo] = {}
            self.breakpoints: Dict[str, Any] = {}
            self.custom_scripts: Dict[str, Any] = {}
        
        def is_attached(self) -> bool:
            return self.session is not None and not self.session.is_detached
        
        def reset(self):
            self.session = None
            self.pid = None
            self.process_name = None
            self.spawned = False
            self.scan_state = ScanState()
            self.hooks.clear()
            self.breakpoints.clear()
            self.custom_scripts.clear()
  • The list_capabilities tool lists 'remove_breakpoint' under the 'debugging' category, indicating its registration in the MCP toolset.
            "debugging": [
                "set_breakpoint", "remove_breakpoint", "list_breakpoints", "read_registers"
            ],
            "script_management": [
                "load_script", "unload_script", "call_rpc"
            ],
            "window_interaction": [
                "list_windows", "screenshot_window", "screenshot_screen",
                "send_key_to_window", "focus_window"
            ],
            "standard": [
                "list_capabilities", "get_documentation", "check_installation"
            ]
        },
        "total_tools": 42
    }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0xhackerfren/frida-game-hacking-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server