{"id":"a2c22d73-ebba-494e-8b1e-88260dd3e866","slug":"rea-ui","kind":"mcp","name":"rea-ui","summary":"Graphical front-end for the REA reverse-engineering CLI (morluto/rea). Windows portable build, 153 schema-generated commands.","owner":"wyfirstname","repoUrl":"https://github.com/wyfirstname/rea-ui","license":"MIT","licenseTier":"permissive","trust":"community","stars":2,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-10-15T16:19:47.000Z","addedAt":"2026-10-21T09:51:07.468Z","logoUrl":"https://avatars.githubusercontent.com/u/13019601?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["design-media"],"tags":["ai-agents","cli","developer-tools","dotnet","electron","ghidra","reverse-engineering","static-analysis"],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T00:00:19.573Z","sample":false,"url":"https://conduits.dev/tools/rea-ui","language":"JavaScript","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# REA UI\r\n\r\nREA (Reverse Engineer Anything) 的图形界面封装。**解压即用,不需要装 Node。**\r\n\r\nREA 是 [morluto/rea](https://github.com/morluto/rea) —— 一个 20 万星的开源项目,\r\n让 AI Agent 逆向分析一切,从应用行为一路深入到原生二进制。\r\n本项目给它做了一套 Web 界面,并打包成 Windows 免安装绿色版。\r\n\r\n**153 个命令的表单全部自动生成**,不是手工维护的 —— 原理见下文「工作原理」。\r\n\r\n---\r\n\r\n## 下载\r\n\r\n绿色包是约 62 MB 的免安装 zip。**用手机扫码阅读公众号文章,文末即是下载地址:**\r\n\r\n<table>\r\n<tr>\r\n<td align=\"center\"><img src=\"assets/qrcode-green-package.png\" width=\"260\" alt=\"扫码获取绿色安装包\"><br><b>扫码获取绿色安装包</b></td>\r\n</tr>\r\n</table>\r\n\r\n---\r\n\r\n## 界面\r\n\r\n### 命令面板\r\n\r\n左侧 153 个命令按目标类型分组,可搜索。\r\n\r\n![命令面板](docs/01-overview.png)\r\n\r\n### 表单自动生成\r\n\r\n选中 `analyze-javascript-application` 后自动渲染出参数、选项、默认值与说明,\r\n底部实时显示将要执行的命令行:\r\n\r\n![Schema 驱动的表单](docs/02-form-generated.png)\r\n\r\n### 真实运行\r\n\r\n对 Electron 目标执行分析,17 个阶段进度流式返回,结果含 `evidence_id` 与 `sha256` 摘要:\r\n\r\n![运行结果](docs/05-result.png)\r\n\r\n### 环境与能力\r\n\r\n逐个列出 provider 的可用状态和不可用原因 —— 缺引擎时直接告诉你怎么修,\r\n而不是只丢一个退出码:\r\n\r\n![环境与能力](docs/04-environment.png)\r\n\r\n### 深色主题\r\n\r\n界面跟随系统主题自动切换:\r\n\r\n![深色主题](docs/03-dark.png)\r\n\r\n---\r\n\r\n## 工作原理\r\n\r\nREA 的 CLI 自带 introspection,这是本项目能覆盖全部命令的关键:\r\n\r\n| 命令 | 作用 |\r\n|---|---|\r\n| `rea <命令> --schema --format json` | 该命令的完整 JSON Schema(参数、类型、枚举、范围、说明) |\r\n| `rea --llms` | 全部命令清单与描述 |\r\n| `rea capabilities --json` | provider 可用性、缺失原因、副作用 |\r\n\r\n`tools/build-catalog.mjs` 直接驱动这些命令生成 `public/catalog.json`(153 条,约 95 秒),\r\n界面再从 schema 渲染表单。**没有任何一个命令是硬编码的** —— REA 升级后运行\r\n「刷新命令列表.bat」即可同步。\r\n\r\n后端把每次执行作为独立子进程,进度通过 SSE 流式转发,长分析不卡界面。\r\n\r\n---\r\n\r\n## 安装\r\n\r\n### 步骤\r\n\r\n1. 下载 `REA-UI-green.zip`(获取方式见上文「下载」)并解压到任意目录(路径含中文或空格也可以)\r\n2. 双击 **`启动 REA UI.bat`**\r\n3. 浏览器自动打开 `http://127.0.0.1:7823`\r\n\r\n端口被占用时脚本会自动顺延(7823→7853)。**关闭命令行窗口即停止服务。**\r\n\r\n启动后会显示引擎状态:\r\n\r\n```\r\n  REA UI - Reverse Engineer Anything, graphical front-end\r\n  ---------------------------------------------------\r\n  URL: http://127.0.0.1:7823\r\n  Engine: Ghidra D:\\rea\\ghidra  |  JDK D:\\rea\\jdk\r\n  Close this window to stop the server.\r\n```\r\n\r\n### 绿色包已包含什么\r\n\r\n| 内容 | 说明 |\r\n|---|---|\r\n| Node 24.22.0 | `runtime/node.exe`,无需系统预装 |\r\n| rea-agents 6.5.0 | `app/node_modules/`,全部 153 个命令 |\r\n| 界面 | `public/`,含自动生成的 catalog.json |\r\n| 后端 | `server.mjs` |\r\n\r\n**绿色包不含逆向引擎。** 见下节。\r\n\r\n---\r\n\r\n## 引擎:什么能用什么不能用\r\n\r\nREA 本身不做逆向,它接入你已有的逆向工具。\r\n\r\n| 目标类型 | 需要什么 | 现在能用吗 |\r\n|---|---|---|\r\n| JavaScript / Electron | 无 | ✅ 直接可用 |\r\n| .NET 程序集 | 无 | ✅ 直接可用 |\r\n| SQLite 数据库 | 无 | ✅ 直接可用 |\r\n| Go / Rust 二进制 | 无(内置静态分析) | ✅ 直接可用 |\r\n| 包与资源清单 | 无 | ✅ 直接可用 |\r\n| **原生二进制(PE/ELF/Mach-O)** | Ghidra + JDK 21 | ⚠️ 见下 |\r\n| Android APK | JADX + JDK | ❌ |\r\n| 网站观察 | Chrome 系浏览器 | ❌ |\r\n| Android 设备 | adb | ❌ |\r\n\r\n### 原生分析需要装 Ghidra 12.1.x + JDK 21\r\n\r\n1. 下载 Ghidra 12.1.4 并解压(免安装 zip 即可)\r\n2. 安装 JDK 21(需含 `javac`,即完整 JDK,不是 JRE)\r\n3. 把目标放成 **`ghidra_12.1.4_PUBLIC` 这样的目录名**\r\n\r\n启动脚本会在这些位置自动查找:\r\n\r\n```\r\n%GHIDRA_HOME%\r\nD:\\rea\\ghidra          C:\\ghidra          C:\\tools\\ghidra\r\nD:\\ghidra              D:\\tools\\ghidra\r\n%USERPROFILE%\\ghidra   %ProgramFiles%\\ghidra\r\n```\r\n\r\n放在别处就手动设一次:\r\n\r\n```powershell\r\n[Environment]::SetEnvironmentVariable('GHIDRA_INSTALL_DIR','C:\\your\\ghidra_12.1.4_PUBLIC','User')\r\n```\r\n\r\n### 关于 JAVA_HOME 的坑\r\n\r\n脚本会**校验继承来的 `JAVA_HOME` 的主版本号**,不是 21 或 25 就自动换成探测到的 JDK。\r\n\r\n这是必要的 —— 例如本机系统环境变量是 `JAVA_HOME=D:\\java8`,而 REA 要求 JDK 21+,若直接沿用会导致所有原生分析失败。脚本的输出会明确告诉你最终用了哪个:\r\n\r\n```\r\nEngine: Ghidra D:\\rea\\ghidra  |  JDK D:\\rea\\jdk\r\n```\r\n\r\n### Hopper 和 IDA 在 Windows 上用不了\r\n\r\n- Hopper:REA 明确返回 `unsupported_host`,不支持 Windows\r\n- IDA:需要商业版和 Hex-Rays,还要配 `REA_IDA_MCP_CONFIG`\r\n\r\n**Windows 上唯一可行的引擎是 Ghidra。**\r\n\r\n### 验证安装\r\n\r\n打开界面左侧的「**环境**」页,能看到每个 provider 的可用状态;或命令行执行:\r\n\r\n```\r\nruntime\\node.exe app\\node_modules\\rea-agents\\scripts\\rea.mjs doctor --provider ghidra\r\n```\r\n\r\n`healthy: true` 就是就绪。\r\n\r\n---\r\n\r\n## 界面使用\r\n\r\n界面共三个页签,顶部主界面截图已展示命令面板与环境页,下面补充对话式说明。\r\n\r\n### 命令面板\r\n\r\n左侧是**全部 153 个命令**,按目标类型分组,可搜索。\r\n\r\n1. 选命令 → 表单**自动生成**(由命令自身的 JSON Schema 驱动,不是手写的)\r\n2. 填参数,底部实时显示将要执行的命令行,可直接复制到命令行用\r\n3. 点「运行」或按 `Ctrl+Enter`\r\n4. 运行中显示进度流;结束后可切「结果 / 证据链 / 原始输出」三个视图\r\n\r\n「结果」视图会把大数组折叠,「证据链」抽取出 evidence、provenance、sha256 等字段。\r\n\r\n**缺引擎时会看到醒目提示**,列出每个引擎缺什么、怎么修,而不是只给一个退出码。\r\n\r\n### 对话式\r\n\r\n用自然语言描述目标,助手会挑选并运行 REA 命令。\r\n\r\n点「模型设置」填入 OpenAI 兼容的 Base URL / API Key / 模型名。配置只存在本机浏览器 localStorage,不经过第三方。\r\n\r\n> 这一栏需要你自己的 API Key 才能用,我无法替你验证。\r\n\r\n### 环境\r\n\r\n显示本机实际可用能力,逐个列出 provider 的 operations 及不可用原因。\r\n\r\n---\r\n\r\n## 批量反编译(可选)\r\n\r\n反编译整个二进制的所有函数,**一次 Ghidra 会话完成**:\r\n\r\n把目标文件**拖到 `批量反编译.bat` 上**,或运行后粘贴路径。\r\n\r\n输出在 `<包目录>\\analysis\\<文件名>\\<目标名>\\`:\r\n\r\n| 目录 | 内容 |\r\n|---|---|\r\n| `local/` | 本文件真正定义的函数 |\r\n| `imported/` | 导入符号(通常业务逻辑在这里) |\r\n\r\n每个函数两个文件:`.c` 是反编译伪代码,`.asm` 是反汇编指令。\r\n\r\n最后重新生成索引:\r\n\r\n```\r\nruntime\\node.exe tools\\build-index.mjs --dir \"<输出目录>\\local\"\r\nruntime\\node.exe tools\\build-index.mjs --dir \"<输出目录>\\imported\"\r\n```\r\n\r\n每个目录会得到 `README.md`(带链接的表格)和 `index.json`。\r\n\r\n### 耗时参考\r\n\r\n以 `libblkares.so.1`(4 MB,1038 个函数)为例:\r\n\r\n| 阶段 | 耗时 |\r\n|---|---|\r\n| 本地层 54 个 | 约 1 分钟 |\r\n| 导入层 984 个 | 约 11 分钟 |\r\n\r\n**为什么不用界面逐个跑:** REA 每次只回答一个问题,每个问题都要重新导入目标,\r\n8 个函数就要 20 分钟,1038 个得跑十几个小时。所以批量模式改成在 Ghidra 内部\r\n遍历 `FunctionManager`,一个进程内全部反编译完。\r\n\r\n---\r\n\r\n## 目录结构\r\n\r\n```\r\nREA-UI-green/\r\n├── 启动 REA UI.bat          一键启动\r\n├── 批量反编译.bat           全量反编译\r\n├── 刷新命令列表.bat         REA 升级后重抓命令与表单\r\n├── server.mjs               本地后端\r\n├── public/                  界面 + catalog.json\r\n├── runtime/node.exe         内置 Node\r\n├── app/node_modules/        rea-agents 及依赖\r\n├── tools/\r\n│   ├── build-catalog.mjs    抓取 153 个命令的 schema\r\n│   ├── build-index.mjs      生成反编译索引\r\n│   ├── decompile-to-files.mjs  单函数反编译并落盘\r\n│   ├── decompile-all.mjs    单会话批量反编译\r\n│   └── ghidra/              Ghidra headless 脚本(.java + .class)\r\n└── README.md\r\n```\r\n\r\n---\r\n\r\n## 常见问题\r\n\r\n**启动报端口占用**\r\n脚本会自动顺延。若仍失败,说明 7823-7853 都被占了,手动设 `REA_UI_PORT`。\r\n\r\n**界面打不开**\r\n确认命令行窗口还在(关掉即停服务),然后访问它打印的 URL。\r\n\r\n**命令报 `provider_unavailable`**\r\n引擎没装或没被识别。看启动窗口的 Engine 行,或看界面「环境」页的原因说明。\r\n\r\n**原生分析报 java 相关错误**\r\n`JAVA_HOME` 指向了旧 JDK。启动脚本会自动纠正,但如果你在 PowerShell 里手动跑,\r\n需要自己设对。\r\n\r\n**反编译结果里类型是 `undefined`**\r\nPDB 没被加载。Ghidra 能读取**目标文件同目录下的 `.pdb`**,\r\n加载后字段名会恢复(如 `this->mpVar` 取代 `*(int *)(this+4)`)。\r\n\r\n**想清空重来**\r\n删掉整个目录即可,除了 `app/node_modules` 里的 rea-agents 无法免安装分发外,\r\n没有别处写数据(Ghidra 用的是临时工程,用完即删)。\r\n\r\n---\r\n\r\n## 支持\r\n\r\n如果你觉得这个工具省了时间,欢迎赞助一杯咖啡 ☕\r\n\r\n<table>\r\n<tr>\r\n<td align=\"center\"><img src=\"assets/juanzeng.png\" width=\"220\" alt=\"微信支付赞赏\"><br><b>微信支付</b></td>\r\n<td align=\"center\"><img src=\"assets/公众号.jpg\" width=\"220\" alt=\"微信公众号\"><br><b>公众号</b></td>\r\n</tr>\r\n<tr>\r\n<td align=\"center\">扫码赞助</td>\r\n<td align=\"center\">技术动态与更新</td>\r\n</tr>\r\n</table>\r\n\r\n---\r\n\r\n## 许可\r\n\r\n本工具是 REA 的**第三方界面封装**。REA 由 morluto 维护,MIT 许可。\r\n\r\n请仅在你拥有或已获授权分析的软件上使用。第三方组件各自保留其许可,\r\n商业工具(IDA / Hopper / JEB)需自行获得合法授权。\r\n\r\n本项目自身的源码以 MIT 许可发布(见 [LICENSE](LICENSE))。\r\n第三方声明见 [NOTICE](NOTICE)。\r\n\r\n"}