☰
REA 对接 Ghidra 12.1.4:配置与验证全流程教程,拿到第一次反编译结果
2026/10/13 1:50:14 网站建设 项目流程

REA 对接 Ghidra 12.1.4:配置与验证全流程教程,拿到第一次反编译结果

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

REA 是把 Ghidra、Hopper 等逆向引擎接入 AI 客户端的逆向工程工具(Reverse Engineer Anything),让你用自然语言提问就能拿到反编译、xref 和调用链。照本文四个动手环节做完,你会完成 Ghidra 12.1.4 与 JDK 21 的对接、通过自检验证、注册进现有 AI 客户端,并跑通第一次原生二进制分析。

确认前置条件:REA 运行时与引擎版本约束

项目要求说明
REA 运行时Node.js 22.19+ / 24.11+ / 26+23、25 与预览版不受支持
Ghidra12.1.x(官方已验证 12.1.4)由安装目录的application.properties声明版本
JDK64 位完整版,大版本落在该 Ghidra 安装声明的区间内(12.1 系列要求 21+,无上限)精简版 JRE 不被接受,必须带javac
平台Linux x64/arm64、macOS x64/arm64Windows x64 为实验性 P0,见专门小节

JDK 版本必须以 Ghidra 安装自身声明的application.java.min/application.java.max区间为准,不是你想装什么装什么。另记住一条边界:REA 只做"连接 + 校验",从不替你下载、安装或升级 Ghidra 与 Java。

安装 Ghidra 12.1.4 与 JDK 21

这步完全在 REA 之外完成。把两样软件解压/安装到固定目录:

/opt/ghidra_12.1.4_PUBLIC # Ghidra 12.1.4 解压根目录 /opt/jdk-21 # JDK 21 完整版

确认对了的验证点:

  • Ghidra 目录中存在support/analyzeHeadless(Linux/macOS)或support/analyzeHeadless.bat(Windows)——这是 REA 启动无头分析的入口;
  • 终端里javac可用,证明是完整版 JDK;
  • macOS 用户:安装必须包含与本机架构匹配的原生反编译器(位于Ghidra/Features/Decompiler/os/<platform>/),REA 不会替你构建它,也不会改动 Gatekeeper 隔离属性;
  • Windows 用户:仅支持本地 NTFS 卷上的原生 x86-64 PE 应用与 DLL。

导出环境变量指向引擎

核心对接只有两个变量:

export GHIDRA_INSTALL_DIR=/opt/ghidra_12.1.4_PUBLIC export JAVA_HOME=/opt/jdk-21 # java/javac 已在 PATH 时可省略
  • GHIDRA_INSTALL_DIR:必填,指向 Ghidra 根目录;
  • JAVA_HOME:可选,仅在java/javac不在 PATH 时需要。

两个提前知道的可选变量:Hopper 等引擎并存时,设REA_ANALYSIS_PROVIDER=ghidra作为长期偏好;内存受限机器跑小目标时,设GHIDRA_HEADLESS_MAXMEM=512M控制 JVM 堆。

运行 rea doctor 自检验证

rea doctor是纯只读健康检查,不改任何配置。只排查 Ghidra 这一个引擎时用作用域写法:

rea doctor --provider ghidra --json

逐项通过标准:

检查项通过条件
平台与架构Linux x64/arm64 或 macOS x64/arm64
Ghidra 版本12.1.x
无头入口analyzeHeadless(.bat) 存在
Java 大版本落在安装声明的区间内(21+)
JDK 完整性64 位,且javac/javac.exe齐全

✅ Ghidra 相关检查项全部通过,即环境对接成功。⚠️ 任一项失败时,先按报告给出的 remediation 修复对应项,别急着改其它配置。

注册 REA 到 AI 客户端

做什么:把 REA 的 MCP 注册写进你现有的 Agent(Claude Code、Codex、Cursor、VS Code 等),之后对话中即可直接调用分析能力。

rea setup # 交互:选客户端 → 审计划 → 批准 rea setup --client codex --dry-run --json # 脚本:只读预览 rea setup --client codex --json # 批准后应用

安全机制值得强调:setup 先给出完整计划再动手——每一条环境变更(包括 Ghidra/JDK 路径条目)都逐条列出来供你审阅,批准后才写文件。写入采用原子替换并自动备份,保留无关条目与注释;任何提示处按 Ctrl-C 都是零改动。已验证的 Ghidra/JDK 路径会被保留进所选客户端配置,MCP 服务启动时直接定位到引擎。

跑通首次 Ghidra 二进制分析

先确认引擎已被识别:

rea providers --json

再跑最小用例:

rea inspect /path/to/binary --provider ghidra --json

REA 通过内置 Java 桥把目标副本导入临时私有工程,默认自动分析完成后才返回概览结果。这一步解锁 25 个只读 Ghidra 操作:13 项清单/名称/搜索 + 12 项函数分析,覆盖反编译、汇编、调用解析、xref、指令级事实与恢复的数据类型。

图:REA 原生引擎会话效果示例(官方文档示例为 Hopper 会话;Ghidra 的结果是同构的 Evidence 记录)。

新手最常踩的两个坑,提前预判:

  1. 首次查询慢。冷启动包含导入 + 自动分析 + 桥接就绪,REA 的引擎启动上限是 330 秒,而 AI 客户端默认超时往往只有 60 秒。在 SDK 里调用callTool时记得调大请求超时;超时后用close_binary再对同一目标open_binary(带provider_id: "ghidra")即可恢复,完整流程见 docs/mcp-contracts.md。
  2. 多引擎并存要显式选择。Hopper 与 Ghidra 同时支持目标时,直接打开会报 "ambiguous"。用--provider ghidra、open_binary的provider_id: "ghidra"或REA_ANALYSIS_PROVIDER环境变量指定一次即可,会话内不会自动切换。

Windows 平台的等效做法

Windows x64 目前是实验性 P0 边界:仅限本地 NTFS 上的原生 x86-64 PE 应用与 DLL,会话只读。PowerShell 中配置:

$env:GHIDRA_INSTALL_DIR = "C:\tools\ghidra_12.1.4_PUBLIC" $env:JAVA_HOME = "C:\tools\jdk-21" $env:REA_ANALYSIS_PROVIDER = "ghidra" rea doctor --json rea inspect "C:\fixtures\sample.exe" --provider ghidra --format json

DACL/Job Object 安全控制与已验证范围的细节见 docs/windows-ghidra-p0.md。

延伸阅读

  • docs/installation.md:安装选项全集与 setup 变更审阅细节
  • docs/ghidra-provider.md:25 个 Ghidra 只读操作各自的契约语义
  • docs/native-investigation.md:原生分析原语与工作流总览
  • docs/testing.md:npm run verify:ghidra等真实引擎验收通道

doctor、setup 与首次分析三项都通过后,你的 AI 客户端就拥有了完整的 Ghidra 静态分析能力——从"反编译这个函数"到"追这条调用链",问一句就行。🚀

【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询