REA是什麼
REA(Reverse Engineer Anything)是開源的逆向分析工具,通過 MCP 協議把 Claude Code、Codex、Cursor 等 AI 編程 Agent 與 Ghidra、Hopper、IDA 等逆向工具連接起來。REA讓 Agent 無需源碼可分析軟件,從原生二進制、Electron/JS 應用、APK、.NET 程序集到網站,追蹤功能實現邏輯並生成帶證據鏈的分析結果,重建相似功能。

REA的主要功能
-
原生二進制分析:解析 Mach-O、ELF、PE 等可執行文件,返回僞代碼、彙編、字符串、符號和調用關係。
-
JavaScript/Electron 應用分析:靜態梳理模塊、入口、IPC 通道和 source map,無需運行應用。
-
網站觀察:通過本地 Chrome DevTools 端點被動觀察瀏覽器行爲、頁面腳本和網絡請求。
-
.NET 程序集檢查:無需執行程序即可查看元數據、CIL 指令和原生代碼邊界。
-
Android 應用逆向:藉助 JADX 反編譯 APK,查看清單聲明、類和方法。
-
固件與包文件分析:用 Binwalk 提取固件區域,或直接生成 ZIP/APK/ASAR 等歸檔的文件清單。
-
版本差異對比:比較應用兩個版本的二進制差異,生成變更報告。
-
網絡抓包分析:解析 HAR 文件或 mitmproxy 捕獲,關聯請求與源碼位置。
-
代碼重建輔助:Agent 基於分析結果追蹤功能實現線索,爲項目編寫相似功能並驗證。

