EDB Debugger MCP
This MCP server bridges EDB/GDB debugger with AI assistants, exposing 207 AI-callable tools for reverse engineering and exploit development. Key capabilities include:
Program Control
Load, run, pause, continue, restart, and kill processes
Attach/detach from processes, connect to remote GDB servers, send signals
Breakpoints & Watchpoints
Set software/hardware breakpoints, watchpoints, catchpoints, and conditional/trace breakpoints
Enable, disable, remove, list, import, and export breakpoints
Execution Control
Step into/over/out, instruction-level stepping, jump to address, reverse step/continue
Registers & Memory
Read/write CPU, FPU, and SIMD registers
Read/write memory as hex dumps or typed values, fill, search, compare, set permissions, dump to files
Disassembly & Code Analysis
Disassemble functions/ranges, analyze basic blocks, control flow, CFG generation, ROP gadget finding
Stack & Frame Analysis
Dump stack, get backtraces, inspect frames/locals/arguments, push/pop stack values
Symbol & Binary Analysis
Look up symbols, list functions/modules/sections, find string/code references, convert addresses to file offsets
Thread & Process Management
List/switch threads, configure fork-follow behavior
Patching & Annotations
Assemble and patch instructions, NOP ranges, add comments/bookmarks, apply patches to disk
Session Management
Save/load debug sessions, configure environment, toggle ASLR, execute raw GDB commands
Pwntools Integration (50 tools)
Assemble/disassemble (Keystone/Capstone), analyze ELF binaries, generate shellcode, build ROP chains, create format string payloads, generate SROP frames, cyclic patterns, pack/unpack integers, interact with processes/remote services
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@EDB Debugger MCP set a breakpoint at main and run the binary"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
EDB Debugger MCP
About
EDB (Evan's Debugger) is a feature-rich, open-source GUI debugger for Linux (x86/x86-64), known for its intuitive interface, powerful plugin system (22 plugins), and extensive debugging capabilities — breakpoints, memory analysis, ROP tool, heap analyzer, and more. However, EDB has always been limited to manual GUI interaction — until now.
EDB Debugger MCP bridges EDB's debugging engine with modern AI via the Model Context Protocol (MCP). Every EDB feature is exposed as a tool callable by an AI assistant — Claude Desktop, Cursor, or any MCP host — effectively giving AI a debugger's intuition. The server exposes 26 composite debugging tools (19 edb_ + 7 pwntools_) that replace 157 flat primitives using parameter-driven dispatch for minimal context overhead (~4× token savings vs flat tool catalogs).
Behind the scenes, it translates AI requests into GDB MI commands via a high-performance async backend, then formats results back as structured data. Combined with pwntools integration (7 composite tools covering ELF analysis, ROP, shellcode, assembly, packing, tubes, and utilities), it becomes a complete AI-powered reverse engineering workstation.
Stat | Value |
Total tools | 26 (19 edb_ composite + 7 pwntools_ composite) — replaces 207 flat tools |
Test count | 452 (pytest, 4 Python versions) |
EDB feature coverage | 22/22 plugins · 29/29 actions · 13/13 dialogs · 6/6 views |
Code size | ~9000 LOC · 100 Pydantic models · 182 backend methods |
EDB · GDB · MCP · FastMCP · pwntools · Binary Ninja
Related MCP server: pwndbg-lldb-mcp
Table of Contents
Quick Start
pip install edb-debugger-mcp
edb-debugger-mcp &Then add to Claude Desktop config and ask: "Load /bin/ls, find ROP gadgets with pop eax, and generate execve shellcode" — the AI handles the rest.
Features
Program Control — Load, run, pause, continue, restart, attach/detach, kill
Breakpoints — Software/hardware breakpoints, watchpoints (read/write/access), conditional, ignore count, commands, catchpoints, export/import
Step Operations — Step into/over/out, step instruction, step-over instruction, reverse step/continue
Register Management — Read/write all CPU/FPU/SIMD registers, formatted dump, flag analysis, changed registers
Memory Operations — Hex dump, write memory/bytes, fill pattern, search, compare regions, set permissions
Disassembly — Full/range disassembly, current instruction, assembly patching, NOP fill
Stack Analysis — Stack dump, push/pop/modify, frame info, backtrace, arguments, locals
Symbol Resolution — Symbol lookup, modules, sections, entry point, symbol map, binary info
Thread Support — List/switch threads, process info, thread info
Expression Evaluation — C expression, variable get/set, string reading, type info (ptype/whatis)
Code Analysis — Source listing, function info/bounds, references, ROP gadgets, basic blocks, CFG
Code Patching — Assemble instruction, NOP range, fill zero, label address, comments/annotations
Session Management — Save/load sessions, bookmark addresses, export/import breakpoints
Remote Debugging — Connect to remote GDB server, generate core dumps
Environment — Get/set/unset env vars, set working directory, TTY, signal handling
Configuration — ASLR toggle, lazy binding toggle, debug output, session logging, signal ignore list
Utility — Binary string convert (hex↔ascii↔utf-16), file↔VA offset convert, font config
Pwntools Integration — Assembly/disassembly (Keystone/Capstone), ELF analysis, ROP gadget search, shellcode generation, cyclic pattern, format string payloads, pack/unpack
Use Cases
CTF Exploit Development — cyclic pattern → offset discovery → ROP gadgets → shellcode → assemble
Malware Analysis — attach → breakpoint → memory dump → core dump
Bug Hunting — ASLR disable → run → memory search → heap analysis
Vulnerability Research — expression eval → stack inspection → instruction analysis → function call
Reverse Engineering — disassemble → CFG → string search → symbol lookup
Requirements
Python >= 3.10
GDB (GNU Debugger) installed on the system
Linux (x86-64 recommended)
Installation
# Clone the repository
git clone https://github.com/oakkaya/edb-debugger-mcp.git
cd edb-debugger-mcp
# Install dependencies
pip install -r requirements.txt
# (Optional) Install with pip
pip install -e .Usage
Standalone
python edb_debugger_mcp.pyThis starts the MCP server on stdio, ready to accept MCP protocol messages.
Testing
# Compile a test binary
gcc -g -o /tmp/test_bin /path/to/test.c
# Then run the server manually or use an MCP clientClaude Desktop Integration
If installed via pip:
{
"mcpServers": {
"edb-debugger-mcp": {
"command": "edb-debugger-mcp"
}
}
}If installed from source:
{
"mcpServers": {
"edb-debugger-mcp": {
"command": "python",
"args": ["/path/to/edb_debugger_mcp/edb_debugger_mcp.py"]
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Other MCP Hosts
The same server works with any MCP-compatible host. Example configurations:
opencode (~/.config/opencode/config.json):
{
"mcpServers": {
"edb-debugger-mcp": {
"command": "edb-debugger-mcp"
}
}
}Cursor (Project Settings → MCP Servers):
{
"mcpServers": {
"edb-debugger-mcp": {
"command": "edb-debugger-mcp"
}
}
}Continue.dev (~/.continue/config.json):
{
"experimental": {
"mcpServers": {
"edb-debugger-mcp": {
"command": "edb-debugger-mcp"
}
}
}
}Docker Usage
A pre-built Docker image is available on GitHub Container Registry.
# Pull the latest image
docker pull ghcr.io/oakkaya/edb-debugger-mcp:latest
# Run the MCP server (stdio mode, for MCP hosts)
docker run -i ghcr.io/oakkaya/edb-debugger-mcp
# Run with a specific version tag
docker run -i ghcr.io/oakkaya/edb-debugger-mcp:latest
# Run interactively with a shell for debugging
docker run --rm -it \
--security-opt seccomp=unconfined \
--cap-add=SYS_PTRACE \
ghcr.io/oakkaya/edb-debugger-mcp /bin/bashThe image is built from python:3.13-slim with GDB pre-installed. It
is automatically rebuilt and published on every GitHub release (v* tag).
Architecture
┌─────────────────────┐ MCP Protocol ┌──────────────────────┐
│ MCP Client │ ◄──────────────────► │ FastMCP Server │
│ (Claude, Cursor) │ stdio JSON-RPC │ edb_debugger_mcp.py│
└─────────────────────┘ └──────────┬───────────┘
│
GDB MI
(--interpreter=mi2)
│
┌────────┴───────────┐
│ GDB Backend │
│ gdb_backend.py │
│ (async subprocess)│
│ MI parser + 123 │
│ public methods │
└────────────────────┘The server uses GDB's MI (Machine Interface) protocol (--interpreter=mi2) to communicate with GDB as a subprocess. The backend:
Sends MI/CLI commands via stdin, parses structured MI responses
Handles
*stoppedasync events for breakpoint hitsManages process lifecycle (start, kill, detach)
Provides
readelf-based file offset ↔ VA conversion
Note: The EDB action/dialog/view counts listed in this README cover all of EDB's UI elements. Since this project is an MCP server, UI-only features (About dialog, font selector, Reset UI, window layout) cannot be mapped. All functional debugging capabilities (breakpoint, register, memory, stack, thread, expression, patching, analysis, ROP, session) are 100% covered.
pwntools Tools
The server integrates pwntools — the CTF/exploit development framework — as 50 MCP tools callable alongside the EDB debugger tools.
Tool | Description |
| Full ELF binary analysis (headers, sections, symbols, security, strings) |
| Assemble assembly instructions to bytes (Keystone) |
| Build a ROP chain with ordered gadgets |
| Check ELF binary security properties (RELRO, Canary, NX, PIE) |
| Search pwntools/ELF constants by name or value |
| Generate De Bruijn cyclic pattern for offset discovery |
| Find offset of a value in cyclic pattern |
| Disassemble raw bytes with pwntools (architecture-aware) |
| Show shared library dependencies and interpreter |
| Patch bytes in ELF binary at file offset (creates .bak) |
| Read bytes from ELF binary at section or address |
| List all sections with type, flags, address, size |
| Search ELF binary for byte pattern grouped by section |
| Extract printable strings from ELF (by section or all) |
| Search symbols by regex with address table |
| Encode shellcode (alphanumeric, null_free, xor) |
| Shannon entropy analysis of file or region |
| Search ROP gadgets grouped by type (syscall, stack_pivot, call, jump) |
| Search for ROP gadgets by regex |
| Pack values/addresses into flat payload bytes |
| Generate format string write payload |
| Hex dump with ASCII side (colored, offset-labeled) |
| Compile assembly code into ELF binary |
| Pack integer to bytes (little/big endian, 8/16/32/64-bit) |
| Generate shellcode for a given arch/OS (execve, bind/rev shell, etc.) |
| Generate SROP (Sigreturn-Oriented Programming) frame |
| Unpack bytes to integer |
Usage: ask the AI "Find ROP gadgets with pop rdi" or "Generate x64 execve shellcode" — no separate setup needed.
EDB Plugin Mapping
Plugin | MCP Coverage |
DebuggerCore | Execution, stepping, breakpoints, registers, memory, state |
BreakpointManager | edb_set_breakpoint, edb_list_breakpoints, edb_export/import |
HardwareBreakpoints | edb_set_hardware_breakpoint, edb_set_watchpoint |
InstructionInspector | edb_instruction_detail |
Assembler | edb_assemble (Keystone optional) |
BinaryInfo | edb_get_binary_info |
BinarySearcher | edb_search_memory |
Backtrace | edb_get_backtrace |
FasLoader | edb_load_symbol_file |
DumpState | edb_dump_state |
FunctionFinder | edb_list_functions |
OpcodeSearcher | edb_search_instructions |
References | edb_find_references, edb_string_references |
ROPTool | edb_find_rop_gadgets |
HeapAnalyzer | edb_analyze_heap |
Analyzer | edb_analyze_region, edb_analyze_basic_blocks |
SymbolViewer | edb_lookup_symbol |
ProcessProperties | edb_get_process_properties |
ODbgRegisterView | edb_get_registers, edb_get_fpu_state, edb_get_simd_state |
Bookmarks | edb_add_bookmark, edb_list_bookmarks, edb_remove_bookmark |
CheckVersion | Automatically handled |
DebuggerErrorConsole | edb_set_debug_output |
Binary Ninja Integration
⚠ Experimental / untested — Binary Ninja is a commercial product (not available in this environment). The plugin code is structurally complete and follows the BN plugin API, but has not been verified at runtime. PRs welcome.
The binaryninja_mcp/ directory contains a full Binary Ninja plugin that bridges the decompiler with the live debugger. Features:
Register overlay — HLIL comments with live register values
Single-click breakpoints — Right-click to toggle software/hardware breakpoints
In-place patching — NOP, assemble, range-NOP from the disassembly context menu
Step control — Step into/over/out, run, pause via Plugins menu
Sidebar widget — Live register summary in the "EDB Debugger" tab
Install: ln -s $(pwd)/binaryninja_mcp ~/.binaryninja/plugins/edb-debugger-bridge
Ghidra Integration
⚠ Experimental / untested — Requires pyhidra. Plugin is structurally complete but not verified at runtime. PRs welcome.
The ghidra_mcp/ directory contains a Ghidra Python bridge that follows the same pattern as BN. Features:
Start/Stop Bridge — Connect/disconnect from the MCP server
Toggle Breakpoint — Set/clear breakpoints at the cursor address
In-place patching — NOP, assemble instructions
Step/run control — Step into/over, run, pause
Register & memory inspection — Live register values, memory hex dump
Install: in Ghidra with pyhidra, run ghidra_mcp/ghidra_bridge.py via the Python interpreter, then use the newly registered actions from the right-click menu.
Web UI
⚠ Experimental
The web_ui/ directory provides a browser-based debugger frontend (FastAPI + vanilla JS). No JS framework required.
cd web_ui
pip install -r requirements.txt
python server.py
# → http://localhost:8000Features:
Categorized tool sidebar — Program, Breakpoints, Run/Step, Registers/Memory, Analysis, Pwntools
Dynamic parameter forms — Tools with arguments show input fields auto-generated from the tool schema
Dark theme — Clean, readable interface
Live results — Output streams into the result panel with auto-scroll
REST API
The Web UI exposes a REST API used by the frontend. All endpoints return JSON unless noted.
Endpoint | Method | Description |
| GET | Serve the main HTML page (static) |
| GET | Quick action buttons metadata (name, tool, icon) |
| GET | All tools with category and input fields |
| GET | Single tool definition by name |
| POST | Execute a tool with JSON |
| GET | Debugger state snapshot (registers, stack, disasm, backtrace, status) |
| GET | Enhanced state with register diff highlighting |
| POST | Set a register value |
| GET | Read memory as parsed hex dump |
| GET | Disassemble at address |
| GET | List all functions in the binary |
| GET | Tool call history (in-memory, ordered) |
| POST | Clear tool call history |
| GET | List saved debugger sessions |
| POST | Save session |
| POST | Load a saved session |
| DELETE | Delete a saved session |
| GET | HTML fragment for a tab (history, sessions, state) |
x64dbg Integration
⚠ Experimental / untested — Windows-only. Requires x64dbg with x64dbgpy. No test environment available.
The x64dbg_mcp/ directory contains an x64dbgpy plugin. Features:
Start/Stop Bridge — Connect to the MCP server
Breakpoint control — Toggle, clear all
Patching — NOP, assemble at cursor
Step/run — Step into/over, run, pause
Inspection — Registers, memory at selection
Install: copy x64dbg_mcp/ to x64dbg's py-plugins/ directory. The "EDB Bridge" submenu appears under Plugins.
Quick Start
# Install
pip install edb-debugger-mcp
# Start the MCP server (standalone)
edb-debugger-mcp
# Or with Web UI
pip install "edb-debugger-mcp[web]"
python3 -m web_ui.server3-step CTF solve with AI:
User: Load /challenge/bof and analyze it
AI: → edb_load_program(path="/challenge/bof")
→ edb_disassemble("main") → finds gets() call
→ edb_list_functions() → finds win() at 0x4011b6
User: Build exploit
AI: → pwntools_cyclic(200) → generates pattern
→ pwntools_cyclic_find("0x6161616c") → offset = 136
→ pwntools_flat([0xdeadbeef]*34 + [0x4011b6]) → payload
User: Test it
AI: → edb_run(args=$(python3 -c "print('A'*136 + '\xb6\x11\x40')"))
→ edb_set_breakpoint("win")
→ edb_continue() → breaks at win → flag printed!IDA Pro Integration
✅ Tested with IDA Pro 9.3 — IDAPython imports (ida_pro, idaapi, idc, idautils), all 13 actions register under Edit -> EDB Debugger, MCP subprocess bridge connects with 26 composite tools, step/run/breakpoint/patch actions work, headless mode works with
ida -c -A -S<script>under xvfb.
The ida_mcp/ directory contains an IDAPython plugin that connects IDA Pro to the MCP server. Features:
Start/Stop Bridge — Launch and terminate the MCP subprocess
Toggle Breakpoint (F2) — Set/remove software breakpoint at cursor
Clear All Breakpoints — Remove all breakpoints
Patching — NOP or assemble instruction at current address
Step/run control — Step into (F11), step over (F10), step out (Shift+F11), run (F5), pause
Inspection — Show register values, read memory at cursor
Install: copy ida_mcp/ to IDA's plugin directory:
cp -r ida_mcp ~/.idapro/plugins/edb_debugger_bridgeAfter starting the bridge (Edit -> EDB Debugger -> Start Bridge), all actions are available from the Edit -> EDB Debugger menu.
VS Code Extension
⚠ Experimental
The vscode-edb-mcp/ directory contains a VS Code extension that provides a debugger frontend inside VS Code. Features:
Start/Stop Bridge — Spawn and kill the MCP subprocess
Debugger Panel — WebView panel for debugging commands
Execution control — Run/continue (F5), pause, step into (F11), step over (F10)
Breakpoint management — Set/clear breakpoints
Register/Memory inspection — View register state and memory
Status bar indicator — Shows bridge connection state (connected/disconnected)
Build and install:
cd vscode-edb-mcp
npm install
npm run compile
code --install-extension edb-debugger-mcp-1.0.0.vsixThe extension registers commands under the EDB: prefix and shows a status bar item.
Project Structure
edb-debugger-mcp/
├── edb_debugger_mcp/ # Package: FastMCP server (19 composite edb_ tools)
│ ├── __init__.py # Entry point + main()
│ ├── _mcp.py # FastMCP instance + GDB backend init
│ ├── composite_tools.py # 26 composite tools (19 edb_ + 7 pwntools_)
│ ├── gdb_backend.py # GDB MI backend (172 public methods, MI parser, session mgmt)
│ └── edb_models.py # Pydantic models for tool parameters
├── web_ui/ # Web debugger frontend (FastAPI + htmx, browser-based)
│ ├── server.py # FastAPI app, tool categories, multi-page routing
│ └── templates/ # Static HTML + JavaScript frontend
├── binaryninja_mcp/ # Binary Ninja plugin (register overlay, right-click BP/patch, step)
├── ghidra_mcp/ # Ghidra bridge (pyhidra-based, same MCP client)
├── ida_mcp/ # IDA Pro plugin (IDAPython bridge with breakpoint/patch/step)
├── x64dbg_mcp/ # x64dbgpy plugin (Windows debugger bridge)
├── vscode-edb-mcp/ # VS Code extension (debugger panel, commands, status bar)
├── scripts/ # Utility scripts
│ └── generate_tool_table.py # Auto-generates markdown tool table
├── examples/ # 10 CTF challenges
│ ├── ret2win/ # Buffer overflow → call win function
│ ├── format-string/ # Format string → GOT overwrite
│ ├── crackme/ # Static password analysis
│ ├── rop-chain/ # ROP chain ret2libc (NX enabled)
│ ├── shellcode-injection/ # Shellcode on executable stack
│ ├── off-by-one/ # Off-by-one overwrites adjacent variable
│ ├── heap-uaf/ # Use-after-free → function pointer overwrite
│ ├── integer-overflow/ # Signed check bypass → OOB write
│ ├── nx-bypass/ # ROP mprotect + shellcode
│ └── canary-leak/ # Format string leak + BOF with canary
├── tests/ # 452 tests (pytest + pytest-asyncio)
├── CHANGELOG.md # Version history
├── requirements.txt # Python dependencies
├── README.md # This file
├── LICENSE # MIT License
└── .gitignore # Git ignore rulesCTF Examples
The examples/ directory contains 10 CTF-style challenges that showcase different exploitation techniques and the corresponding EDB MCP tools used to solve them.
Challenge | Technique | Tools Demonstrated |
| Buffer overflow overwrites return address to call a hidden win function |
|
| Format string vulnerability used to overwrite GOT entries |
|
| Static password analysis by examining the binary |
|
| Return-Oriented Programming chain to bypass NX (ret2libc) |
|
| Shellcode injection and execution on an executable stack |
|
| Single-byte heap overflow corrupts adjacent variable |
|
| Use-after-free corrupts a function pointer to gain control |
|
| Integer overflow bypasses a bounds check leading to OOB write |
|
| ROP chain calls mprotect then executes shellcode |
|
| Format string leaks stack canary, then BOF overwrites return address |
|
Each challenge includes source code, a compiled binary, and a solve script. Run from the challenge directory:
cd examples/ret2win
python solve.pyTool Reference (26 tools)
Execution & Process (1 tool)
Tool | Description |
| Load/attach/run/continue/pause/kill/restart — all execution control via |
Stepping (1 tool)
Tool | Description |
| Step into/over/out, step N instructions, reverse step/continue |
Tracing (1 tool)
Tool | Description |
| Start/stop/show execution trace recording |
Breakpoints (1 tool)
Tool | Description |
| Set/remove/enable/disable/list/condition/ignore/export/import — all breakpoint ops |
Registers (1 tool)
Tool | Description |
| Get/set/dump all registers, FPU state, SIMD state, EFLAGS |
Memory (1 tool)
Tool | Description |
| Read/write/search/fill/compare/map/dump — all memory operations |
Disassembly (1 tool)
Tool | Description |
| Disassemble at address/range, current instruction, assemble, analyze calls |
Stack (1 tool)
Tool | Description |
| Dump/backtrace/push/pop/modify/scan for return addresses |
Symbols (1 tool)
Tool | Description |
| Lookup, function info, xrefs, strings, entry point, symbol generation |
Expressions (1 tool)
Tool | Description |
| Evaluate C expression, get/set variables, arguments, locals, watch |
Debug Info (1 tool)
Tool | Description |
| Source listing, ptype, whatis, frame info |
Threads (1 tool)
Tool | Description |
| List/switch threads, inferior info |
Modules & Plugins (1 tool)
Tool | Description |
| List modules, arch info, plugins, features |
Analysis (1 tool)
Tool | Description |
| Analyze region/heap, ROP gadgets, basic blocks, CFG, exploit generation |
Annotations (1 tool)
Tool | Description |
| Comments, bookmarks, labels |
Session (1 tool)
Tool | Description |
| Status/dump/export, save/load, remote connect, signals, core dump |
Patching (1 tool)
Tool | Description |
| NOP range, jump to address, file↔VA offset, binary diff, snapshot |
Configuration (1 tool)
Tool | Description |
| ASLR, lazy binding, signal handling, catchpoints, TTY, debug output |
Environment (1 tool)
Tool | Description |
| Environment variables, session logging, raw GDB commands |
pwntools Tools (7 composite)
Tool | Description |
| ELF analysis: sections, symbols, strings, deps, GOT, PLT, segments, notes, diff, patch, search, make-elf, entropy |
| ROP gadgets: search, extended search, chain builder, sigreturn frame, fmtstr payload |
| Shellcode generation and encoding (alphanumeric/null-free/xor) |
| Assembly ↔ hex: disassemble and assemble instructions |
| Pack/unpack, enhex/unhex, flat, hexdump — all data encoding operations |
| Utilities: cyclic, cyclic_find, rol, ror, bits, align, constgrep, context, log_level |
| Process/remote I/O: send, sendline, recv, recvline, recvuntil, close, list |
License
MIT License — see LICENSE for details.
Available Tools
207 toolsedb_add_bookmarkAIdempotent
Save a named bookmark pointing to an address for quick navigation. Equivalent to EDB's Bookmarks plugin. Useful for marking key locations during reverse engineering.
Args: params (BookmarkInput): Bookmark - name (str): Name (e.g., 'main_loop') - address (str): Address (e.g., '0x400000')
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_add_commentAIdempotent
Add a text annotation to an address. Comments are stored in-memory and can be listed with edb_list_comments. Useful for documenting analysis findings during a reverse engineering session.
Args: params (CommentInput): Comment data - address (str): Address in hex (e.g., '0x400000') - comment (str): Annotation text
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_analyze_basic_blocksARead-onlyIdempotent
Analyze a code region and identify basic blocks. Equivalent to EDB's Analyzer plugin basic block detection. Shows each basic block with its instructions, where blocks end at branch/jump/call/ret instructions.
Args: params (AnalyzeBasicBlocksInput): Region - address (str): Start address - size (int): Region size (default: 256)
Returns: str: Basic block listing with instruction count per block
Inputs: params (required). Returns: result
edb_analyze_calls_atARead-onlyIdempotent
Disassemble at an address and identify call/jump targets. Shows each instruction and resolves targets for call, jmp, jz, jnz. Essential for control flow analysis and understanding branch targets.
Args: params (AnalyzeCallsInput): Address - address (str): Address to analyze
Returns: str: Instructions with resolved call/jump targets
Inputs: params (required). Returns: result
edb_analyze_heapARead-onlyIdempotent
Analyze the heap memory region of the debugged process. Equivalent to EDB's HeapAnalyzer plugin. Shows heap regions, sizes, permissions, and strings found in heap memory.
Returns: str: Heap analysis including regions, sizes, and strings
Inputs: no named parameters. Returns: result
edb_analyze_regionARead-onlyIdempotent
Analyze a code region for call instructions, branch instructions, and strings. Equivalent to EDB's Analyzer plugin. Shows control flow information for the given address range.
Args: params (AnalyzeRegionInput): Region parameters - address (str): Start address - size (int): Region size in bytes (default: 256)
Returns: str: Analysis with call/branch/instruction counts
Inputs: params (required). Returns: result
edb_apply_patches_to_fileCDestructive
Write runtime memory modifications back to the binary file on disk.
Inputs: params (required). Returns: result
edb_assembleADestructive
Assemble an assembly instruction and write it to memory. Equivalent to EDB's Assembler plugin. Uses keystone engine if available, otherwise falls back to common opcodes (nop, int3, ret).
Args: params (AssembleInput): Assembly parameters - address (str): Target address - instruction (str): Assembly text (e.g., 'nop', 'mov eax, 0', 'jmp rax')
Returns: str: Assembled bytes and confirmation
Inputs: params (required). Returns: result
edb_attach_processA
Attach the debugger to an already-running process by PID. The process is paused on attach.
Args: params (AttachPid): Process ID - pid (int): Process ID to attach to
Returns: str: Status message confirming attachment
Inputs: params (required). Returns: result
edb_binary_diffARead-onlyIdempotent
Compare the current loaded binary with its original on disk.
Inputs: no named parameters. Returns: result
edb_binary_string_convertARead-onlyIdempotent
Convert between hex, ASCII, and UTF-16 representations. Equivalent to EDB's BinaryString widget (DialogInputBinaryString). Useful for preparing data for memory patches or analyzing strings.
Provide at least one of: hex_str, ascii_str, or utf16_str.
Args: params (BinaryStringConvertInput): Input string - hex_str (str): Hex input (e.g., '48656c6c6f') - ascii_str (str): ASCII input (e.g., 'Hello') - utf16_str (str): UTF-16 hex (e.g., '48006500')
Returns: str: All representations
Inputs: params (required). Returns: result
edb_breakpoint_commandsA
Set commands to execute when a breakpoint is hit.
Equivalent to GDB's commands keyword. Can run any GDB command
including print, continue, set, etc. Useful for logging data
without stopping.
Args: params (BreakpointCommandsInput): Commands - number (int): Breakpoint number - commands (list[str]): Commands (e.g., ['print rax', 'continue'])
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_breakpoint_exportAIdempotent
Export all breakpoints to a JSON file on disk. Equivalent to EDB's BreakpointManager export feature. Breakpoints can be reloaded later with edb_breakpoint_import.
Args: params (BreakpointFileInput): Output - file_path (str): Full path to JSON file
Returns: str: Export confirmation with count
Inputs: params (required). Returns: result
edb_breakpoint_importA
Import breakpoints from a JSON file previously exported with edb_breakpoint_export. Equivalent to EDB's BreakpointManager import feature.
Args: params (BreakpointFileInput): Input - file_path (str): Full path to JSON file
Returns: str: Import confirmation with count
Inputs: params (required). Returns: result
edb_call_functionADestructive
Call a function in the context of the debugged process.
Equivalent to GDB's call command. Useful for testing functions
with specific arguments or calling library functions.
Args: params (CallFunctionInput): Function call - function_expr (str): Expression (e.g., 'printf("hello")', 'malloc(100)')
Returns: str: Function result (return value in EAX/RAX)
Inputs: params (required). Returns: result
edb_compare_memoryARead-onlyIdempotent
Compare two memory regions byte-by-byte and show differences. Useful for detecting self-modifying code, comparing loaded vs original code, or analyzing binary patches.
Args: params (CompareMemoryInput): Comparison parameters - address1 (str): First address (e.g., '0x400000') - address2 (str): Second address (e.g., '0x400100') - count (int): Number of bytes to compare (max: 4096)
Returns: str: Differing regions with hex values
Inputs: params (required). Returns: result
edb_compare_sectionsARead-onlyIdempotent
Compare loaded memory sections with the original binary on disk. Detects modifications to code sections (self-modifying code, patches). Equivalent to EDB's memory comparison features.
Returns: str: Section comparison results
Inputs: no named parameters. Returns: result
edb_compare_snapshotC
Save a full debugger snapshot (registers + memory) for later comparison.
Inputs: params (required). Returns: result
edb_configure_debuggerADestructiveIdempotent
Configure GDB debugger settings. Equivalent to EDB's Configure Debugger dialog. Controls follow-fork-mode, ASLR, scheduler-locking, backtrace limits, and many other debugger behaviors.
Args: params (DebuggerConfigInput): Setting - setting (str): Setting name (e.g., 'follow-fork-mode', 'disable-randomization', 'scheduler-locking', 'backtrace limit', 'print elements') - value (str): Value to set (empty to query, use 'on'/'off' for booleans)
Returns: str: Configuration result
Inputs: params (required). Returns: result
edb_continueA
Continue execution after a breakpoint or pause. Resumes from the current instruction pointer.
Returns: str: Status with stop reason if another breakpoint is hit
Inputs: no named parameters. Returns: result
edb_continue_toA
Continue execution until a specific address is reached. Sets a temporary breakpoint at the given address and runs.
Args: params (ContinueToAddress): Target - address (str): Address in hex (e.g., '0x4000a0') or function name
Returns: str: Location details when stopped
Inputs: params (required). Returns: result
edb_detach_processAIdempotent
Detach from the debugged process. The process continues running independently.
Returns: str: Confirmation of detachment
Inputs: no named parameters. Returns: result
edb_disable_aslrADestructiveIdempotent
Disable or enable ASLR for debugee. Equivalent to EDB's DialogOptions → Disable ASLR checkbox. Affects future runs of the debugged program.
Args: params (DisableASLRInput): ASLR setting - disable (bool): True = disable ASLR, False = enable
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_disable_breakpointAIdempotent
Disable a breakpoint without removing it. It can be re-enabled later.
Args: params (BreakpointNumber): Breakpoint number - number (int): Breakpoint ID to disable
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_disable_lazy_bindingADestructiveIdempotent
Disable or enable lazy binding for debugee. Equivalent to EDB's DialogOptions → Disable Lazy Binding checkbox. When disabled, all shared library symbols are resolved at startup, making breakpoints on library functions more reliable.
Args: params (DisableLazyBindingInput): Lazy binding setting - disable (bool): True = disable lazy binding, False = enable
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_disassembleARead-onlyIdempotent
Disassemble machine code at an address or function. Shows assembly instructions with addresses, offsets, and opcodes.
Args: params (DisassembleInput): Disassembly params - location (str): Address (e.g., '0x400000') or function (e.g., 'main') - count (int): Instructions to show, 1-200 (default: 10)
Returns: str: Formatted disassembly listing
Inputs: params (required). Returns: result
edb_disassemble_rangeARead-onlyIdempotent
Disassemble a range of memory from start to end address. Unlike edb_disassemble which uses a count of instructions, this tool disassembles an exact address range. Useful for full function analysis.
Args: params (DisassembleRangeInput): Range - start_address (str): Start address (e.g., '0x400000') - end_address (str): End address (e.g., '0x400100')
Returns: str: Disassembly listing
Inputs: params (required). Returns: result
edb_dump_memory_to_fileAIdempotent
Dump a memory region to a binary file on disk. Equivalent to EDB's memory dump feature. Useful for extracting code regions, data sections, or heap contents for offline analysis.
Args: params (DumpMemoryToFileInput): Dump parameters - address (str): Start address - size (int): Number of bytes to dump (max: 1MB) - file_path (str): Full output file path
Returns: str: Confirmation with byte count
Inputs: params (required). Returns: result
edb_dump_registersARead-onlyIdempotent
Get a human-readable register dump in markdown table format. Shows all general-purpose registers, instruction pointer, flags and their meanings.
Returns: str: Markdown-formatted register table
Inputs: no named parameters. Returns: result
edb_dump_stateARead-onlyIdempotent
Dump complete debugger state: all registers, current instruction, stack, backtrace, memory map, and status. Equivalent to EDB's DumpState plugin. One-shot comprehensive process snapshot.
Returns: str: Full process state dump
Inputs: no named parameters. Returns: result
edb_enable_breakpointAIdempotent
Re-activate a disabled breakpoint.
Args: params (BreakpointNumber): Breakpoint number - number (int): Breakpoint ID to enable
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_enum_registersARead-onlyIdempotent
List available CPU registers by category (GPR, SIMD, FPU, flag).
Inputs: no named parameters. Returns: result
edb_evaluate_expressionBRead-onlyIdempotent
Evaluate a C expression in the debug context. Supports variables, pointer dereferences, casts, arithmetic, and function calls. Examples: 'x + 5', '(int)0x7fff0000', 'argv[0]'
Args: params (EvaluateExpr): Expression - expression (str): C expression to evaluate
Returns: str: Expression result
Inputs: params (required). Returns: result
edb_execute_gdb_commandBRead-onlyDestructive
Execute any raw GDB command directly. Full access to GDB's CLI. Powerful for advanced debugging.
Inputs: params (required). Returns: result
edb_exploit_generateARead-onlyIdempotent
Generate a buffer-overflow exploit payload: offset + ROP chain + shellcode. Supports amd64 (ret2libc ROP), i386 (ret2libc), and aarch64 (shellcode).
Inputs: params (required). Returns: result
edb_export_stateBRead-onlyIdempotent
Export the complete debugger state as structured JSON.
Inputs: no named parameters. Returns: result
edb_file_offset_to_vaARead-onlyIdempotent
Convert a file offset from the binary on disk to the corresponding virtual address in the loaded process. Essential for patching binaries and understanding disk-to-memory mapping.
Args: params (FileOffsetInput): File offset - offset (int): Offset in bytes from start of file
Returns: str: Virtual address in hex
Inputs: params (required). Returns: result
edb_fill_memoryADestructive
Fill a memory region with a repeating byte value. Useful for zeroing buffers, filling with NOPs (0x90), or any pattern. Uses edb_write_memory_bytes internally.
Args: params (FillMemoryInput): Fill parameters - address (str): Start address (e.g., '0x400000') - byte_value (str): Byte value (e.g., '0x90' or '90') - count (int): Number of bytes to fill
Returns: str: Confirmation of fill operation
Inputs: params (required). Returns: result
edb_find_referencesBRead-onlyIdempotent
Find all code references to a given address or symbol. Searches functions and variables referencing the address.
Args: params (FindReferencesInput): Target address - address (str): Address to find references to
Returns: str: Reference locations
Inputs: params (required). Returns: result
edb_find_rop_gadgetsARead-onlyIdempotent
Search for ROP gadgets (instructions ending with 'ret') in memory. Equivalent to EDB's ROPTool plugin. Finds usable instruction sequences for ROP chain construction.
Args: params (RopSearchInput): Search parameters - address (str): Start address (default: $pc) - depth (int): Max instructions before ret, 1-10 (default: 2) - count (int): Max results, 1-1000 (default: 100)
Returns: str: ROP gadget addresses and bytes
Inputs: params (required). Returns: result
edb_find_stringsARead-onlyIdempotent
Find printable ASCII strings in the current code region. Searches from current PC for printable character sequences.
Returns: str: Found strings with addresses
Inputs: no named parameters. Returns: result
edb_follow_forkA
Set whether the debugger follows the parent or child process after a fork.
Inputs: params (required). Returns: result
edb_generate_cfgARead-onlyIdempotent
Generate a Control Flow Graph in Graphviz DOT format.
Equivalent to EDB's GraphWidget (which uses Graphviz). The output
DOT can be rendered with dot -Tpng -o output.png or viewed in
any Graphviz viewer. Shows edges between basic blocks.
Args: params (AnalyzeBasicBlocksInput): Region - address (str): Start address - size (int): Region size (default: 256)
Returns: str: DOT format CFG
Inputs: params (required). Returns: result
edb_generate_core_dumpAIdempotent
Generate a core dump of the current process for post-mortem analysis. Equivalent to EDB's save state feature. Saves full process memory and register state to a core file.
Args: params (CoreDumpInput): Output - file_path (str): Output file path (default: core)
Returns: str: Core dump confirmation with file size
Inputs: params (required). Returns: result
edb_generate_symbolsARead-onlyIdempotent
Generate a symbol map for a binary file using EDB's symbol generator.
Equivalent to running edb --symbols <file>. Useful for creating
symbol map files for stripped binaries.
Args: params (GenerateSymbolsInput): Input - path (str): Binary file path (default: loaded binary)
Returns: str: Symbol map
Inputs: params (required). Returns: result
edb_get_arch_infoARead-onlyIdempotent
Get architecture information about the debugged process and binary. Equivalent to EDB's BinaryInfo plugin. Shows CPU architecture, binary type (PIE/non-PIE), instruction set features, and more.
Returns: str: Architecture details
Inputs: no named parameters. Returns: result
edb_get_argumentsARead-onlyIdempotent
Get the arguments passed to the current function. Shows argument names and values.
Returns: str: Function argument names and values
Inputs: no named parameters. Returns: result
edb_get_backtraceARead-onlyIdempotent
Get the full call stack backtrace. Frame #0 is the current function. Each frame shows number, address, function name, and source location.
Returns: str: Formatted backtrace
Inputs: no named parameters. Returns: result
edb_get_binary_infoARead-onlyIdempotent
Get detailed information about the loaded binary file. Shows ELF header, architecture, entry point, section layout, and more. Equivalent to EDB's BinaryInfo plugin.
Returns: str: Binary file metadata
Inputs: no named parameters. Returns: result
edb_get_changed_registersBRead-onlyIdempotent
Get all register values (shows current state, EDB-style). Equivalent to EDB's register view with highlighted changed values. Shows all CPU registers with current values.
Returns: str: Register dump
Inputs: no named parameters. Returns: result
edb_get_current_instructionARead-onlyIdempotent
Get the instruction at the current program counter (RIP/EIP). Shows what will execute next.
Returns: str: Current instruction text
Inputs: no named parameters. Returns: result
edb_get_current_threadARead-onlyIdempotent
Get info about the currently active thread.
Returns: str: Current thread information
Inputs: no named parameters. Returns: result
edb_get_eflagsARead-onlyIdempotent
Show the EFLAGS/RFLAGS CPU status register with individual flag states.
Inputs: no named parameters. Returns: result
edb_get_entry_pointARead-onlyIdempotent
Get the program entry point address. The entry point is the first code executed when the program starts (typically _start).
Returns: str: Entry point address in hex
Inputs: no named parameters. Returns: result
edb_get_environmentARead-onlyIdempotent
Show all environment variables configured for the debugged process. Equivalent to EDB's process properties environment view.
Returns: str: Environment variables
Inputs: no named parameters. Returns: result
edb_get_fpu_stateARead-onlyIdempotent
Get the FPU (Floating Point Unit) register state. Equivalent to EDB's RegisterViewModel FPU category. Shows ST0-ST7 stack registers, FPU control word, status word, and tag word.
Returns: str: FPU register values
Inputs: no named parameters. Returns: result
edb_get_frame_infoARead-onlyIdempotent
Get detailed information about a stack frame: address, function, arguments, locals, frame type, and more. Equivalent to EDB's call stack panel showing frame details.
Args: params (FrameInfoInput): Frame - frame_level (int): Frame level (0 = innermost, default: 0)
Returns: str: Frame information with args and locals
Inputs: params (required). Returns: result
edb_get_function_boundsARead-onlyIdempotent
Get the start address, end address, and size of a function. Useful for understanding function layout and selecting regions for patching.
Args: params (FunctionBoundsInput): Function name - name (str): Function name (e.g., 'main')
Returns: str: Start address, end address, and size
Inputs: params (required). Returns: result
edb_get_function_infoARead-onlyIdempotent
Get detailed info about a function: address, prototype, source location.
Args: params (FunctionInfo): Function name - name (str): E.g., 'main', 'malloc'
Returns: str: Function details
Inputs: params (required). Returns: result
edb_get_function_xrefsBRead-onlyIdempotent
Show cross-references to a given address or function.
Inputs: params (required). Returns: result
edb_get_localsARead-onlyIdempotent
Get all local variables in the current function scope. Shows names and values.
Returns: str: Local variable names and values
Inputs: no named parameters. Returns: result
edb_get_memory_mapARead-onlyIdempotent
Get the process memory map (like /proc/pid/maps). Shows address ranges, permissions, offset, and paths for all mapped regions.
Returns: str: Memory map listing
Inputs: no named parameters. Returns: result
edb_get_memory_region_infoARead-onlyIdempotent
Get information about defined memory regions and their permissions. Equivalent to EDB's DialogMemoryRegions detail view. Shows regions defined with edb_set_memory_permissions and their access attributes.
Returns: str: Memory region permissions
Inputs: no named parameters. Returns: result
edb_get_process_propertiesARead-onlyIdempotent
Get comprehensive properties of the debugged process. Equivalent to EDB's ProcessProperties plugin. Shows PID, binary path, arguments, entry point, register state, and more.
Returns: str: Process properties
Inputs: no named parameters. Returns: result
edb_get_registerARead-onlyIdempotent
Get the value of a specific CPU register.
Args: params (RegisterName): Register name - name (str): E.g., 'rax', 'rbx', 'rip', 'rsp', 'eflags'
Returns: str: Hex value of the register
Inputs: params (required). Returns: result
edb_get_registersARead-onlyIdempotent
Get all CPU register values as JSON. Includes general-purpose registers, instruction pointer, stack pointer, base pointer, flags, and SIMD registers.
Returns: str: JSON object with register names and hex values
Inputs: no named parameters. Returns: result
edb_get_section_infoARead-onlyIdempotent
Get detailed section information for loaded modules. Shows section names, addresses, sizes, and file offsets.
Args: params (SectionInfoInput): Module filter - module (Optional[str]): Module name (empty = all)
Returns: str: Section information
Inputs: params (required). Returns: result
edb_get_simd_stateARead-onlyIdempotent
Get the SIMD (SSE/AVX) register state. Equivalent to EDB's RegisterViewModel SIMD category. Shows XMM0-15, YMM0-15, ZMM0-31 registers and MXCSR control/status register.
Returns: str: SIMD register values
Inputs: no named parameters. Returns: result
edb_get_stackARead-onlyIdempotent
Dump the current stack (stack pointer to higher addresses). Each entry is an 8-byte (64-bit) value.
Returns: str: Stack hex dump
Inputs: no named parameters. Returns: result
edb_get_stack_frameBRead-onlyIdempotent
Get detailed information about a specific stack frame level. Shows address, function, file, line for the given frame.
Args: params (StackFrameInput): Frame level - frame_level (int): Frame number, 0 = current (default: 0)
Returns: str: JSON frame information
Inputs: params (required). Returns: result
edb_get_statusARead-onlyIdempotent
Get the current debugger and process status. Shows whether a process is loaded, running or paused, PID, RIP, current instruction, register count.
Returns: str: JSON status object
Inputs: no named parameters. Returns: result
edb_get_stop_reasonARead-onlyIdempotent
Determine why the process stopped (breakpoint, signal, step, etc.). Equivalent to EDB's status bar showing stop reason. Checks GDB's program state and thread status.
Returns: str: Stop reason description
Inputs: no named parameters. Returns: result
edb_get_stringARead-onlyIdempotent
Read a null-terminated string from a memory address. Interprets the memory as a C string (null-terminated).
Args: params (ReadStringInput): String parameters - address (str): Address (e.g., '0x400678') - max_length (int): Max string length, 1-4096 (default: 256)
Returns: str: String contents
Inputs: params (required). Returns: result
edb_get_variableARead-onlyIdempotent
Read the value of a local or global variable in the current scope.
Args: params (VariableInput): Variable name - name (str): Variable name (e.g., 'i', 'argc', 'buffer')
Returns: str: Variable value
Inputs: params (required). Returns: result
edb_goto_function_startARead-onlyIdempotent
Find the function start address containing a given address.
Inputs: params (required). Returns: result
edb_inferior_infoARead-onlyIdempotent
Get information about all inferiors (processes) being debugged.
Equivalent to GDB's info inferiors command. Shows process list,
their PIDs, and the program they're running.
Returns: str: Inferior list with details
Inputs: no named parameters. Returns: result
edb_instruction_detailARead-onlyIdempotent
Get detailed information about an instruction at a given address. Equivalent to EDB's InstructionInspector plugin. Shows instruction bytes, assembly, addressing modes, register operands, and more.
Args: params (InstructionDetailInput): Address - address (str): Address to inspect (default: $pc)
Returns: str: Detailed instruction info including bytes, opcode, operands
Inputs: params (required). Returns: result
edb_jump_to_addressADestructive
Jump to a specific address, setting the instruction pointer. Equivalent to EDB's jump_to_address (double-click address in BreakpointManager). Use this to skip code or continue from a specific location.
Args: params (JumpAddressInput): Target - address (str): Address to jump to (e.g., '0x400000', 'main+5')
Returns: str: Jump confirmation
Inputs: params (required). Returns: result
edb_kill_processADestructive
Kill the debugged process immediately. Equivalent to force-terminating the debuggee.
Returns: str: Confirmation the process was killed
Inputs: no named parameters. Returns: result
edb_label_addressAIdempotent
Set a label/annotation at an address in the disassembly view. Equivalent to EDB's CPU context menu → Label Address. Labels help identify important locations in the code.
Args: params (LabelAddressInput): Address + label - address (str): Address (e.g., '0x401000') - label (str): Label text (e.g., 'my_func')
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_list_bookmarksARead-onlyIdempotent
List all saved bookmarks with names and addresses.
Returns: str: Bookmark listing
Inputs: no named parameters. Returns: result
edb_list_breakpointsARead-onlyIdempotent
List all breakpoints, watchpoints, and their status (number, type, enable/disable, address).
Returns: str: Formatted breakpoint table
Inputs: no named parameters. Returns: result
edb_list_breakpoint_typesARead-onlyIdempotent
List supported breakpoint types (software, hardware, watchpoint, catchpoint).
Inputs: no named parameters. Returns: result
edb_list_commentsARead-onlyIdempotent
List all address annotations added via edb_add_comment. Returns a sorted list of addresses with their associated comments.
Returns: str: Comment listing
Inputs: no named parameters. Returns: result
edb_list_featuresARead-onlyIdempotent
List GDB debugger features and capabilities. Shows GDB version, build configuration, and available Python modules.
Returns: str: Feature list
Inputs: no named parameters. Returns: result
edb_list_functionsARead-onlyIdempotent
List all functions in the binary, optionally filtered by name. Equivalent to EDB's FunctionFinder plugin. Shows function names, addresses, and prototypes.
Args: params (FunctionFilterInput): Filter - filter_str (str): Optional filter (e.g., 'main', 'printf')
Returns: str: Function listing
Inputs: params (required). Returns: result
edb_list_modulesARead-onlyIdempotent
List all shared libraries / modules loaded by the process. Shows base address, text size, and path.
Returns: str: Module listing
Inputs: no named parameters. Returns: result
edb_list_pluginsARead-onlyIdempotent
List all available debugger plugins and capabilities. Equivalent to EDB's DialogPlugins. Shows EDB plugins, GDB auto-load scripts, and pretty-printers.
Returns: str: Plugin listing with descriptions
Inputs: no named parameters. Returns: result
edb_list_signalsARead-onlyIdempotent
List all signals and how GDB handles them. Equivalent to EDB's signal configuration view. Shows which signals cause stop, print notification, and are passed to the program.
Args: params (ListSignalsInput): Filter - signal (str): Specific signal to query (default: all)
Returns: str: Signal list with handling info
Inputs: params (required). Returns: result
edb_list_sourceARead-onlyIdempotent
Display source code with line numbers. Current line is marked with '->'. Reads directly from the source file if available.
Args: params (SourceInput): Source location - file (str): Source file path - line (int): Starting line (default: 1) - count (int): Lines to show, 1-200 (default: 20)
Returns: str: Source code listing
Inputs: params (required). Returns: result
edb_list_source_filesARead-onlyIdempotent
List all source files used by the debugged program.
Equivalent to GDB's info sources command. Shows compiled source
files and their paths.
Returns: str: Source file list
Inputs: no named parameters. Returns: result
edb_list_stack_argumentsBRead-onlyIdempotent
List arguments for stack frames. Equivalent to EDB's stack frame panel. Shows function arguments for the current frame.
Args: params (FrameRangeInput): Frame range - frame_low (int): Lowest frame (default: 0)
Returns: str: Arguments per frame
Inputs: params (required). Returns: result
edb_list_threadsARead-onlyIdempotent
List all threads in the debugged process with IDs, names, and states.
Returns: str: Thread listing
Inputs: no named parameters. Returns: result
edb_load_programA
Load an executable binary for debugging. Resolves symbols and prepares for execution. Optionally pass command-line arguments. This is the mandatory first step for debugging a new binary.
Args: params (BinaryPath): Path and arguments - path (str): Absolute path to the executable - args (Optional[str]): Command-line arguments (default: "")
Returns: str: Status message confirming the binary was loaded
Inputs: params (required). Returns: result
edb_load_symbol_fileADestructive
Load a symbol file for the debugged program. Equivalent to EDB's FasLoader plugin and GDB's symbol-file command. Supports ELF debug info files, FAS format, and separated debug symbols.
Args: params (SymbolFileInput): Symbol file - file_path (str): Path to symbol file - address (str): Base address (for add-symbol-file with .o/.so)
Returns: str: Symbol loading result
Inputs: params (required). Returns: result
edb_lookup_symbolARead-onlyIdempotent
Look up a symbol's address and type. Supports functions and variables.
Args: params (SymbolLookup): Symbol name - name (str): E.g., 'main', 'printf', 'errno'
Returns: str: Symbol address and type info
Inputs: params (required). Returns: result
edb_nop_rangeADestructive
Replace a range of instructions with NOP (0x90) bytes. This is the primary method for patching out conditional jumps or calls. Use edb_get_function_bounds to find the range for a function.
Args: params (NopRangeInput): Range to NOP - start_address (str): Start address (e.g., '0x400000') - end_address (str): End address, exclusive (e.g., '0x400005')
Returns: str: Confirmation of bytes written
Inputs: params (required). Returns: result
edb_patch_historyBRead-onlyDestructive
Show all memory patches made this session, or clear the history.
Inputs: params (required). Returns: result
edb_pauseA
Pause (interrupt) the running program. Sends a SIGINT to break execution.
Returns: str: Confirmation of interruption
Inputs: no named parameters. Returns: result
edb_pipelineADestructive
Load a binary, set breakpoint, run, and dump state in one call.
Inputs: params (required). Returns: result
edb_process_stringsBRead-onlyIdempotent
Scan process memory for readable ASCII strings.
Inputs: params (required). Returns: result
edb_ptypeARead-onlyIdempotent
Print the type of a variable, function, or expression.
Equivalent to GDB's ptype command. Shows complete type definition
including struct/class members, function signatures, and typedefs.
Args: params (PtypeInput): Expression - expression (str): Expression (e.g., 'main', 'argc', 'struct stat')
Returns: str: Type definition
Inputs: params (required). Returns: result
edb_read_memoryARead-onlyIdempotent
Read and display memory contents at an address as a hex dump. Shows hex bytes with ASCII representation.
Args: params (AddressInput): Memory parameters - address (str): Address (e.g., '0x7fff0000' or symbol name) - count (int): Bytes to read, 1-4096 (default: 128)
Returns: str: Formatted hex dump with address, hex bytes, and ASCII
Inputs: params (required). Returns: result
edb_read_memory_asARead-onlyIdempotent
Read memory at an address interpreted as a specific data type. Supports integers (8-64 bit signed/unsigned), float, double, pointer, and string. Essential for struct inspection, pointer chasing, and data analysis.
Args: params (ReadMemoryAsInput): Read parameters - address (str): Address or symbol name - data_type (str): Type: int8/16/32/64, uint8/16/32/64, float, double, pointer, string - count (int): Number of elements (default: 1, max: 256)
Returns: str: Value(s) interpreted as the requested type
Inputs: params (required). Returns: result
edb_remote_archARead-onlyIdempotent
Detect the architecture of a connected remote GDB target.
Inputs: no named parameters. Returns: result
edb_remote_connectADestructive
Connect to a remote gdbserver for remote debugging. Equivalent to starting a new debugging session with remote target. Use extended mode for continuous connection.
Args: params (RemoteConnectInput): Connection - host (str): Remote hostname or IP - port (int): Remote port (1-65535) - extended (bool): Use extended-remote mode
Returns: str: Connection status
Inputs: params (required). Returns: result
edb_remote_infoARead-onlyIdempotent
Show detailed information about the remote debugging target.
Inputs: no named parameters. Returns: result
edb_remove_bookmarkADestructiveIdempotent
Remove a bookmark by name.
Args: params (BookmarkNameInput): Bookmark name - name (str): Bookmark name to remove
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_remove_breakpointADestructiveIdempotent
Permanently remove a breakpoint or watchpoint by number. Use edb_list_breakpoints to find breakpoint numbers.
Args: params (BreakpointNumber): Breakpoint number - number (int): Breakpoint ID to remove
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_remove_commentADestructiveIdempotent
Remove an annotation previously added with edb_add_comment.
Args: params (AddressOnlyInput): Address - address (str): Address to remove comment from
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_restartADestructive
Kill and restart the debugged program. Reloads the binary, preserves breakpoints.
Returns: str: Status after restart
Inputs: no named parameters. Returns: result
edb_reverse_continueA
Continue execution backward to the previous breakpoint or event.
Requires GDB recording to be active (target record-full). Useful
for rewinding to find where state changed.
Returns: str: Reverse continue result
Inputs: no named parameters. Returns: result
edb_reverse_stepA
Step backward in the program execution (reverse debugging).
Requires GDB recording to be active (target record-full). Steps
the program backward one or more instructions.
Args: params (ReverseStepInput): Step count - count (int): Number of reverse steps (default: 1)
Returns: str: Reverse step result
Inputs: params (required). Returns: result
edb_runA
Start execution of the loaded program from the beginning. Stops at the first breakpoint hit.
Returns: str: Status with reason if stopped at breakpoint
Inputs: no named parameters. Returns: result
edb_scan_stack_for_retaddrARead-onlyIdempotent
Scan the stack for potential return addresses (values in valid text ranges). Useful for ROP/exploit analysis.
Inputs: params (required). Returns: result
edb_search_instructionsBRead-onlyIdempotent
Search memory for byte patterns (case-insensitive). Searches memory for the given hex byte pattern within the specified range. Useful for finding instruction opcode patterns in code sections.
Args: params (SearchInstructionsInput): Pattern search - pattern (str): Hex byte pattern (e.g., '0x90 0x90') - range_start (Optional[str]): Start address of search range - range_end (Optional[str]): End address of search range
Returns: str: Addresses where pattern was found
Inputs: params (required). Returns: result
edb_search_memoryARead-onlyIdempotent
Search memory for a byte pattern. Finds all occurrences in the specified region.
Args: params (SearchMemoryInput): Search parameters - pattern (str): Hex bytes (e.g., '0x90 0x90') - address (Optional[str]): Start address (default: $pc) - length (Optional[str]): Region size in hex (default: 0x10000)
Returns: str: Addresses where the pattern was found
Inputs: params (required). Returns: result
edb_send_signalBDestructive
Send a signal to the debugged process. Equivalent to EDB's signal delivery mechanism. Can be used to send SIGINT (2) to interrupt, SIGTERM (15) for graceful shutdown, etc.
Args: params (SignalSendInput): Signal - signum (int): Signal number (1-64), e.g., 2=SIGINT, 9=SIGKILL, 15=SIGTERM
Returns: str: Signal delivery result
Inputs: params (required). Returns: result
edb_session_loadADestructive
Load a debugging session from a JSON file. Equivalent to EDB's SessionManager. Restores breakpoints, bookmarks, comments, binary path, and arguments from a saved session.
Args: params (SessionFileInput): Input - file_path (str): Full path to session file
Returns: str: Load confirmation with details
Inputs: params (required). Returns: result
edb_session_saveAIdempotent
Save the complete debugging session to a JSON file. Equivalent to EDB's SessionManager. Saves breakpoints, bookmarks, comments, binary path, and arguments for later restoration.
Args: params (SessionFileInput): Output - file_path (str): Full path to session file
Returns: str: Save confirmation
Inputs: params (required). Returns: result
edb_set_breakpointB
Set a breakpoint at a function, address, or source location. Supports conditional breakpoints.
Args: params (BreakpointInput): Breakpoint location - location (str): E.g., 'main', '*0x400528', 'foo.c:42' - condition (Optional[str]): E.g., 'x == 5' (default: none)
Returns: str: Breakpoint number and details
Inputs: params (required). Returns: result
edb_set_breakpoint_conditionAIdempotent
Set or remove a condition on an existing breakpoint. Equivalent to EDB's DialogBreakpoints condition button. The breakpoint will only trigger when the condition evaluates to true.
Args: params (BreakpointConditionInput): Condition - number (int): Breakpoint number - condition (str): Condition (empty to remove, e.g., 'eax == 0')
Returns: str: Condition update result
Inputs: params (required). Returns: result
edb_set_breakpoint_ignore_countAIdempotent
Set the number of times a breakpoint should be ignored before stopping.
Equivalent to GDB's ignore command. Useful for skipping a breakpoint
N times (e.g., in a loop) before breaking.
Args: params (BreakpointIgnoreInput): Ignore - number (int): Breakpoint number - count (int): Skip count (0 = don't skip)
Returns: str: Ignore count result
Inputs: params (required). Returns: result
edb_set_catchpointA
Set a catchpoint for exceptions, syscalls, signals, or process events. Equivalent to EDB's catchpoint feature. Stops execution when the specified event occurs.
Args: params (CatchpointInput): Catchpoint - event (str): Event: throw, catch, syscall, signal, assert, exec, fork, vfork, load, unload - condition (str): Optional condition or syscall name/number
Returns: str: Catchpoint confirmation
Inputs: params (required). Returns: result
edb_set_current_threadA
Switch the debugger context to a different thread. All subsequent commands apply to the selected thread.
Args: params (ThreadId): Thread ID - thread_id (int): Thread ID to switch to
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_set_debug_outputADestructiveIdempotent
Enable or disable GDB internal debug output. Equivalent to EDB's Debug Logger panel. Shows detailed GDB internals for troubleshooting: target events, breakpoint insertion, stepping, etc. Available categories: infrun, lin-lwp, remote, serial, target, event, expression, overlay, frame, thread.
Args: params (DebugOutputInput): Debug settings - category (str): Debug category (empty to list available) - enable (bool): True=on, False=off (default: True)
Returns: str: Debug output status
Inputs: params (required). Returns: result
edb_set_environment_variableADestructiveIdempotent
Set an environment variable for the debugged process. Equivalent to EDB's process environment configuration. Variables set here are passed to the program when it runs.
Args: params (EnvironmentInput): Variable - name (str): Variable name (e.g., 'LD_PRELOAD', 'PATH') - value (str): Variable value
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_set_hardware_breakpointB
Set a hardware-assisted breakpoint using CPU debug registers. Useful for ROM, flash, or self-modifying code regions.
Args: params (BreakpointInput): Location - location (str): Address or function name
Returns: str: Hardware breakpoint information
Inputs: params (required). Returns: result
edb_set_memory_permissionsADestructiveIdempotent
Set memory permissions for a region (read/write/execute).
Equivalent to EDB's DialogMemoryRegions permission checkboxes.
Uses GDB's mem command to define memory region attributes.
Args: params (MemoryPermissionsInput): Permissions - address (str): Start address - permissions (str): Permissions: none, r, w, x, rw, rx, wx, rwx - size (int): Region size (default: 4096)
Returns: str: Permission change confirmation
Inputs: params (required). Returns: result
edb_set_registerADestructive
Modify a CPU register value. Useful for patching execution flow or testing conditions.
Args: params (RegisterSetInput): Register modification - name (str): Register name (e.g., 'rax', 'rip') - value (str): New value in hex (e.g., '0x7fff00001000')
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_set_session_loggingADestructiveIdempotent
Log all GDB input/output to a file for debugging or record-keeping. Useful for creating session transcripts and debugging GDB interactions.
Args: params (SessionLoggingInput): Logging - file_path (str): Log file path (default: gdb.log) - enable (bool): Enable (True) or disable (False) logging
Returns: str: Logging status
Inputs: params (required). Returns: result
edb_set_trace_pointA
Set a trace point (logging breakpoint) that prints a message and continues without stopping execution. Useful for tracing function calls and variable changes without interrupting the program flow.
Args: params (ConditionalLogInput): Trace configuration - location (str): Breakpoint location (function, address, or file:line) - log_message (str): Message to print (use $reg for register values)
Returns: str: Trace point number and details
Inputs: params (required). Returns: result
edb_set_ttyADestructiveIdempotent
Set the terminal device for the debugged program's I/O. Equivalent to EDB's TTY configuration in DialogOptions. The program's stdin/stdout/stderr will be redirected to this TTY.
Args: params (TTYInput): Terminal - tty_path (str): TTY device path (e.g., '/dev/pts/0')
Returns: str: TTY configuration result
Inputs: params (required). Returns: result
edb_set_variableADestructive
Modify a variable's value in the current scope. Useful for altering program behavior during debugging.
Args: params (VariableInput): Variable modification - name (str): Variable name (e.g., 'x', 'error_flag') - value (str): New value (e.g., '0', '42', '"hello"')
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_set_watchpointA
Set a watchpoint to monitor memory access. Three modes:
'write': stops when value changes (default)
'read': stops when value is read
'access': stops on both read and write
Args: params (WatchpointInput): Watchpoint configuration - expression (str): E.g., 'x', '*0x7fff0000', 'my_global' - watch_type (str): 'write', 'read', or 'access' (default: 'write')
Returns: str: Watchpoint details
Inputs: params (required). Returns: result
edb_set_working_directoryAIdempotent
Set the working directory for the debugger and debugged process. Equivalent to EDB's actionApplication_Working_Directory. Useful for programs that need to load files from a specific directory.
Args: params (WorkingDirectoryInput): Directory - directory (str): Working directory path
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_show_configurationARead-onlyIdempotent
Display current debugger configuration settings.
Uses GDB's show command to query various settings.
Args: params (ShowConfigInput): Query - setting (str): Setting name (e.g., 'architecture', 'follow-fork-mode')
Returns: str: Current configuration value
Inputs: params (required). Returns: result
edb_signal_handlingADestructiveIdempotent
Configure how GDB handles signals (stop, print, pass to program). Equivalent to EDB's signal handling in DebuggerCore. When action is empty, queries current handling for the signal.
Args: params (SignalHandlingInput): Signal settings - signal (str): Signal name (e.g., SIGSEGV, SIGINT, SIGTRAP) - action (str): Action: stop, nostop, print, noprint, pass, nopass, ignore
Returns: str: Signal handling configuration
Inputs: params (required). Returns: result
edb_stack_modifyADestructive
Modify the value at the top of the stack without changing RSP. Equivalent to EDB's Stack context menu → Modify. Writes a new value to the current stack pointer location.
Args: params (StackModifyInput): New value - value (str): New value (e.g., '0xdeadbeef')
Returns: str: Result
Inputs: params (required). Returns: result
edb_stack_popADestructive
Pop a value from the program stack (reads value, increments RSP). Equivalent to EDB's Stack context menu → Pop. Returns the popped value and modifies the target process RSP register.
Returns: str: Popped value and result
Inputs: no named parameters. Returns: result
edb_stack_pushADestructive
Push a value onto the program stack (decrements RSP, writes value). Equivalent to EDB's Stack context menu → Push. Modifies the target process stack and register state.
Args: params (StackPushInput): Push value - value (str): Value to push (e.g., '0x1234', '&main')
Returns: str: Result
Inputs: params (required). Returns: result
edb_step_instructionA
Step a single instruction (assembly-level), not a source line. Equivalent to EDB's action_Single_Step. Unlike edb_step_into which steps by source line, this steps by individual CPU instruction.
Args: params (StepInstructionInput): Count - count (int): Number of instructions to step (default: 1)
Returns: str: Step result with current instruction
Inputs: params (required). Returns: result
edb_step_intoA
Execute one machine instruction, stepping into function calls.
If the current instruction is a call, execution enters the called function.
Returns: str: JSON with address, function, file, line after stepping
Inputs: no named parameters. Returns: result
edb_step_outA
Execute until the current function returns to its caller.
Returns: str: Location where execution stopped
Inputs: no named parameters. Returns: result
edb_step_overA
Execute one machine instruction, treating calls as atomic.
If the instruction is a call, the entire called function runs then stops.
Returns: str: JSON with address, function, file, line after stepping
Inputs: no named parameters. Returns: result
edb_step_over_instructionA
Step over a single instruction (assembly-level), skipping calls.
Equivalent to GDB's nexti command. Unlike edb_step_over (source line)
and edb_step_instruction (step INTO calls), this steps over calls
at the instruction level.
Args: params (StepOverInstructionInput): Count - count (int): Number of instructions (default: 1)
Returns: str: Step result
Inputs: params (required). Returns: result
edb_string_referencesARead-onlyIdempotent
Find all code and data references to a string or address in the binary. Searches function names, variable names, and source files for the given string. Useful for tracing how a particular value or string is used in the program.
Args: params (StringRefInput): Search target - string_or_address (str): String content (e.g., 'password') or hex address
Returns: str: Matching functions, variables, and sources
Inputs: params (required). Returns: result
edb_trace_showARead-onlyIdempotent
Show execution trace status, frames, and collected data.
Inputs: no named parameters. Returns: result
edb_trace_startA
Start an execution trace at an address/function. Records every instruction execution.
Inputs: params (required). Returns: result
edb_trace_stopAIdempotent
Stop the current execution trace session.
Inputs: no named parameters. Returns: result
edb_unset_environment_variableADestructiveIdempotent
Remove an environment variable from the debugged process. Useful for clearing variables that may affect program behavior.
Args: params (EnvironmentUnsetInput): Variable name - name (str): Variable name to unset
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_va_to_file_offsetARead-onlyIdempotent
Convert a virtual address in the loaded process to the corresponding file offset in the binary on disk. Essential for applying patches back to the binary file.
Args: params (VirtualAddressInput): Virtual address - address (str): Virtual address in hex (e.g., '0x400000')
Returns: str: File offset in hex
Inputs: params (required). Returns: result
edb_view_at_addressARead-onlyIdempotent
Navigate to and inspect an address across all views. Equivalent to EDB's viewInCpu() / viewInDump() / viewInStack() context menu actions. Shows disassembly, hex dump, register references, and code references for the given address.
Args: params (ViewAddressInput): Address - address (str): Address to view (e.g., '0x400000', 'main', '$rsp')
Returns: str: Combined view across all panels
Inputs: params (required). Returns: result
edb_watch_expressionA
Add an expression to the auto-display list. Evaluated and shown on every stop.
Inputs: params (required). Returns: result
edb_whatisARead-onlyIdempotent
Print the type of an expression (short form).
Equivalent to GDB's whatis command. Shows the type name without
full definition (unlike edb_ptype).
Args: params (PtypeInput): Expression - expression (str): Expression (e.g., 'main', 'argc')
Returns: str: Type name
Inputs: params (required). Returns: result
edb_write_memoryADestructive
Write a value to a memory address. Use for patching code or data.
Args: params (MemoryWriteInput): Memory write - address (str): Target address (e.g., '0x400000') - data (str): Data to write (e.g., '0x90' for NOP)
Returns: str: Confirmation
Inputs: params (required). Returns: result
edb_write_memory_bytesADestructive
Write raw hex bytes to memory starting at an address. Useful for patching multiple bytes at once (e.g., NOP sled or shellcode).
Args: params (MemoryWriteBytesInput): Raw byte write - address (str): Target address (e.g., '0x400000') - hex_bytes (str): Hex bytes (e.g., '90 90 90' or '0x90 0x90 0x90')
Returns: str: Confirmation of byte count written
Inputs: params (required). Returns: result
pwntools_alignBRead-onlyIdempotent
Calculate aligned value (up/down) for a given alignment boundary.
Inputs: params (required). Returns: result
pwntools_analyze_elfARead-onlyIdempotent
Analyze an ELF binary using pwntools — entry point, PIE/NX/RELRO/Canary, sections, symbols, PLT/GOT, segments.
Inputs: params (required). Returns: result
pwntools_asmARead-onlyIdempotent
Assemble assembly instructions into hex bytes using pwntools + keystone.
Inputs: params (required). Returns: result
pwntools_bitsCRead-onlyIdempotent
Get or set a specific bit in an integer.
Inputs: params (required). Returns: result
pwntools_build_rop_chainCRead-onlyDestructive
Build a ROP chain to call a target function with arguments using pwntools ROP.
Inputs: params (required). Returns: result
pwntools_checksecARead-onlyIdempotent
Check security properties of an ELF binary: RELRO, Canary, NX, PIE, RPATH/RUNPATH, FORTIFY.
Inputs: params (required). Returns: result
pwntools_constgrepARead-onlyIdempotent
Search pwntools/ELF constants by name or value.
Inputs: params (required). Returns: result
pwntools_contextCRead-onlyIdempotent
View or modify pwntools global context (arch, os, endian, log_level).
Inputs: params (required). Returns: result
pwntools_cyclicARead-onlyIdempotent
Generate a cyclic pattern for buffer overflow offset discovery.
Inputs: params (required). Returns: result
pwntools_cyclic_findBRead-onlyIdempotent
Find the offset of a value within a cyclic pattern.
Inputs: params (required). Returns: result
pwntools_disasmARead-onlyIdempotent
Disassemble raw hex bytes into assembly instructions using pwntools + capstone.
Inputs: params (required). Returns: result
pwntools_elf_depsARead-onlyIdempotent
List shared library dependencies of an ELF binary (DT_NEEDED entries).
Inputs: params (required). Returns: result
pwntools_elf_diffARead-onlyIdempotent
Compare two ELF binaries: sections, segments, symbols.
Inputs: params (required). Returns: result
pwntools_elf_gotBRead-onlyIdempotent
Parse Global Offset Table (GOT) entries from an ELF binary.
Inputs: params (required). Returns: result
pwntools_elf_notesARead-onlyIdempotent
Show ELF notes: build ID, ABI tag, property notes.
Inputs: params (required). Returns: result
pwntools_elf_patchBDestructive
Patch bytes in an ELF binary at a given file offset. Creates a backup.
Inputs: params (required). Returns: result
pwntools_elf_pltARead-onlyIdempotent
Parse Procedure Linkage Table (PLT) entries from an ELF binary.
Inputs: params (required). Returns: result
pwntools_elf_readARead-onlyIdempotent
Read bytes from an ELF binary at a section or address, with hex dump output.
Inputs: params (required). Returns: result
pwntools_elf_relocsARead-onlyIdempotent
Show ELF relocation entries (GOT/PLT fixups and absolute relocations).
Inputs: params (required). Returns: result
pwntools_elf_searchBRead-onlyIdempotent
Search for a byte pattern in an ELF binary.
Inputs: params (required). Returns: result
pwntools_elf_sectionsARead-onlyIdempotent
List all ELF sections with detailed info: type, flags, address, offset, size, alignment.
Inputs: params (required). Returns: result
pwntools_elf_segmentsBRead-onlyIdempotent
List ELF program headers (segments): type, flags, offset, vaddr, filesz, memsz.
Inputs: params (required). Returns: result
pwntools_elf_stringsBRead-onlyIdempotent
Extract printable strings from an ELF binary, optionally filtered by section.
Inputs: params (required). Returns: result
pwntools_elf_symbolsARead-onlyIdempotent
Search symbols in an ELF binary by regex pattern and type.
Inputs: params (required). Returns: result
pwntools_encBRead-onlyIdempotent
Encode shellcode using pwntools encoders (alphanumeric, null_free, xor).
Inputs: params (required). Returns: result
pwntools_enhexARead-onlyIdempotent
Encode raw bytes to hexadecimal string. Supports \x escapes.
Inputs: params (required). Returns: result
pwntools_entropyARead-onlyIdempotent
Calculate byte entropy (Shannon) of a file or memory region. Useful for detecting encryption, packing, or embedded data.
Inputs: params (required). Returns: result
pwntools_eropeARead-onlyIdempotent
Search ROP gadgets grouped by type: syscall, stack_pivot, call, jump.
Inputs: params (required). Returns: result
pwntools_find_ropARead-onlyIdempotent
Search for ROP gadgets in an ELF binary using pwntools ROP engine.
Inputs: params (required). Returns: result
pwntools_flatBRead-onlyIdempotent
Pack a list of values/addresses into flat bytes using pwntools flat().
Inputs: params (required). Returns: result
pwntools_fmtstr_payloadBRead-onlyIdempotent
Generate a format string exploit payload for arbitrary writes.
Inputs: params (required). Returns: result
pwntools_hexdumpARead-onlyIdempotent
Display a formatted hex dump using pwntools hexdump styling.
Inputs: params (required). Returns: result
pwntools_log_levelARead-onlyIdempotent
Set pwntools log verbosity. Levels: debug, info, warning, error.
Inputs: level (required). Returns: result
pwntools_make_elfBRead-onlyDestructive
Compile assembly code into an ELF binary using pwntools make_elf.
Inputs: params (required). Returns: result
pwntools_packARead-onlyIdempotent
Pack an integer into bytes (e.g., p64, p32, p16).
Inputs: params (required). Returns: result
pwntools_processCDestructive
Start a local process for interaction (pwntools tube).
Inputs: params (required). Returns: result
pwntools_remoteADestructive
Connect to a remote TCP service (pwntools tube).
Inputs: params (required). Returns: result
pwntools_rolARead-onlyIdempotent
Rotate an integer value left by N bits.
Inputs: params (required). Returns: result
pwntools_rorARead-onlyIdempotent
Rotate an integer value right by N bits.
Inputs: params (required). Returns: result
pwntools_shellcraftCRead-onlyIdempotent
Generate shellcode using pwntools shellcraft module.
Inputs: params (required). Returns: result
pwntools_sigreturnBRead-onlyIdempotent
Generate a Sigreturn-Oriented Programming (SROP) frame using pwntools SigreturnFrame.
Inputs: params (required). Returns: result
pwntools_tube_closeBDestructive
Close an active tube connection.
Inputs: params (required). Returns: result
pwntools_tube_listARead-onlyIdempotent
List all active tube connections.
Inputs: no named parameters. Returns: result
pwntools_tube_recvBRead-onlyIdempotent
Receive data from an active tube.
Inputs: params (required). Returns: result
pwntools_tube_recvlineARead-onlyIdempotent
Receive a single line from an active tube.
Inputs: params (required). Returns: result
pwntools_tube_recvuntilARead-onlyIdempotent
Receive data from a tube until a pattern is found.
Inputs: params (required). Returns: result
pwntools_tube_sendBDestructive
Send raw data to an active tube (process or remote).
Inputs: params (required). Returns: result
pwntools_tube_sendlineADestructive
Send a line (with newline) to an active tube.
Inputs: params (required). Returns: result
pwntools_unhexARead-onlyIdempotent
Decode hexadecimal string back to raw bytes.
Inputs: params (required). Returns: result
pwntools_unpackARead-onlyIdempotent
Unpack bytes into an integer (e.g., u64, u32, u16).
Inputs: params (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 207 tools
Many tools have overlapping purposes (e.g., multiple disassembly, stepping, and memory writing tools), but the descriptions and prefixes (edb_ vs pwntools_) help differentiate them. Still, an agent may struggle to choose the right tool among 207 options.
All tools follow a consistent verb_noun pattern with clear 'edb_' or 'pwntools_' prefixes. The naming is predictable and uniform, making it easy to infer tool purpose.
With 207 tools, the server is far beyond the typical scope for an MCP server. This overwhelming count likely leads to agent confusion and inefficiency, with many highly specialized tools that could be merged.
The tool surface is extremely comprehensive, covering virtually all aspects of debugging: breakpoints, stepping, memory manipulation, analysis, ROP, pwntools integration, remote debugging, and session management. No obvious gaps for the intended domain.
Maintenance
Related MCP Connectors
Email inboxes, webhook URLs, mock APIs and 170+ tools for coding agents over one MCP connection.
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Multiple MCP tools, persistent graph memory, token-saving data pointers, and more.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables AI-assisted reverse engineering and debugging through x64dbg integration. Provides 40+ tools for breakpoint management, memory operations, register manipulation, code analysis, process control, and advanced debugging features.22-
- AlicenseCqualityDmaintenanceAn MCP server that exposes pwndbg commands running under LLDB as tools for AI assistants. This enables AI-driven binary analysis, exploit development, and reverse engineering through pwndbg's enhanced debugging capabilities.1001MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to control GDB debugger via MCP protocol for local and remote debugging, supporting CTF Pwn, crash analysis, and ELF inspection.131MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP tool that enables AI agents to debug ELF binaries, particularly for CTF pwn challenges.39MIT