调试工具集成服务

提供AI代理对GDB/pwndbg调试和pwntools漏洞开发工具的完整访问,支持实时调试、堆分析和离线二进制分析。

  • by echo8134
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 echo8134/pwndbg-mcp

使用说明

pwndbg-mcp

模型上下文协议 允许AI代理完全访问GDB/pwndbg调试和pwntools开发工具的服务器。96个工具,涵盖实时调试、堆分析和离线二进制分析。

它做什么

  • 现场调试 --加载二进制文件、设置断点、遍历代码、检查寄存器/内存/堆栈
  • pwndbg集成 --上下文显示、望远镜、vmmap、堆可视化、ROP小工具、漏洞利用助手
  • 进程I/O --通过PTY向调试进程stdin/stdout发送/接收数据
  • pwntools离线 --打包、循环模式、ELF分析、ROP链构建、壳码生成、格式字符串有效载荷

需求

  • Python>=3.11
  • GDB与 pwndbg 安装
  • uv 包管理器

快速开始

git clone https://github.com/echo8134/pwndbg-mcp.git && cd pwndbg-mcp
uv run pwndbg-mcp install

这将安装依赖关系并在中注册服务器 ~/.claude.json.重新启动Claude Code以获取它。

命令行界面

pwndbg-mcp              # run the MCP server (default)
pwndbg-mcp install      # uv sync + register in ~/.claude.json
pwndbg-mcp uninstall    # unregister from ~/.claude.json
pwndbg-mcp config       # show registration status and JSON config
pwndbg-mcp run          # run the MCP server (explicit)
pwndbg-mcp path         # add pwndbg-mcp to shell PATH (zsh/bash/fish)

配置

环境变量 默认值 描述
PWNDBG_MCP_GDB_PATH gdb GDB二进制文件的路径(已加载pwndbg)

工具(96)

GDB核心(33)

工具 说明
load_binary 将ELF二进制文件加载到GDB中进行调试
attach_process 通过PID将GDB附加到正在运行的进程
detach_process 将GDB从当前进程中分离出来
remote_connect 连接到远程GDB服务器(gdbserver)
remote_disconnect 断开与远程GDB目标的连接
run_program 从头开始运行加载的程序
continue_execution 继续执行程序,直到下一个断点或退出
step_into 进入下一个源代码行(输入函数调用)
step_over 跳过下一个源代码行(跳过函数调用)
step_instruction 第一步机器指令(输入呼叫)
next_instruction 第一步机器指令(跳过调用)
finish_function 执行,直到当前函数返回
interrupt_execution 中断正在运行的程序(如GDB中的Ctrl-C)
kill_program 终止正在运行的程序
set_breakpoint 在指定位置设置断点
delete_breakpoint 按断点编号删除断点
enable_breakpoint 启用已禁用的断点
disable_breakpoint 禁用断点而不删除它
list_breakpoints 列出所有断点、观察点和捕捉点
set_watchpoint 在内存表达式上设置监视点
read_registers 读取CPU寄存器值
write_register 将值写入CPU寄存器
read_memory 读取某个地址的原始内存字节
write_memory 将字节写入内存中的某个地址
disassemble 在某个地址或范围内分解指令
evaluate_expression 在当前上下文中计算表达式
backtrace 显示调用堆栈(回溯)
stack_locals 在当前堆栈帧中显示局部变量
stack_args 在当前堆栈帧中显示函数参数
select_frame 按编号选择堆栈帧
list_threads 列出调试进程中的所有线程
switch_thread 切换到其他线程
execute_command 执行任何原始GDB/MI或控制台命令

pwndbg扩展(41)