微信關注回覆“開源”,加入AI開源項目交流羣
如何使用REA
- 環境準備:安裝 Node.js(≥22.19 版本)和 npm,確保已安裝 Claude Code、Codex、Cursor 等任一支持的 AI 編程 Agent。
- 一鍵安裝:在終端運行
npx rea-agents@latest setup,選擇要接入的 Agent 並審覈配置變更。 - 審批配置:確認 setup 提出的 MCP server 註冊和 workflow 指令修改(會自動備份原配置),然後重啓你的 Agent。
- 準備逆向引擎(可選):深度分析原生二進制需已有 Hopper、Ghidra 或 IDA 安裝,純 JS/Electron 分析不需要。
- 用自然語言提問:向 Agent 描述目標,例如”分析 Notes 應用的搜索功能如何工作,展示證據,併爲我的項目實現類似功能”。
- Agent 自動調查:Agent 通過 MCP 調用 REA 在本地分析目標,獲取帶證據鏈的僞代碼、調用鏈等結果。
REA的核心優勢
- 零逆向經驗門檻:無需學習反彙編和逆向技術,用自然語言向 AI Agent 提問可分析軟件。
- 打通主流 Agent 生態:同時支持 Claude Code、Codex、Cursor、Gemini CLI、Windsurf 等幾乎所有主流 AI 編程助手。
- 複用成熟逆向工具:底層調度 Ghidra、Hopper、IDA 等專業工具,站在幾十年逆向工程積累之上。
- 覆蓋目標極廣:從原生二進制、Electron/JS 應用、APK、.NET 到網站、固件、WASM,幾乎無死角。
- 證據鏈驅動:每個結論附帶僞代碼、彙編、調用關係等證據,結果可驗證。
- 本地分析保障隱私:全部分析在本地運行,目標軟件不會被上傳到雲端。
- 端到端自動化:從分析、追蹤調用鏈到生成可運行的相似實現,一條 Agent 工作流串到底。
REA的項目地址
- 項目官網:https://rea.tools/
- GitHub倉庫:https://github.com/morluto/rea
REA可以分析什麼
| 目標類型 | REA 返回內容 | 要求和指南 |
|---|---|---|
| 原生二進制 | 僞代碼、彙編、字符串、符號、調用和引用 | Hopper、Ghidra 或 IDA;原生分析指南 |
| 離線 ELF 佈局 | 節區、段、原始符號/重定位和靜態緩解候選 | Linux x64 上自備 pwntools;二進制診斷指南 |
| Go 二進制 | 內嵌編譯器版本、模塊、替換和構建設置 | 內置靜態 ELF/PE/thin Mach-O 檢查;無需安裝 Go |
| WASM 文件 | 校驗、節區、精確的導入/導出 WAT 形式和解碼後的 WAT | 自備 WABT 1.0.42;`inspect_wasm_artifact` |
| EVM 字節碼 | 調度選擇器、字節偏移、推斷的參數和可變性 | Linux x64 本地原始/十六進制載體;離線 EVM 指南 |
| Linux 崩潰記錄 | 原始備註、每個記錄線程的寄存器/信號和可選映射候選 | Linux x64 自備 pwntools;可選 GDB/pwndbg;崩潰記錄指南 |
| JavaScript / Electron | 模塊、導入、source map、路由、IPC 和原生插件關係 | Node.js 和 npm;應用分析指南 |
| 網站 | 頁面結構、腳本、網絡觀察和請求的截圖 | Chrome 系瀏覽器;瀏覽器分析指南 |
| 保存的網絡抓包 | 請求、響應、暴露的負載和源碼位置 | HAR;Linux 上原生 mitmproxy 捕獲用 mitmdump;抓包指南 |
| .NET 程序集 | 元數據、CIL 指令、聲明的原生依賴和構建對比 | 無(純靜態);託管代碼指南 |
| Android APK | 清單聲明、類、反編譯方法和引用 | Linux/macOS/Windows x64 上的無頭 JADX 和完整 JDK;Android 指南 |
| Android 設備 | 設備、包、進程、日誌、轉儲、屏幕截圖和 APK/文件傳輸 | 自備 adb(模擬器或真機);ADB 指南 |
| JEB 工程 | 引擎支持的分析單元、工件摘要和類型/方法僞代碼 | 由調用方啓動的 JEB 客戶端提供 MCP 服務,通過 `REA_JEB_MCP_URL` 選擇;JEB 指南 |
| Android 資源 | 解碼後的清單、字符串表、語言區域和版本信息 | 自備 Apktool 啓動器;資源指南 |
| 固件 | 區域、提取結果和原生分析交接 | Linux 上的 Binwalk / Unblob;固件指南 |
| 安裝包和資源 | 文件清單、摘要、plist、Apple bundle 結構和提取的資源 | 工件與 JavaScript 指南、Apple 應用指南 |
| 進程行爲 | 終端輸出、交互、退出和文件系統觀察,以及多次運行對比 | Linux/macOS 且需原生 PTY;進程捕獲指南 |
REA的同類競品對比
| 對比維度 | REA | GhidraMCP |
|---|---|---|
| 定位 | 通用逆向調度層,面向”調查軟件並重建功能” | Ghidra 專用 MCP 橋,面向”深度分析二進制” |
| 底層引擎 | 多引擎調度:Ghidra / Hopper / IDA / JADX / JEB 等 | 僅綁定 Ghidra(插件 + Python/Go 橋接) |
| 分析目標範圍 | 原生二進制、Electron/JS、APK、.NET、網站、固件、WASM、EVM、網絡抓包等 15+ 類 | 僅限 Ghidra 支持的原生二進制 |
| Agent 接入 | 一鍵 setup 註冊 Claude Code、Codex、Cursor、Gemini CLI、Windsurf 等 | 理論支持任何 MCP 客戶端,但需手動配置 bridge 腳本 |
| 安裝體驗 | `npx rea-agents setup` 一條命令,自動裝 MCP server + workflow 指令 | 需裝 Ghidra 插件、跑 bridge 腳本、手改客戶端配置文件,鏈條較長 |
| 工作流深度 | 端到端:分析→追蹤調用鏈→生成相似實現→驗證 | 側重分析環節:反編譯、重命名符號、列導入導出、標註代碼 |
| 證據鏈 | 每個結論附帶僞代碼、彙編、調用關係等證據和侷限性說明 | 返回反編譯結果與符號信息,證據結構化程度較低 |
| 協議/許可 | MIT | Apache-2.0 |
REA的應用場景
-
競品功能復現:看中某個 App 的離線搜索、同步機制等功能,讓 Agent 拆解其調用鏈,在自己的項目中實現相似版本。
-
無源碼老軟件搶救:對失去源碼的老軟件、老遊戲或老庫,用 Agent 讀取僞代碼和彙編,還原算法並遷移到現代技術棧。
-
Electron/桌面應用審計:靜態梳理閉源桌面應用的模塊、路由、IPC 通信和 preload 腳本,評估安全性或理解其行爲。
-
遺留系統遷移評估:對比軟件兩個版本的二進制差異生成變更報告,或分析 .NET/原生組件的依賴邊界,輔助系統改造決策。
REA的常見問題
Q1:哪些 Agent 可以使用 REA?
A1:任何支持本地 MCP server 的 Agent 都可以。Setup 命令會自動配置受支持的 Agent,其他客戶端可通過手動註冊 MCP 使用。
Q2:我需要安裝 Hopper、Ghidra 或 IDA 嗎?
A2:深度原生二進制分析需要三者之一。靜態 JavaScript 和 .NET 檢查不需要任何原生分析引擎。Setup 可在獲得批准後自動安裝 Hopper;Ghidra 和 IDA 則使用你已有的安裝。
Q3:我需要先啓動 Hopper 嗎?
A3:不需要,REA 會在需要時自動啓動 Hopper。但在 macOS 上,首次運行可能彈出對話框要求選擇演示模式或激活許可證,需在同一個用戶會話中完成該提示,再進行首次 CLI/MCP 操作或無人值守任務。
Q4:從 skills.sh 安裝 skill 有什麼作用?
A4:該 skill 爲你的 Agent 提供調查指令。建議通過 npx rea-agents setup 同時註冊 REA 的 MCP server 並安裝配套指令,然後重啓 Agent。
Q5:REA 返回的是什麼代碼?
A5:原生分析返回僞代碼和彙編;JavaScript/Electron 分析恢復模塊及其依賴關係。你的 Agent 基於這些發現來編寫和測試實現。
Q6:REA 會上傳我的應用嗎?
A6:不會。REA 在本地分析目標,只有你的 Agent 會收到工具結果;模型提供商的數據政策由各提供商自行決定。
Q7:遇到 bug 怎麼辦?
A7:先更新,最近的版本可能已經修復了該問題。CLI 用戶運行 rea update;npx 用戶重新運行 npx rea-agents@latest setup 並重啓。如果問題依舊,提交 issue 並附上版本、目標類型、復現步驟和錯誤輸出。