在 Ghidra 中逆向工程二进制文件
如果您觉得有用,请 ⭐ 给仓库加星——这有助于他人发现它!任务:建议落地方案:安装 Ghidra 12.2、Java 25 和 uv。部署 GhidraMCP 扩展和桥接器以连接 AI 代理与 Ghidra。代理使用 219 个 MCP 工具进行读写操作,如重命名、类型定义和 P-code 模拟。人类负责配置环境、启用插件,并通过 curl 验证连接性,然后将二进制分析任务委托给 AI。;工具:custom-built or unnamed agent。人工角色:原始帖子没有说明人如何参与。;局限:前提条件包括严格的版本匹配:扩展仅在构建时对应的特定 Ghidra 版本中加载。如果桥接器路径不是绝对路径,GUI 启动的客户端通常会因 'spawn ENOENT' 失败。脚本执行需通过环境变量显式启用。来源可靠性为次要;'久经考验' 的工作流声明由项目作者自报,未经外部审计。。
工具
custom-built or unnamed agent
Agent Work Atlas 发布日期:
概述
如果您觉得有用,请 ⭐ 给仓库加星——这有助于他人发现它!
工作流程
建议落地方案:安装 Ghidra 12.2、Java 25 和 uv。部署 GhidraMCP 扩展和桥接器以连接 AI 代理与 Ghidra。代理使用 219 个 MCP 工具进行读写操作,如重命名、类型定义和 P-code 模拟。人类负责配置环境、启用插件,并通过 curl 验证连接性,然后将二进制分析任务委托给 AI。
原文报告的结果
来源声称具备生产级可靠性,支持原子事务,并通过批处理操作减少 93% 的 API 调用。它指出 analyze_function_completeness 通过豁免结构性扣分提供诚实的 0-100% 评分。文本中未提供这些指标或实际业务影响的独立验证。可衡量的验收检查是:在启用批处理操作前后,比较对样本二进制文件的 API 调用次数。
人工角色
原始帖子没有说明人如何参与。
局限
前提条件包括严格的版本匹配:扩展仅在构建时对应的特定 Ghidra 版本中加载。如果桥接器路径不是绝对路径,GUI 启动的客户端通常会因 'spawn ENOENT' 失败。脚本执行需通过环境变量显式启用。来源可靠性为次要;'久经考验' 的工作流声明由项目作者自报,未经外部审计。
试一试
我需要设置 Ghidra MCP 以逆向工程一个二进制文件。首先,检查我是否安装了 Ghidra 12.2、Java 25 和 uv。如果没有,指导我完成安装。然后,从最新版本下载 GhidraMCP 扩展 zip 和桥接器 wheel。在 Ghidra 中通过 File > Install Extensions 安装扩展并重启。在 Configure > Utility 中启用插件。通过 curl http://127.0.0.1:8089/check_connection 验证服务器是否运行。接下来,使用 uv tool install [可替换的 wheel URL] 安装桥接器。配置我的 AI 客户端(例如 Cursor 或 Claude)使用桥接器,并指定可执行文件的绝对路径以避免 PATH 问题。在 Ghidra 中打开 [可替换的二进制文件]。要求 AI 列出函数并对前 5 个函数执行批量重命名操作。在执行任何写操作之前,向我展示拟议的更改以供批准。如果成功,报告与单独操作相比节省的 API 调用次数。如果发生错误,检查版本不匹配或 PATH 问题。
来源报告未经独立核验。发布日期为本站案例发布日期,并非原始文章日期。