SuperAPI AI 工具集

reverse-engineer-anything

安全与审计

查看项目

更新于 10-22 12:28

技能介绍

REA(Reverse Engineer Anything)是一个用于逆向工程已发布软件制品和运行时目标的技能与工具集合。它通过 MCP(Model Context Protocol)服务器或 CLI 向 AI 代理提供一系列分析工具,帮助调查二进制、软件包、JavaScript/Electron 应用、固件、浏览器运行时等目标。

用途与适用场景: REA 主要用于当某个结论依赖于已发布的二进制或软件包、反编译结果、被动的应用运行时证据,或者需要与现有源代码无法确立的行为进行比较时。对于完整源代码仓库的普通分析,应使用常规仓库工具,不必运行 REA 的就绪检查或提供程序命令。REA 覆盖的目标类型包括:原生二进制、托管程序集、归档/软件包(ZIP/APK/IPA/MSIX/AppX/DMG)、ASAR 或提取的 JavaScript/Electron 树、Android APK、固件镜像、.NET NativeAOT PE/ELF、用户拥有的浏览器页面、Electron 运行时、HAR/mitmproxy 捕获、EVM 字节码、Linux ELF 文件、Linux x86-64 ELF core 等。

主要能力: REA 提供多种工具,根据用户提供的目标类型选择第一个工具进行路由。例如:

  • open_binary:用于主动目标原生或归档工作流,绑定归档/软件包或原生目标。
  • analyze_javascript_application:用于 ASAR 或提取的 JavaScript/Electron 树。
  • inspect_artifact:用于归档/软件包成员清单,提供图和发现。
  • inspect_android_package:用于 Android APK 代码、类、方法或传入引用。
  • inspect_managed_artifact:用于托管 PE/CLI 程序集。
  • inspect_firmware_regions 和 extract_firmware:用于固件镜像区域检查和提取(需调用者提供 Binwalk/Unblob)。
  • 原生 Ghidra 分析:用于 .NET NativeAOT PE/ELF。
  • list_browser_targets:用于用户拥有的已打开浏览器页面。
  • inspect_web_network_capture:用于保留的 HAR/原生 mitmproxy 捕获。
  • list_electron_targets:用于用户拥有的已打开 Electron 运行时。
  • inspect_evm_interface:用于显式本地 EVM 字节码载体。
  • inspect_binary_layout:用于显式 Linux ELF 文件的离线布局、符号、重定位或静态缓解证据。
  • inspect_recorded_crash:用于提供的 Linux x86-64 ELF core。
  • 对于原生可执行文件、库或分析数据库:open_binary 后直接使用聚焦分析工具,可用时调用 binary_overview 获取元数据或清单上下文。

对于现有 IDA MCP 配置,使用 open_binary 并传入原始输入二进制和 provider_id: "ida",不要传递 .idb 或 .i64 数据库。打开后可直接使用 analyze_function、pseudocode 或函数/字符串搜索。

使用方式: 安装该技能只提供指令,不会注册 REA MCP 服务器、安装分析引擎或向已运行的代理添加工具。因此需要按需连接。如果 REA 工具可用且注册状态未过期,可直接进行目标分析,不要每次调查前都运行诊断或设置。使用已连接服务器的实际工具列表和输入模式;从仓库主分支安装的技能可能描述较旧 npm 版本中不存在的功能。当服务器未声明保留引用时,保持完整的内联 Evidence。

当工具缺失或注册过期时: 首先在不更改文件的情况下进行诊断。对于 Codex,运行 npx -y rea-agents@latest doctor --client codex --json。替换为当前支持的客户端 ID:claude_code、claude_desktop、codex、cursor、gemini_cli、windsurf、devin、opencode、antigravity、copilot_cli、commandcode、vscode、grok_build、omp 或 grok_bot。grok_bot 没有本地文件注册:doctor 报告 Grok Bot 聊天步骤,设置不会写入 mcp.json。如果客户端未知,使用 doctor --json 并检查其注册结果,再选择设置范围。

