
rea AI 逆向 CLI 完整教程一条命令逆向二进制追出 main 的全部证据【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea手头有陌生的二进制或 Electron 应用rea 是一条命令在本地完成二进制逆向的逆向 CLI支持 AI 逆向符号、函数、引用连同原始证据一起返回全程不用打开 IDA 或 Ghidra 图形界面。这篇教程按从 0 到第一次追出 main的真实路径把安装、引擎配置、编译目标、命令拆解、输出解读、排错合成一条能照着敲的流程线。rea doctor 自检一条命令确认环境就绪先跑一次只读体检逐项核对宿主平台、Node 版本、引擎可执行文件与 Agent 配置失败项后面直接附修复命令npx -y rea-agentslatest doctor --jsonNode 版本卡得很死22.x 需 ≥22.1924.x 需 ≥24.11或 2623 和 25 不在支持列表里。安装分三档按使用频率挑跑一次分析保持npx -y rea-agentslatest ...原样跑零全局安装当日常命令用npm install --global rea-agents之后直接敲rea——包同时注册了rea与rea-agents两个可执行名细节见安装文档接自己的 Agentnpx rea-agents setup注册 MCP 与工作流指引支持 Claude Code、Codex、Cursor、Gemini CLI 等十余种客户端。它只写配置外部依赖一律自己装。Ghidra 命令行逆向三步配好纯终端驱动⚙️ 已有 Ghidra 安装导出环境变量指认它export GHIDRA_INSTALL_DIR/absolute/path/to/ghidra_12.1.4_PUBLIC rea doctor --provider ghidra --json从此 Ghidra 就是纯命令行驱动不需要 GUI。想确认当前环境到底能干什么别再靠猜直接查清单rea providers --json rea capabilities --json输出的是能力清单。引擎本身可插拔原生二进制深分析在 Hopper、Ghidra、IDA 里三选一--provider显式指定或自动挑选JavaScript/Electron 静态分析与 .NET 分析则完全不依赖引擎。终端直敲和 Agent 走 MCP 两个入口共用同一份命令。编译一个没有符号表的练手目标仓库自带scripts/fixtures/binary-layout.c两个全局变量、一个read_values()辅助函数和main是覆盖符号、字符串、函数、引用四个概念的最精简样本。还没有源码就先克隆仓库git clone https://gitcode.com/GitHub_Trending/rea2/rea编译两份调试版留作对照stripped 版没有符号表、函数边界全靠引擎自己找才是硬骨头gcc -O0 -g -o hello_debug scripts/fixtures/binary-layout.c gcc -O0 -s -o hello_stripped scripts/fixtures/binary-layout.c追出 main 的完整档案rea analyze 全流程⚡ 从 stripped 版开跑。rea analyze走binary_overview工作流一次给回架构与格式、符号表、字符串清单、函数清单和调用关系rea analyze ./hello_stripped --provider ghidra --json接着给main建档案rea function返回入口地址、调用者与被调用者、控制流图外加最多 3000 条 p-code 操作和 12000 条 def-use 边rea function ./hello_stripped main --provider ghidra --json想看伪代码rea decompile传main的实际入口地址analyze 输出里能查到只看不启反编译器的原始指令换rea instructions。追到read_values的调用边后rea xrefs给一份有上限的引用列表——调用、跳转、数据、读写、间接、条件这些分类保留原始 ReferenceManager 类型最后用rea search定位字符串source-owned的落点加--mode regex --kind procedures还能按 Java 正则搜过程名rea xrefs ./hello_stripped 0x401155 --provider ghidra --json rea search ./hello_stripped source-owned --provider ghidra --json高频参数记三个--json出结构化结果默认终端格式是 TOON给人读的--snapshot path把结果缓存成本地快照相同目标加相同参数直接复用省掉重复启动引擎内存紧张时用GHIDRA_HEADLESS_MAXMEM512M限制 Ghidra JVM 堆。读懂 rea 输出身份、覆盖度与反编译器边界目标身份路径SHA-256大小是后续所有结论的对齐基准。目标字节一变结果身份立刻失配复现别人的结果之前先核对这三样。分析覆盖度被明确切分哪些是完整分析、哪些只是部分观察。unknowns里列的是分析没啃下来的部分不是被藏起来的失败——当信息读别当报错。反编译器边界Ghidra 吐出的伪代码是反编译器输出rea 从不把它包装成原始源码Limitations 栏会反复把这一点说清。不启动引擎的两条轻量路径Electron 逆向与 ELF 布局诊断Electron 逆向走纯静态解析对目录或.asarrea analyze-javascript-application /absolute/path/to/app --json返回模块、导入、Electron IPC 边界及各自证据。目录或.asar且未指定--provider/--snapshot时rea analyze会自动路由过去。离线 ELF 布局诊断更轻不建任何反汇编数据库直接回答节区/段布局、原始符号与重定位、静态链接名外加 canary、PIE、NX、RELRO 静态推断。需要一个带 pwntools 4.15.0 pyelftools Unicorn 的独立 Python 环境细节见 docs/binary-diagnostics.mdREA_PWNTOOLS_PYTHON/absolute/isolated-env/bin/python \ rea inspect-binary-layout ./hello_stripped --jsonrea 排错退出码与两个高频坑 退出码语义0 操作完成结果里仍可能含部分证据、警告或未解问题1 未完成输入无效、权限不足、超时等结构化输出会带原因128 N 被信号 N 终止。管道里记得set -o pipefail让下游格式化工具保留失败状态。症状处理analyze报capability_unavailable且details.selection_reason为ambiguous多个引擎都支持该目标从details.candidate_ids里显式选一个Ghidra 启动超时默认 330000ms约 5.5 分钟大目标调大export REA_GHIDRA_STARTUP_TIMEOUT_MS900000Node 版本不达标会直接提示Install Node.js 22.x (22.19), 24.x (24.11), or 26.怀疑版本问题先rea update再重试。用户可见错误信息逐条维护在 docs/user-visible-errors.csv它让你重试或跑rea doctor时照做就行。从看懂到写出来三个实战案例与文档指引 README 里的三个案例示范从「看懂」到「写出来」的完整链路DX-Ball 把汇编还原成 C 并通过 3205 个 x86 用例TH04 从 16 位 DOS 指令恢复角度计算Notion 把 Electron renderer 一路追到主进程 IPC 剪贴板桥。系统学习两份文档就够全部命令、快照与导入导出机制看 docs/cli.mdAgent 侧会话、证据与工具契约看 docs/mcp-contracts.md。下一步很具体挑你自己的目标二进制把上面rea analyze到rea search的命令换掉路径再跑一遍——追完第一个main剩下的只是换目标。【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考