{
  "added_at": "2026-11-03",
  "additional_evidence_urls": [
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/docs/index.md",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/docs/tabs/settings-tab.md",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/docs/tabs/query-tab.md",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/docs/tabs/semantic-graph-tab.md",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/docs/tabs/symgraph-tab.md",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/docs/binassist-on-windows.md",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/plugin.json",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/requirements.txt",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/src/services/models/provider_types.py",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/src/services/tool_approval_service.py",
    "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/LICENSE",
    "https://github.com/symgraph/BinAssist/releases/tag/2.1.0",
    "https://github.com/symgraph/GhidrAssist/blob/798a5d708124535aeb2ad8b7580ee08cfd14171b/README.md",
    "https://github.com/symgraph/IDAssist/blob/09dd910d70016c7b3f7e8bc01a4d5bc1035ec302/README.md"
  ],
  "category": "agent-workflows",
  "description_en": "Binary Ninja plugin by Jason Tang, who also wrote GhidrAssist and IDAssist, that adds a BinAssist sidebar for LLM-assisted analysis of the open binary. Its tabs explain functions at the LLIL, MLIL and HLIL levels and individual instructions, keep chats with context macros, MCP tool calling and an optional ReAct agent mode, propose function and variable renames, retypes and structures with confidence scores for review before they are applied, and build a semantic graph of functions and calls with community detection and source-to-sink taint paths, alongside retrieval over reference documents the analyst adds. A SymGraph tab imports and publishes names, graph data and documents through the hosted symgraph.ai service.",
  "description_zh": "由 GhidrAssist 与 IDAssist 作者 Jason Tang 开发的 Binary Ninja 插件，在侧边栏加入 BinAssist 面板，借助大语言模型分析当前打开的二进制。各标签页可在 LLIL、MLIL 和 HLIL 层级解释函数，也能解释单条指令；保存支持上下文宏、MCP 工具调用和可选 ReAct 智能体模式的对话；为函数和变量提出带置信度评分的重命名、类型修改及结构体建议，并在审阅后应用；还能构建涵盖函数与调用关系的语义图谱，进行社区检测并查找从输入源到危险调用点的污点路径，同时可检索分析人员添加的参考文档。SymGraph 标签页则通过托管的 symgraph.ai 服务导入和发布名称、图谱数据及文档。",
  "entry_url": "https://awesomerea.org/resources/binassist/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/binassist/",
  "evidence_url": "https://github.com/symgraph/BinAssist/blob/0f0b01a38cafde662b4ee8a2a35557c3b18df7ad/README.md",
  "group": "agents",
  "id": "binassist",
  "json_url": "https://awesomerea.org/resources/binassist/record.json",
  "kind": "integration",
  "markdown_url": "https://awesomerea.org/resources/binassist/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/binassist/index.md",
  "name": "BinAssist",
  "name_zh": "BinAssist Binary Ninja 大模型辅助分析插件",
  "record_type": "resource",
  "relationship": "independent-agent-integration",
  "requirements": [
    "Latest release at review: 2.1.0, published 2026-05-25 as a source-only GitHub release without notes; the reviewed master commit is four commits later and adds a default Claude Code CLI path on macOS and updated model guidance. plugin.json requires Binary Ninja build 5000 or later and lists Linux, Windows and macOS, while the README gives both 4000 and 5000 as the minimum; the README names Linux as the primary development platform and calls Windows and macOS less tested. The packages in requirements.txt, including openai, anthropic, mcp 1.23.3 and whoosh, plus pywin32 on Windows, are installed into Binary Ninja's Python, and a separate Windows guide covers installing them into its user site-packages.",
    "Analysis needs at least one configured LLM provider. The provider types cover Anthropic, OpenAI, Gemini and xAI API keys, OpenAI and Gemini subscription sign-in through OAuth, the local Claude Code CLI, a LiteLLM proxy for services such as AWS Bedrock and Azure, and local Ollama, LM Studio or Open WebUI endpoints; the documentation's provider tables also list an Anthropic OAuth type that the source does not define. Explanations, chats, Actions, agent runs and the graph's Semantic Analysis step send code from the binary to the active provider, so only a local or self-hosted endpoint keeps it on the machine, while the documentation describes re-indexing, Security Analysis and community detection without the model. The settings documentation places the analysis and RLHF feedback SQLite databases and the RAG index in a .binaryninja/binassist folder of the user's home directory, with analysis results keyed by the binary's SHA-256.",
    "Programs come from the user's own Binary Ninja sessions; the plugin supplies no target binaries. Actions suggestions are applied only for the rows the user selects. Chats can reach MCP servers over streamable HTTP or SSE or launch them over stdio, and the documentation recommends the author's separate BinAssistMCP server for Binary Ninja analysis tools. In the Query tab, calls to tools whose names do not look read-only wait for an allow-once, allow-for-session or deny decision unless the chat accepts all tools, and this classification relies on tool-name keywords.",
    "The SymGraph tab looks up the binary by SHA-256 without a key, but importing, publishing and uploading need a SymGraph API key, and publishing uploads the raw binary bytes, not the .bndb database, when the service does not already hold them. The repository has no tests or CI workflows. MIT, per LICENSE and plugin.json; Binary Ninja, model providers and SymGraph keep their own terms. The repository moved from jtang613/BinAssist."
  ],
  "requirements_zh": [
    "审阅时最新版本为 2.1.0，于 2026-05-25 以仅含源码、未附说明的 GitHub 发布形式推出；所审阅的 master 提交比它晚四个提交，增加了 macOS 上 Claude Code CLI 的默认路径并更新了模型建议。plugin.json 要求 Binary Ninja 5000 或更高版本，并列出 Linux、Windows 和 macOS，而 README 同时写有 4000 和 5000 两个最低版本；README 称 Linux 是主要开发平台，Windows 和 macOS 测试较少。requirements.txt 中的依赖（包括 openai、anthropic、mcp 1.23.3 和 whoosh，Windows 上另需 pywin32）需装入 Binary Ninja 的 Python 环境，另有一份 Windows 指南说明如何安装到其用户 site-packages 目录。",
    "分析需要至少配置一个大模型服务。服务类型包括 Anthropic、OpenAI、Gemini 和 xAI 的 API 密钥，通过 OAuth 登录的 OpenAI 与 Gemini 订阅，本地 Claude Code CLI，可接入 AWS Bedrock、Azure 等服务的 LiteLLM 代理，以及本地 Ollama、LM Studio 或 Open WebUI 端点；文档的服务类型表还列出了一个源码中并未定义的 Anthropic OAuth 类型。解释、对话、Actions、智能体运行以及图谱的 Semantic Analysis 步骤都会把二进制中的代码发送给当前服务，只有本地或自托管端点才能让代码不离开本机；文档所述的重建索引、Security Analysis 和社区检测则无需调用模型。设置文档称，分析数据库、RLHF 反馈 SQLite 数据库和 RAG 索引位于用户主目录下的 .binaryninja/binassist 文件夹中，分析结果按二进制的 SHA-256 存储。",
    "待分析程序来自用户自己的 Binary Ninja 会话，插件本身不提供任何目标二进制。Actions 的建议只对用户选中的行生效。对话可通过 streamable HTTP 或 SSE 连接 MCP 服务器，也可通过 stdio 启动；文档推荐搭配作者另行发布的 BinAssistMCP 服务器获取 Binary Ninja 分析工具。在 Query 标签页中，名称看起来并非只读的工具，调用前需等待用户选择允许一次、本会话允许或拒绝，除非该对话开启了接受所有工具，而这种分类依赖工具名称中的关键词。",
    "SymGraph 标签页无需密钥即可按 SHA-256 查询二进制，但导入、发布和上传需要 SymGraph API 密钥；若服务中尚无该文件，发布时会上传原始二进制字节，而非 .bndb 数据库。仓库没有测试或 CI 工作流。依据 LICENSE 和 plugin.json 采用 MIT 许可；Binary Ninja、各模型服务和 SymGraph 仍受各自条款约束。仓库已从 jtang613/BinAssist 迁移。"
  ],
  "targets": [
    "binary"
  ],
  "url": "https://github.com/symgraph/BinAssist",
  "verification": "source-reviewed",
  "verified_at": "2026-10-27"
}
