二进制分析插件

一个angr管理插件,嵌入MCP服务器,将angr的二进制分析能力暴露给LLM客户端。

  • by sandbornm
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 sandbornm/angr_mcp

使用说明

Angr MCP插件

一 angr管理 嵌入 主控程序 (模型上下文协议)服务器,将angr的二进制分析功能暴露给LLM客户端,如Claude Code、Cursor和其他MCP兼容工具。

特性

  • 实时GUI集成 --MCP工具绑定到活动的angr管理工作区,因此LLM代理在您打开的同一二进制文件上运行
  • 功能分析 --从angr知识库中列出、检查和反编译函数
  • 符号执行 --构建CFG,探索有约束的路径,并求解stdin
  • 活突变 --重命名函数并设置注释,以实时更新GUI
  • 批量操作 --在一次调用中运行多个分析操作
  • 快照导出/导入 --用于可重复分析状态传输的版本化JSON合约
  • 无头开发模式 --独立运行MCP服务器,无需angr管理即可进行开发和测试

MCP工具

工具 类别 描述
am_get_current_program 核心 获取活动二进制文件的元数据
am_list_functions 核心 知识库中的分页功能列表
am_get_function 核心 给定地址处函数的详细信息
am_decompile_function 核心 将函数分解为伪代码
am_list_strings 核心 分页字符串列表
am_get_xrefs_to 核心 对目标地址的交叉引用
am_rename_function 核心 重命名函数(实时GUI更新)
am_set_comment 核心 在地址设置注释(实时GUI更新)
am_angr_entry 符号 获取二进制入口点地址
am_angr_cfg 符号 构建CFG并返回节点/边摘要
am_angr_explore 符号 具有查找/避免约束的符号执行
am_sync_export 自动化 将当前分析状态导出为快照
am_sync_import 自动化 导入并可选择应用快照
am_run_batch 自动化 在一次调用中执行多个操作

安装

需要Python 3.10+。安装时使用 紫外线 (推荐)或pip:

# Clone the repo
git clone https://github.com/sandbornm/angr_mcp.git
cd angr_mcp

# Install with dev dependencies
uv pip install -e ".[dev]"

# Include angr/angr-management in the same environment
uv pip install -e ".[dev,angr]"

用法

插件模式(angr管理GUI)

  1. 将插件符号链接到angr管理的插件目录中:
mkdir -p ~/.local/share/angr-management/plugins
ln -sfn "$(pwd)/src/angr_mcp_plugin" ~/.local/share/angr-management/plugins/angr_mcp
  1. 重新启动angr管理并启用 Angr MCP插件 从插件管理器。

  2. 打开二进制文件——MCP服务器会自动启动 http://127.0.0.1:8766/mcp.

开发模式(独立服务器)

运行MCP服务器而不进行angr管理以进行开发:

angr-mcp-dev-server

连接您的LLM客户端

将此添加到您的MCP客户端配置中(游标、克劳德代码等):

{
  "mcpServers": {
    "angr-mcp": {
      "url": "http://127.0.0.1:8766/mcp"
    }
  }
}

配置

插件读取这些环境变量:

变量 默认值 描述
ANGR_MCP_TRANSPORT streamable-http MCP传输类型
ANGR_MCP_HOST 127.0.0.1 服务器绑定地址
ANGR_MCP_PORT 8766 服务器端口

发展

# Install dev dependencies
uv pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check src/ tests/

# Type check
mypy src/

验证同步快照

angr-mcp-validate-sync snapshot.json

建筑

src/angr_mcp_plugin/
  plugin.py          # angr-management plugin entrypoint
  mcp_server.py      # Embedded MCP server (FastMCP + background thread)
  session_state.py   # Thread-safe workspace/project binding
  sync_contract.py   # Versioned snapshot export/import schema
  cli.py             # Dev server and validation CLI
  plugin.toml        # angr-management plugin metadata
  tools/
    core.py          # GUI-bound analysis tools (8 tools)
    symbolic.py      # Symbolic execution helpers (3 tools)
    automation.py    # Batch and sync tools (3 tools)

许可证

Apache 2.0