工具 说明
pwndbg_context 显示pwndbg上下文显示:寄存器、反汇编、堆栈、回溯
telescope 从地址递归开始的解引用指针
vmmap 显示进程的虚拟内存映射
hexdump_memory 地址处的十六进制转储内存
xinfo 显示内存地址所属的信息
search_memory 在进程内存中搜索值
probeleak 探测内存中指向已知区域(堆、堆栈、libc等)的指针
leakfind 查找从地址到已知区域的指针链
distance 计算两个地址之间的距离
heap_bins 显示所有空闲列表箱(tcache、快速、未排序、小、大)
heap_overview 显示堆状态的概述
vis_heap_chunks 具有颜色编码边界的堆块的视觉表示
malloc_chunk 检查特定的malloc块头和元数据
top_chunk 显示堆的顶部(荒野)块
heap_arenas 列出所有malloc竞技场
tcachebins 显示tcache bin条目及其内容
fastbins 显示快速垃圾箱条目及其内容
unsortedbin 显示未排序的垃圾箱条目
smallbins 显示小垃圾箱条目及其内容
largebins 显示大箱子条目及其内容
find_fake_fast 查找地址附近的假fastbin块的候选位置
try_free 模拟free()对块执行的操作,检查错误
checksec 显示二进制安全功能:NX、PIE、RELRO、堆栈金丝雀、FORTIFY
got_table 显示全局偏移表条目及其解析地址
plt_table 显示程序链接表条目
piebase 显示加载的二进制文件的PIE基址
elf_sections 列出加载的二进制文件的所有ELF部分
libcinfo 显示libc版本和路径信息
rop_gadgets 在加载的二进制文件中查找ROP小工具
cyclic_pattern 生成De Bruijn循环模式以查找偏移量
cyclic_find 在De Bruijn循环模式中找到一个值的偏移量
onegadget 在libc中查找一个小工具RCE候选者
canary 显示当前堆栈金丝雀值
retaddr 显示当前帧堆栈上的返回地址
sigreturn_frame 生成SROP利用的sigreturn帧
dumpargs 根据调用约定将函数参数转储到当前位置
patch_instruction 在给定地址处修补内存中的指令
nearpc 显示带有上下文的地址周围的反汇编
emulate 在不实际运行指令的情况下模拟指令的执行
pwndbg_status 返回当前GDB状态并清除所有挂起的消息
pwndbg_hard_reset 完全终止并重新启动GDB进程

进程I/O(4)

工具 说明
send_to_process 将字符串发送到调试进程的stdin
eval_to_send 计算Python/pwntools表达式,并将结果以字节形式发送给进程
read_from_process 从调试进程的stdout读取输出
interrupt_process 通过终端向调试进程发送控制信号

pwntools实用程序(18)

不需要运行GDB会话的离线帮助程序。

工具 说明
pack 将整数打包成字节
unpack 将十六进制字符串解压缩为整数
pwn_cyclic 生成用于缓冲区溢出偏移查找的De Bruijn循环模式
pwn_cyclic_find 在De Bruijn循环模式中找到一个值的偏移量
elf_info 获取基本ELF信息:架构、位、字节序和安全校验秒结果
elf_symbols 列出ELF二进制文件中定义的符号
elf_got 显示ELF二进制文件的全局偏移表(GOT)条目
elf_plt 显示ELF二进制文件的过程链接表(PLT)条目
elf_search 在ELF二进制文件中搜索字节字符串
rop_find_gadgets 在ELF二进制文件中查找ROP小工具
rop_build_chain 从JSON规范构建ROP链
shellcraft_generate 从pwntools shellcraft模板生成shellcode汇编源代码
asm_encode 将指令汇编成机器代码字节
asm_decode 将机器代码字节分解为汇编指令
fmtstr_payload 生成利用有效载荷的格式字符串
hex_encode 将字符串编码为十六进制表示形式
hex_decode 将十六进制字符串解码回文本或字节表示
xor_data 将十六进制数据字符串与十六进制密钥字符串进行XOR运算

建筑

src/
  server.py           MCP server entry point, GDB controller lifecycle
  gdb_controller.py   Async GDB/MI protocol handler with PTY for process I/O
  tools_gdb.py        GDB core tools (33)
  tools_pwndbg.py     pwndbg extension tools (41)
  tools_pwntools.py   Offline pwntools utilities (18)
  tools_process.py    Process stdin/stdout tools (4)
  utils.py            ANSI stripping, response formatting
  cli.py              CLI: install/uninstall/config/run/path