REA 逆向工程助手
用一个本地命令分析二进制文件与固件,并生成可读报告。
- Star 数
- ★ 76
- 最近更新
- 2 天前
- License
- MIT
- 主语言
- Rust
- FA 评分
- 47/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 逆向工程师需要快速检查 PE、ELF、Mach-O 或原始固件,并获得哈希、导入项和缓解措施摘要。
- 不适合
- 需要始终由 AI 撰写分析报告的团队
- 不愿在本地运行命令行工具的用户
这个 Agent 能做什么,适合哪些场景?
REA 是一款以 Rust 编写的自主逆向工程框架,主要通过 rea <file> 在本地分析目标文件。它会按文件内容识别格式,并生成 Markdown、PDF 和 JSON 报告;即使没有 AI API 密钥,也能离线运行确定性分析。配置 OpenRouter API 密钥后,REA 可运行带工具调用的分析循环,由模型检查目标并撰写报告。它也提供 rea serve MCP 服务,供支持 MCP 的客户端交互调用分析工具。构建需要稳定版 Rust 工具链,README 记录了 Windows、macOS 和 Linux 的构建目标。
运行 rea <path-to-target> 后,REA 检查文件格式、哈希、熵、节区、导入导出、缓解措施、字符串和指标,并根据目标类型提供反汇编、调用图、模拟执行或格式专属检查。它将 Markdown、PDF 和 JSON 报告写在目标旁边;可用的专用命令还包括 decompile、strings、decrypt、rules、audit、unpack 和 emulate。设置 OPENROUTER_API_KEY 后,自主分析器可调用工具检查目标并生成分析章节;未设置时则采用纯离线确定性路径。执行 rea serve 可通过 stdio 上的 JSON-RPC 2.0 暴露分析工具,MCP 客户端可调用这些工具开展交互式分析。
- 逆向工程师需要快速检查 PE、ELF、Mach-O 或原始固件,并获得哈希、导入项和缓解措施摘要。
- 恶意软件分析人员需要提取 URL、IP、文件路径等指标,并查看调用图或解密隐藏字符串。
- 固件审计人员需要检查 U-Boot 镜像、SquashFS 文件系统或 ARM Cortex-M 固件中的文件与凭据线索。
- 安全团队希望在不配置 AI 服务的情况下,对样本执行离线、确定性的初步分析。
- 使用 Claude Code 的分析人员希望通过 MCP 调用 REA 的反汇编、规则匹配、审计或模拟工具。
如何安装或部署这个 Agent?
从源码构建需要安装稳定版 Rust 工具链。仓库文档给出了以下 Linux x64 构建方式:
git clone https://github.com/mytechnotalent/rea.git
cd rea
rustup target add x86_64-unknown-linux-gnu
cargo build --release -p rea --target x86_64-unknown-linux-gnu也可将原生构建安装到 PATH:
cargo install --path crates/reaREADME 指明 macOS Apple Silicon 预构建二进制位于 releases/;Windows 和 Linux 的构建方式是从源码构建。要启用自主 AI 分析,需设置 OpenRouter API 密钥;该密钥不是离线分析的前置条件。
如何使用这个 Agent?
对目标运行一次性分析命令,REA 会在目标旁边写出三种报告:
rea <path-to-target>例如:
rea ./sample需要交互式分析时,启动 MCP 服务:
rea serveClaude Code 配置示例:
claude mcp add rea rea serve启用 AI 分析前,在环境变量或当前目录及其上级目录中的 .env 文件设置密钥:
OPENROUTER_API_KEY="sk-or-v1-..."可选模型变量为 OPENROUTER_MODEL;未配置密钥时使用离线确定性分析。
这个 Agent 有哪些优点和局限?
- 无需 API 密钥即可完全离线生成确定性报告,且 README 声明不会发起网络请求。
- 单条命令生成 Markdown、排版 PDF 和机器可读 JSON 三种报告。
- 支持多类可执行文件、固件和数据格式,包含反汇编、模拟执行、指标提取及规则检查。
- MCP 服务可供 Claude Code 等客户端调用,并通过
rea mcp --setup生成配置。
- 源码构建需要安装稳定版 Rust 工具链;README 只列出 macOS Apple Silicon 的预构建二进制。
- 自主 AI 分析依赖 OpenRouter API 密钥;README 未说明 API 使用价格。
- 离线模式是确定性技术报告路径,不包含 README 所述由模型撰写的分析报告。
- README 没有说明如何将 REA 作为库嵌入其他程序。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| REA 逆向工程助手 当前 | 47 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 76 | 2 天前 | Rust | Claude Code |
| LitterBox 载荷分析沙箱 | 52 · 缺口较多 | 命令行工具免费 | ★ 1.6k | 5 个月前 | YARA | — |
| Open Claude in Chrome | 40 · 缺口较多 | MCP 服务器免费 + 模型费 | ★ 254 | 26 天前 | HTML | Claude Code |
| Flow-Like | 55 · 缺口较多 | 桌面应用免费版 + 付费版 | ★ 962 | 今天 | Rust | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
README说明REA可读取目标并在目标旁写出Markdown、PDF和JSON报告,且可选配置OpenRouter API key进行90轮工具调用;这让主要数据流可见(data_flow_transparency 2)。但未说明文件覆盖确认、输出权限或回滚方式(user_confirmation 1、rollback 0),对API key和报告中可能出现的密钥、凭据没有处理说明(sensitive_data_handling 1)。列出的CLI/MCP能力较广,缺少细粒度权限控制说明(least_privilege 1);联网分析虽标为可选,但网络影响和数据发送范围说明有限(external_effects 1)。提供了Rust工作区和MIT许可信息,但没有依赖审计或安全维护证据(dependency_security 1)。Cargo.toml署名作者并给出仓库地址,支持有限来源追溯(source_attribution 2);发布者身份仍按题设视为未知。
README把无API key的离线模式、可选AI模式和纯Rust实现描述得较清楚,但“任何文件”“malformed or hostile inputs can never compromise the host”等绝对安全表述缺少所给代码或测试佐证,也与来源材料仅展示文档和少量夹具的证据范围不相称(self_consistency 1)。Rust工具链和跨平台构建步骤明确,且说明无需外部反编译工具(dependency_availability 2);未提供依赖锁定、故障信息或错误处理细节(failure_messages 0)。
README明确面向逆向分析,列出多种文件格式、CLI子命令和MCP交互方式,场景与触发方式较清楚(audience_and_scenarios 2、trigger_precision 2)。列出的分析能力丰富,但没有充分说明哪些目标或分析结论不受支持、模型工具权限边界在哪里(capability_boundaries 1)。提供Windows、macOS、Linux构建及使用说明,且有离线路径(environment_fit 2)。
README按功能、格式、使用、MCP、配置和构建分节,并给出命令示例,结构和示例较实用(information_architecture 2、examples_and_faq 2)。有Rust安装、平台构建与安装说明(install_notes 2);项目名、命令名和版本号在所给文件中基本一致(naming_stability 2)。未见明确限制说明,针对过度宽泛的安全与支持范围声明也缺少边界(known_limitations 1)。LICENSE提供完整MIT文本,版权与授权条款清楚(license 3)。README标出v5.6.1及变更摘要,但没有更完整的版本历史(versioning_changelog 2)。Cargo.toml列作者,但所给材料未说明维护责任或更新渠道(maintenance_responsibility 1)。
README说明生成Markdown、PDF和机器可读JSON,并列出分析命令,输出形式适合人工查看和后续处理(output_usability 2)。多格式逆向分析、规则匹配和MCP接口显示出相对手工逐项分析的潜在价值(marginal_value 2),但报告准确性、分析覆盖率和实际运行成本没有所给证据支持,因此成本收益只能部分判断(cost_benefit 1)。
README中的命令、文件名、版本号和依赖配置有部分Cargo.toml或LICENSE信息可对应,但绝大多数功能与安全保证没有所给实现或测试佐证(claim_traceability 1)。所给README、Cargo.toml和LICENSE相互印证了项目名称、版本、Rust和MIT信息;三个脚本夹具只显示针对路由器漏洞的HTTP请求,不能验证核心分析能力(cross_source_corroboration 1)。README有时以确定语气陈述功能与安全结果,却未在所给材料中区分已证实实现和产品声明(fact_inference_separation 1)。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 配置API key会启用联网分析;不要将含敏感信息的样本或密钥交给该流程,除非你已确认其数据处理方式。
- README关于恶意输入绝不影响主机的绝对安全声明,未由本次提供的源文件材料证实。
- 测试夹具包含针对路由器命令注入、路径遍历和认证绕过的请求,并可能读取设备配置或shadow文件;仅应在明确授权的隔离环境中使用。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
REA v7.0.0 — Understand & Trust: read the binary like an analyst and attribute where it came from. Pure Rust, offline, every claim tied to the addressable evidence bundle. Decompiler quality - Conditions render from the controlling cmp/test operands: if (rbx < r8). - Pre-tested loops hoist into real while (cond) instead of while (true). - cbz/cbnz render as explicit zero tests: if (r3 != 0). - Widening loads cast to their true integer type: eax = (uint16_t)*(r14). Behavioral & cross-format …在 GitHub 查看 ↗ -
发布说明摘录
REA v6.0.2 makes the CI gate pass on clippy 1.99. - Empty-collection assertions. Test assertions now use assert_eq!(… .len(), 0) / assert_ne!(… .len(), 0) instead of assert!(… .is_empty()), which the newer clippy::assert_is_empty pedantic lint rejects. No behavior change. Fixes the red CI introduced by adding the workflow in v6.0.0.在 GitHub 查看 ↗ -
发布说明摘录
REA v6.0.0 makes every finding addressable, reproducible, and re-verifiable — offline, with nothing installed. Highlights - Evidence bundle. Every one-shot writes re-<name>.evidence.json: a versioned, canonical bundle with target identity, coverage, explicit unknowns, and one item per finding — each with a content-addressed ID (ev_<hex>, SHA-256 of kind|subject|detail|address) and a confidence level. - rea evidence <file> writes the bundle on demand. …在 GitHub 查看 ↗
常见问题
不提供 API 密钥时还能分析文件吗?
报告写到哪里,包含什么格式?
REA 支持哪些系统?
它能在 Claude Code 中使用吗?
rea serve 启动 MCP 服务,并按 README 所示通过 claude mcp add rea rea serve 添加。