区分原因:缺失、格式错误或过期的注册需要限定范围的配置修复。已对齐的注册但在活动会话中没有工具,需要重启/重新连接;doctor 无法证明当前代理已连接。缺少提供程序仅影响需要该提供程序的任务:静态 JavaScript 检查不需要 Hopper 或 Ghidra,Android 检查有单独的自带 JADX/Java 先决条件。

对于配置修复,准备只读计划:npx -y rea-agents@latest setup --client codex --dry-run --json。使用当前客户端 ID,显示其确切建议路径、备份和更改,并在 setup 写入配置或安装 Hopper 之前获得批准。Setup 通常还会安装匹配的捆绑技能;在审查计划中包含该替换项。批准后,使用相同范围应用:npx -y rea-agents@latest setup --client codex --yes。仅当需要该单独安装并明确批准时,添加 --install-hopper。

重启/重新连接受影响的代理。验证 REA 工具确实出现在会话中,然后恢复原始调查。如果它们仍然缺失,检查客户端的 MCP 启动错误,而不是重复设置。

REA 设置从不安装或升级 Node.js、npm、Homebrew、Java、Ghidra、IDA、JADX、Binwalk 或 Unblob。使用现有先决条件;不要安装无关软件来修复 MCP 注册。对于不支持的客户端,使用手动 stdio 注册并固定 rea-agents 包版本,或通过 CLI 继续。

CLI 回退示例(针对操作员提供的 JavaScript 树或 ASAR): npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

无需 MCP 注册或原生引擎。像对待 MCP 结果一样仔细阅读返回的 Evidence、图、限制和未知项;CLI 直接返回 Evidence 记录。此回退不表明 MCP 已配置。原生 CLI 任务仍需要其选定的引擎。

工作流程: REA 强调“总结优先”的工作方式。从默认结果开始,使用其内联 Evidence 和图上下文。不要重复相同的工具调用。仅当返回结果留下特定未回答问题时才进行聚焦跟进。

如果 MCP 报告 resource_constraint 且 details.resource: "transport",调用 inspect_analysis_view 并使用其报告的同一会话 Evidence 引用获取摘要、一个部分/模块或稳定页面。一旦已知种子,使用 trace_application_feature,或调用 export_evidence_bundle 将完整会话写入选定路径。分析在账本中保持完整;避免仅仅为了请求相同超大响应而重复分析。完整的 CLI JSON 输出也可流式传输,无需单个 MCP 帧。

每个结论必须区分观察、推断和未知。引用 Evidence ID,保留局限性和不完整覆盖,并且绝不暗示静态分析观察到了执行。运行时请求执行声明的目标及生命周期;不要将这些字段之外的目标或操作扩大。

在用户请求的调查范围内,直接调用可用的分析工具。REA 不需要权限授予或每次调用批准标志。遵循声明的请求范围和主机实际访问要求。

对于跨多个功能或子系统的请求,使用分阶段工作流:将请求转化为问题和每个答案所需证据的清单;从对话和工作区解析目标身份和约束,避免再次询问;检查组当前 REA 会话、制品身份、保存的分析数据库、书签和先前证据,重用匹配状态;从最小的有用概览或清单开始,从入口点跟踪每个问题通过相关数据和状态变化到结果;在代码同时检查相关打包资源和配置;使用格式感知的清单和解析器,不要仅从文件名、字符串或布局推断行为;用所需证据类型佐证结论;将工作分解为独立问题,并行处理时分配不同范围并让工作器指向现有证据,要求返回来源、结论和未解决缺口;维护简洁的发现账本,链接每个结论到 Evidence ID、置信度/证据类型、搜索边界和剩余未知项;完成前重新审视原始清单,标记每个问题为已回答、部分回答或未解决。

限制与注意事项: REA 设置不安装或升级 Node.js、npm、Homebrew、Java、Ghidra、IDA、JADX、Binwalk 或 Unblob 等依赖。静态分析不能声称观察到了执行。运行时请求受限于声明的目标和生命周期。不同目标类型需要不同的提供程序或先决条件,例如 Android 检查需要自带的 JADX/Java。对于不支持的客户端,需要使用手动 stdio 注册或 CLI。具体收费、价格、平台支持范围等事实暂未提供。