Hopper反汇编服务

Hopper MCP Server通过JSON文件与Hopper反汇编器交互,为LLM提供反汇编能力,适用于逆向工程和代码分析场景。

  • by neverrend
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 neverrend/hopper_mcp

使用说明

Hopper MCP服务器

MCP服务器,通过Claude Code(或任何MCP客户端)向LLM公开Hopper反汇编程序功能。

建筑

Claude/LLM  <--stdio-->  MCP Server  <--file bridge-->  Hopper Loader Script
                         (external)                      (runs inside Hopper)

MCP服务器通过JSON文件与Hopper通信 ~/.hopper_mcp/不需要SIP禁用或特殊权限。

设置

1.安装MCP服务器

cd hopper_mcp
pip install -e .

2.添加到Claude代码配置

添加 ~/.claude/claude_code_config.json:

{
  "mcpServers": {
    "hopper": {
      "command": "hopper-mcp"
    }
  }
}

3.启动料斗中的装载机

  1. 在料斗拆解器中打开二进制文件
  2. 打开 脚本编辑器 (Shift+Cmd+S)
  3. 加载或粘贴 hopper_scripts/hopper_mcp_loader.py
  4. 点击 跑

加载器将轮询命令。如果Hopper支持 addTimer(),它运行无阻塞。否则,它将运行阻塞循环。

可用工具

阅读工具

  • get_document_info --文档名称、入口点、段计数
  • list_segments --所有具有地址和大小的段
  • list_procedures --所有功能(可选按段过滤)
  • get_disassembly --在某个地址进行拆解
  • get_decompilation --函数的伪代码
  • read_bytes --地址处的原始字节数
  • get_xrefs --地址的交叉引用
  • search_strings --搜索字符串文字
  • get_current_selection --Hopper UI中当前选定的地址

注释工具

  • rename_symbol --重命名地址处的标签
  • add_comment --添加内联注释
  • set_type --在地址处设置数据类型

故障排除

  • 超时错误:确保加载器脚本在Hopper中运行
  • “没有打开的文档”:在运行加载器之前,在Hopper中打开二进制文件
  • 检查 ~/.hopper_mcp/commands/ 对于过时的命令文件(如果卡住,请删除它们)