
Agent之ReverseEngineerREA的简介、安装和使用方法、案例应用之详细攻略目录REA的简介1、特点REA的安装和使用方法1、安装1.1 环境要求1.2 使用引导式设置1.3 全局安装CLI1.4 仅安装智能体Skill1.5 检查安装状态1.6 更新REA2、使用方法2.1 通过智能体调查应用功能2.2 分析JavaScript或Electron应用2.4 分析原生程序2.5 选择分析提供方2.7 使用范围说明REA的案例应用案例一DX-Ball——重建声音声像计算案例二Notion——追踪Electron剪贴板桥接链路案例三TH04——恢复DOS环形子弹计算REA的简介REA是一个面向智能体的逆向工程项目目标是通过统一的MCP服务和CLI让智能体检查二进制文件、应用程序及其运行时行为。即使目标应用没有源代码智能体也可以借助REA分析功能实现路径、解释工作机制、展示相关证据并基于调查结果编写和测试相似实现。REA将智能体连接到不同类型的分析工具可以处理原生二进制文件、JavaScript与Electron应用、.NET程序集、网站、Android APK、固件、网络捕获和进程行为等对象。分析主要在本机运行返回结果不仅包含分析发现还包含支持结论的证据和相关限制。静态JavaScript和.NET检查只读取用户提供的文件不会运行目标应用运行时捕获则会以当前用户权限运行目标或与其交互。在智能体工作流中智能体通过MCP调用REA检查目标、追踪相关代码REA返回调查发现及对应证据智能体再据此继续提问、解释行为或编写实现。用户也可以直接通过终端调用相同的分析工作流。对于深入的原生程序分析REA可以连接Hopper、Ghidra或IDAJavaScript、Electron和.NET静态分析则不要求安装这些原生分析引擎。GitHub地址GitHub - morluto/rea: Reverse engineer anything with agents, from app behavior down to native binaries. · GitHub1、特点特点详细说明MCP与CLI双入口智能体可以通过MCP调用REA用户也可以在终端中使用相同的分析工作流和Evidence结果契约。本地分析REA在本机分析目标不会由REA将应用发送到托管分析服务智能体仍会接收分析工具返回的结果。证据驱动分析结果包含支持各项结论的证据和相关限制使智能体能够区分观察结果、推断和仍未解决的问题。多类型目标支持支持原生二进制文件、ELF布局、EVM字节码、Linux崩溃记录、JavaScript/Electron、网站、HAR网络捕获、.NET程序集、Android APK、Android设备、JEB项目、Android资源、固件、软件包和进程行为等对象。原生二进制分析可以返回伪代码、汇编、字符串、符号、函数调用和交叉引用深入分析可使用Hopper、Ghidra或IDA。JavaScript与Electron分析可以恢复模块、导入关系、source map、路由、IPC以及原生扩展之间的关系并支持分析解包目录或ASAR文件。Web与网络分析网站分析可以返回页面结构、脚本、网络观察结果和按请求获取的截图已保存的网络捕获可以提取请求、响应、可访问载荷和来源位置。Android分析可以检查APK清单、类、反编译方法和引用也可以通过调用方提供的adb检查设备、软件包、进程、日志、转储和截图。固件与资源检查可以借助Binwalk或Unblob检查固件区域和提取结果也能分析文件清单、摘要、plist、Apple Bundle结构和提取资源。分析会话与上下文原生分析提供方会与当前会话绑定用户可以在同一会话中继续调查目标直到显式切换或关闭目标。快照复用CLI支持将成功的分析结果保存为本地快照。当目标字节、操作、参数、提供方及设置一致时可以直接复用完全匹配的结果。引导式调查流程MCP提供功能调查、应用版本比较、重建验证、崩溃追踪、残余未知项审计和受控进程捕获设计等六类引导流程。智能体配置自动化设置流程能够注册REA MCP服务、安装匹配的工作流指引、备份已有配置并在写入前展示计划供用户检查和批准。多智能体客户端支持设置程序支持Claude Code、Claude Desktop、Codex、Cursor、Gemini CLI、Windsurf、Devin、OpenCode、Qwen Code、VS Code、Grok Build、Pi和Hermes等客户端。分析提供方选择用户可以列出可用提供方及其能力由REA自动选择唯一可用的提供方也可以通过参数或环境变量显式指定Hopper、Ghidra或其他提供方。安全的配置变更配置写入会保留无关字段和注释、创建备份、采用原子替换并验证结果取消操作或拒绝确认不会产生配置变更。REA的安装和使用方法1、安装1.1 环境要求REA需要以下运行环境Node.js 22.x最低版本为22.19Node.js 24.x最低版本为24.11或者Node.js 26及以上版本与Node.js运行时配套的npm。Node.js 23、25以及预发布版本不受支持。不同的分析目标还可能需要Hopper、Ghidra、IDA、JDK、JADX、adb、Apktool、Binwalk、Unblob、pwntools或Chrome系浏览器等额外工具。1.2 使用引导式设置安装Node.js和npm后运行npx rea-agents setup如果希望明确使用npm中的最新版本可以运行npx rea-agentslatest setup进入设置流程后选择需要配置的智能体客户端检查REA展示的配置变更计划根据需要选择是否安装或连接Hopper批准计划后由REA注册MCP服务并安装匹配的工作流指引设置完成后重新启动提示中列出的智能体。该流程会在修改之前列出智能体配置路径、工作流安装位置、已检测到的分析工具以及可能执行的软件安装命令。已有的无关配置会被保留并会创建配置备份。1.3 全局安装CLI如果需要经常在终端中使用rea命令可以全局安装npm install --global rea-agents rea --help如果只执行一次任务可以不进行全局安装直接使用npx -y rea-agentslatest command仅执行下面的命令npm install rea-agents会把可执行文件安装到当前项目的node_modules/.bin中不会使rea命令自动出现在Shell的PATH里。1.4 仅安装智能体Skill如果只希望安装REA的智能体调查指引可以执行npx skills add morluto/rea --skill reverse-engineer-anything该命令只安装智能体指引及其配套参考资料不会注册REA MCP服务也不会安装分析引擎。完整的引导式设置默认会安装与当前REA软件包匹配的Skill。1.5 检查安装状态rea doctor --client codex --json检查全部已检测配置和分析工具rea doctor --json检查Codex客户端注册rea doctor --client codex --json检查Ghidra提供方rea doctor --provider ghidra --json检查已安装的工作流指引rea doctor --skill --jsonrea doctor只读取主机依赖和智能体配置不会修改相关文件。1.6 更新REA全局安装后可以执行rea update使用npx配置智能体时可以运行npx rea-agentslatest setup检查新的设置变更并批准然后重新启动受影响的智能体。2、使用方法2.1 通过智能体调查应用功能完成MCP注册并重新启动智能体后可以直接描述待调查的应用和功能。例如仓库提供的请求形式是弄清 Notes 应用的搜索功能如何工作展示证据并为我的项目实现类似功能。实际使用时将Notes替换为目标应用并描述需要了解的具体功能。智能体会通过MCP调用REA检查目标、追踪相关代码、获取证据并根据结果解释行为或编写和测试实现。2.2 分析JavaScript或Electron应用检查已经解包的应用目录或ASAR文件npx -y rea-agentslatest \ analyze-javascript-application \ /absolute/path/to/app \ --json命令返回模块、导入关系、Electron边界及相关证据。在Windows中可以将目标路径写成D:/apps/example全局安装后也可以使用rea analyze-javascript-application /absolute/path/to/app --json对于目录和.asar文件在没有指定--provider或--snapshot时还可以使用通用命令rea analyze /absolute/path/to/app --json :chatgpt-content-reference{index11### 2.3 保存并查看大型分析结果真实应用的完整Evidence文件可能非常大。CLI文档建议先保存结果再生成摘要视图bash rea analyze-javascript-application \ /absolute/path/to/app \ --json app-evidence.json生成摘要视图输入jq -c \ {source: {kind: inline, evidence: .}, view: {kind: summary}} \ app-evidence.json app-view.json查看摘要rea inspect-analysis-view app-view.json还可以将视图改为模块分页形式并通过offset和limit选择需要检查的模块范围。2.4 分析原生程序原生分析前需要配置Hopper、Ghidra或IDA。以Ghidra为例# 获取原生目标概览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 \ --json其中function返回函数资料decompile返回伪代码。如果只需要汇编指令可以使用rea instructions。macOS的.app应用包也可以直接作为目标传入。2.5 选择分析提供方列出可用提供方和相关能力rea providers --json rea capabilities --json显式指定提供方rea analyze /absolute/path/to/program --provider hopper也可以设置长期偏好export REA_ANALYSIS_PROVIDERhopper单次命令中的--provider优先级高于环境变量。通过MCP调用open_binary时可以传入{ path: /absolute/path/to/program, provider_id: hopper } :chatgpt-content-reference{index14}### 2.6 保存并复用分析快照保存分析结果bash rea analyze /absolute/path/to/program \ --provider ghidra \ --snapshot /absolute/path/to/analysis/program.json再次执行完全相同的查询rea analyze /absolute/path/to/program \ --provider ghidra \ --snapshot /absolute/path/to/analysis/program.json当目标内容、操作、参数、提供方和设置全部匹配时REA可以从快照中复用已保存的分析结果。快照保存在本地并使用仅所有者可访问的文件权限。2.7 使用范围说明REA用于合法的逆向工程研究、分析和重建。使用者需要自行取得必要授权并遵守适用法律项目不支持非法或未经授权的使用。REA的案例应用案例一DX-Ball——重建声音声像计算案例实现内容该案例从DX-Ball的声音调用路径开始追踪定位到一个根据位置计算声音声像的辅助函数。调查过程进一步检查相关机器指令并将不完整的伪代码转换为C语言实现。重建结果通过了3,205个原始x86测试用例同时复现了编译后函数的全部63个字节。该案例展示了REA从调用关系、指令和伪代码中提取证据并据此重建底层算法实现的过程。案例二Notion——追踪Electron剪贴板桥接链路案例实现内容该案例首先定位Notion渲染进程中的剪贴板API然后沿着preload层和IPC通信路径继续追踪最终到达Electron主进程。在完整调用链路被识别后案例进一步检查富格式剪贴板数据用于说明渲染进程中的剪贴板操作如何经过preload与IPC桥接到主进程。案例三TH04——恢复DOS环形子弹计算案例实现内容该案例检查原始PC-98游戏中的16位机器指令从中恢复固定角度与瞄准角度的计算方法。完成算法恢复后案例使用C重建相关计算并将重建结果与当年编译器生成的输出进行对比用于验证恢复实现与原始程序之间的对应关系。