REA 逆向工程 MCP 服务完整指南一条命令把 AI Agent 接入二进制与 JS 逆向【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea在别人的产品里看到一个想要的功能却没有源码怎么调查它REAReverse Engineer Anything是一个横跨二进制、应用与运行时行为的逆向工程 MCP 服务——MCP 是 AI Agent 调用本地工具的标准协议。它把你的 Agent 接到四类检查工具链上原生二进制桥接 Hopper / Ghidra / IDA、JavaScript 与 Electron 应用的静态分析、.NET 程序集检查、以及网站/浏览器观察。你不需要源码它带你从应用行为一路查到原生二进制并且每条结论都附证据。没有源码怎么查别人产品的行为先把两条贯穿全篇的约束摆清楚。第一分析全程在本地跑REA 不上传你的应用你的 Agent 模型提供商另有自己的数据政策这部分归它管。第二每个结论都带上证据与限制说明findings with evidence and limitations——你拿到的是它怎么工作 依据是什么 哪里还不确定而不是一句没有出处的断言。这两种约束决定了 REA 的用法分两条路Agent 通过 MCP 调它你在终端通过 CLI 直接调它而两者跑的是同一套应用工作流和证据契约。对新手来说这意味着你既可以让 Agent 替你做逆向调查也可以自己写脚本做可复现的分析。能逆向什么目标、返回与前置要求先看能力面。下面按能看什么 → 返回什么 → 需要什么来拆先给你几个不需要引擎、开箱即用的目标离线 ELF 布局给 Linux x64 上你自备的 pwntools返回段、节、原始符号/重定位与静态缓解候选。EVM 字节码本地 raw/hex 载体即可返回分发选择器、字节偏移、推断参数与可变性。JavaScript / Electron只要 Node.js 与 npm返回模块、导入、source map、路由、IPC 与原生 add-on 关系静态分析不启动任何逆向引擎还返回完整 Evidence 记录。已保存网络抓包HAR 格式返回请求、响应、暴露载荷与来源位置Linux 下做原生 mitmproxy 抓包需要 mitmdump。固件Linux 上的 Binwalk / Unblob返回区域、解包结果与原生分析交接。包与资源返回文件清单、摘要、plist、Apple bundle 解剖与解出的资源。真正需要对比装什么的是下面这几类我把前置要求提前、返回内容殿后前置要求目标REA 返回Hopper、Ghidra 或 IDA原生二进制伪代码、汇编、字符串、符号、调用与引用无头 JADX 加完整 JDKLinux/macOSAndroid APKManifest 声明、类、反编译方法与引用Chrome 系浏览器网站页面结构、脚本、网络观察与请求截图静态检查.NET 程序集元数据、CIL 指令、声明的原生依赖与构建比较Linux/macOS 且需原生 PTY进程行为终端输出、交互、退出与文件系统观察、运行比较注意区分静态与运行时静态的 JavaScript 和 .NET 检查只读你给的文件、不运行应用而运行时捕获会以你的用户权限去运行或交互选中目标每条运行时指南都会写明它的副作用。一条命令完成 Agent 注册到更新的实操主线为什么一个逆向工具要同时长成 CLI 和 MCP 两种样子因为你要先让 Agent 学会调它再考虑自己写脚本。下面按注册 → 提问 → 终端调用 → 更新的顺序走一遍。第一步注册你的 Agent一条命令npx rea-agents setup交互三步选中要配置的 Agent → 审阅拟议的变更 → 批准。setup 会为你选中的 Agent 写入 REA 的 MCP 服务器注册和配套的工作流指令skill并先备份现有配置完成后重启 Agent 即可。一键支持的客户端--client取值Claude Code 用claude_codeClaude Desktop 用claude_desktopCodex 用codexCursor 用cursorGemini CLI 用gemini_cliWindsurf 用windsurfDevin 用devinOpenCode 用opencodeAntigravity 用antigravityGitHub Copilot CLI 用copilot_cliCommand Code 用commandcodeVS Code 用vscode。任何支持本地 MCP 服务器的 Agent 都能接表外的走手动注册安装指南 的 mcp-registry 一节。这里有个容易踩的版本坑npm 询问是否下载并运行 REA的批准只覆盖下载这个包本身不覆盖 REA 后续对 Agent 配置或 Hopper 的安装npx rea-agents setup可能运行的是当前项目里已装的版本想要最新就写npx rea-agentslatest setup。而且持久 MCP 注册会钉在真正执行 setup 的那个版本上之后你跑新版 setup 时才会在审阅过的 setup 事务里迁移旧注册。第二步把第一句逆向问题丢给 AgentUnderstand how search works in the Notes app, show me the evidence, and build a similar feature for my project.把 Notes 换成你的目标应用和功能就行。这一步会发生的事是Agent 经 MCP 调 REA 检查目标、追踪相关代码 → REA 返回带证据的发现 → Agent 据此追问、解释行为或写一个实现并测试。这就是 REA 的典型回路。第三步终端里直接调用 CLI检查一个已解包的 JavaScript/Electron 应用目录或 ASARnpx -y rea-agentslatest analyze-javascript-application /absolute/path/to/app --json静态 JS 分析不需要任何逆向引擎返回的是一份完整 Evidence 记录模块、导入关系、Electron 边界及证据Windows 上把路径换成D:/apps/example这类写法。日常用想装rea命令就npm install --global rea-agents rea --help装完rea指向同一套工作流--help列出全部子命令。原生二进制分析要先选定 providerprovider 就是你让 REA 去驱动的那个引擎比如 Hopper / Ghidra / IDA再跑命令rea analyze /absolute/path/to/program --provider ghidra --json rea search /absolute/path/to/program search --provider ghidra --json rea function /absolute/path/to/program main --provider ghidra --json rea decompile /absolute/path/to/program 0x1000 --provider ghidra --json rea xrefs /absolute/path/to/program 0x1000 --provider ghidra --json rea trace /absolute/path/to/program search --provider ghidra --jsonanalyze和inspect共用原生概览工作流function返回函数档案dossierdecompile返回伪代码只看汇编指令用rea instructionsmacOS 的.app包可以直接当目标。引擎怎么选先rea providers --json和rea capabilities --json列出可用引擎与能力。自动选择时 REA 只用那个唯一支持目标的 provider有多个候选就必须显式传--provider。想设常设偏好用环境变量REA_ANALYSIS_PROVIDER显式--provider又能盖过它MCP 里则给open_binary传provider_id。选中的 provider 会绑定整个会话直到你显式切换或关闭。选错也不慌ambiguous错误能从details.candidate_ids里挑provider_unavailable就rea doctor --provider ID --json去诊断那个引擎。第四步更新 REA 并保持注册新鲜rea update更新完按提示重跑 setup刷新 Agent 注册与 skillnpx用户改用npx rea-agentslatest setup审阅变更并重启 Agent。任何一次性 CLI 命令统一走npx rea-agentslatest command。设计背后的取舍同源、证据、事务与快照先交代技术形态npm 包叫rea-agents同时挂出rea和rea-agents两个可执行入口都指向 scripts/rea.mjs运行时要 Node.js^22.19.0 || ^24.11.0 || 26.0.0MIT 协议。仓库根目录的 server.json 是标准 MCP 服务器描述标识io.github.morluto/rea走 npm 注册表分发传输用stdio启动参数是mcp——这就是 Agent 注册完 REA 后拉起它的方式。为什么 CLI 和 MCP 长在一个契约上scripts/rea.mjs 是所有rea/rea-agents调用的唯一入口它先做路由再 import 任何业务代码参数是mcp或--mcp时加载dist/main.js由它独占 stdio 工具目录MCP 模式参数是mcp doctor时加载dist/mcpDoctor.js去诊断注册其余走dist/cli.js加流式 JSON 输出模块。分发前它还会确认编译产物在不在缺了直接告诉你在仓库内npm ci npm run build:cached或重装已发布的包。CLI 这条路上输出先过validateCliOutputArguments校验、再被sanitizeCliOutput净化--json的结果走独立的流式 JSON 通道。所以你在终端拿到的 JSON 和 MCP 工具返回的结果出自同一套契约不会出现 Agent 看到的和你脚本看到的对不上。这个同源还落在共享的应用层上src/application 的Setup.ts、SetupPlan.ts、DirectAnalysis.ts被 CLI 和 MCP 两侧复用src/contracts 集中定义工具输入输出契约含errorSchemas.ts错误契约对应 docs/error-contract.schema.json。为什么每个结论都要带证据和限制证据模型落在 src/domain/evidence.ts 及evidenceBundle.ts、evidenceCompletionLedger.ts里。每条 Evidence 记录都保留工件标识、来源位置、观察、推断和未决发现CLI 给了evidence-import校验已有 bundle、evidence-export导出规范形式还能比较两个 bundle。这么设计的用意是任何结论都得带上证据和它的限制你才能判断它站不站得住而不是一句没有出处的话。为什么改配置要走备份—校验—回滚src/application/SetupClients.ts 把配置改动当成一笔保守事务四种失败各有独立诊断配置路径不安全比如符号链接没解析到当前用户拥有的普通文件、备份失败此时明确未做任何修改、写入失败、写后校验失败提示你修复配置或恢复.rea.backup再跑 setup。每个客户端配置以configured_client:name上报进度任何一步失败都把完整原因端给你而不是留下一个半成品的注册。为什么参数全对就复用快照快照解决重复劳动目标字节、操作、参数、provider 和设置完全一致时复用同一结果文件本地保存、权限仅属主可读CLI 的缓存命中发生在启动 provider 进程之前。MCP 侧open_binary接受snapshot_path原子导入快照close_binary可带snapshot_path加overwrite: true在释放 provider 资源前落盘。省下的是一次昂贵的 provider 冷启动。边界与代价版本、依赖与安全红线运行时的支持范围是硬边界Node.js 只认 22.x22.19、24.x24.11和 26 及以上23、25 和一切预发布版本都不支持。REA 用的是跟运行时配套的 npm而且从不替你升级 Node.js、npm 或 Homebrew。再次强调安全红线分析在本地进行REA 不上传你的应用你的 Agent 模型提供商有它自己的数据政策。静态的 JavaScript 和 .NET 检查只读你给的文件、不运行应用运行时捕获则会以你的用户权限去【免费下载链接】reaReverse engineer anything with agents, from app behavior down to native binaries.项目地址: https://gitcode.com/GitHub_Trending/rea2/rea创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考