我要提问
ARTICLE DETAIL

资讯详情

前沿编程新知与开发实战干货的深度解读。

REA 接入 Ghidra 完整配置指南:从环境变量到第一次二进制分析跑通

REA 接入 Ghidra 完整配置指南:从环境变量到第一次二进制分析跑通 REA 接入 Ghidra 完整配置指南从环境变量到第一次二进制分析跑通【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea拿到一个陌生二进制想让 AI 把函数逻辑拆明白REA 能把 Ghidra 这类逆向引擎接到 AI Agent 上替你查证。新手几乎都卡在 Ghidra 配置这一环版本不对、JDK 装错、首次查询超时。本文按钉版本、指路径、体检、注册、首查五步带你跑通。REA 到底怎么驱动 Ghidra边界在哪REA 从不替你下载、安装或升级 Ghidra 和 Java它只连接并校验你本地已有的安装。分析时它通过analyzeHeadlessGhidra 的命令行批处理分析器不开图形界面就能跑把目标副本导入一个临时私有工程挂上自带的 Java 桥取回结果用完即删。它能做的26 个只读操作覆盖清单、搜索、反编译、调用解析。它明确不做的不碰你原始二进制的字节不持久化分析数据库也不替你补齐缺失的环境。开跑前要钉死哪些版本约束Ghidra 只认 12.1.x 系列官方验证过 12.1.4。版本号以安装目录里application.properties的声明为准装别的系列会被直接拒绝。JDK 要 21 或更高没有上限⚠️ 且必须是 64 位完整版、带javac精简 JRE 不接受。判断区间以安装目录声明的application.java.min/application.java.max为准。安装目录必须有support/analyzeHeadlessWindows 上是analyzeHeadless.bat这是 REA 触发无头分析的唯一入口。平台边界Linux x64、macOS x64/arm64 正式支持Windows x64 是实验性 P0macOS 安装必须自带与本机架构匹配的原生反编译器REA 不会替你构建。REA 从不代装任何软件Linux 上还需 PATH 里有 procps 兼容的ps供它做进程归属检查。装好后用两个环境变量告诉 REA 去哪找export GHIDRA_INSTALL_DIR/opt/ghidra_12.1.4_PUBLIC export JAVA_HOME/opt/jdk-21 # java/javac 已在 PATH 时可省略Windows PowerShell 换成$env:GHIDRA_INSTALL_DIR C:\tools\ghidra_12.1.4_PUBLIC写法即可。指错路径的后果是 doctor 体检全红不如现在一步到位。按这个顺序把命令跑完rea doctor --json纯只读体检不改系统任何状态。它逐项核对平台架构是否支持、Ghidra 应用版本是否 12.1.x、analyzeHeadless是否存在、Java 大版本是否落在声明区间、JDK 是否 64 位、javac是否齐全。rea setup把 REA 注册进你选中的 AgentClaude Code、Codex、Cursor、VS Code 等并写入 MCPAI 客户端与工具间通信的协议配置。动手前它先列完整计划每条变更逐一审批写入是原子替换并自动备份Ctrl-C 随时取消且零改动验证过的 Ghidra/JDK 路径会保留进客户端配置。rea providers --json确认 Ghidra 出现在可用引擎列表里。看不到它说明前面的路径或版本问题还没解决先回头跑 doctor。rea analyze /path/to/binary --provider ghidra --json发起第一次分析。引擎并存时必须显式带--provider ghidra否则 REA 不猜直接报 ambiguous。怎么判断 Ghidra 配置真正通了排障单个引擎时用缩小范围的报告更干净rea doctor --provider ghidra --json通过标准四条版本项显示 12.1.x、analyzeHeadless存在、JDK 位数与大版本过关、javac齐备全部 healthy 才算对接完成。✅ 之后rea providers --json里有 ghidra、首条rea analyze返回的是 JSON 概览而不是超时错误整条链路就算跑通了。首次查询超时怎么恢复还有哪两个高频坑坑一第一次分析客户端先超时。现象AI 客户端报请求超时而引擎侧其实还在干活。 原因冷启动包含导入、自动分析、桥接就绪三段REA 给引擎启动的上限是 330 秒但客户端 SDK 默认请求超时往往只有 60 秒先于引擎截止线断掉。 恢复SDK 调用里把callTool的请求超时调大例如 240000 毫秒已经超时也没关系先close_binary关会话再对同一路径open_binary带provider_id: ghidra重开然后重试首查——不先关只重发open_binary不算恢复路径。大目标还可调REA_GHIDRA_STARTUP_TIMEOUT_MS抬高引擎侧上限。坑二多引擎并存报 ambiguous。现象capability_unavailableselection_reason为ambiguous。 原因Hopper 和 Ghidra 都支持该目标你又没指定用哪个。 恢复三选一——命令行加--provider ghidra、open_binary传provider_id、或设环境变量REA_ANALYSIS_PROVIDERghidra钉死。坑三doctor 的 Java 项不过。现象doctor 报 JDK 相关检查 unhealthy。 原因多为装的是没有javac的 JRE、32 位版本、大版本越界或 macOS 上 JDK 跑在 Rosetta 模拟下与主机架构不匹配。 恢复按 Ghidra 声明的区间选 JDK而不是想装什么装什么换成匹配的 64 位完整版 JDK重新指向JAVA_HOME后再跑一次rea doctor --provider ghidra --json。跑通之后26 个只读 Ghidra 操作就都在手上了14 项清单/名称/搜索12 项函数分析覆盖反编译、汇编、调用解析、xref交叉引用某地址被哪些位置访问的索引和恢复的数据类型从反编译某个函数到追一条调用链直接对话完成。想深入时setup 变更审阅的完整说明见 docs/installation.md验证通道与能力边界见 docs/ghidra-provider.md。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表