REA:用自主智慧體逆向一切,從應用行為直達原生二進位制
REA 是 GitHub 上的開源 MCP 伺服器,MIT 許可,透過 npx rea-agents setup 接入 Claude Code、Codex、Cursor 等智慧體。它統一呼叫 Hopper、Ghidra、IDA 分析原生二進位制,並覆蓋 Electron、.NET、APK、韌體與程序行為,所有結論附帶證據與侷限,分析在本機執行。README 以 DX-Ball、Notion、TH04 三個案例展示從指令級證據到可測試實現的完整鏈路。
在軟體世界裡,看到一個好用的功能,卻不知道它是怎麼做出來的,這是每個開發者都熟悉的遺憾。原始碼不公開、二進位制被剝離符號、Electron 應用被打包成一個 ASAR 壓縮包,傳統做法是請一位逆向工程師,花上幾天甚至幾周,在反彙編器裡一行一行地讀。GitHub 上的開源專案 REA(Reverse Engineer Anything)想改變這個流程。它的一句話定位是:一個 MCP 伺服器,把原生二進位制、應用程式和執行時行為的逆向分析能力,統一交給你的智慧體去呼叫。專案採用 MIT 許可證,透過 npm 包 rea-agents 分發,README 顯示它已經積累了六萬顆 GitHub 星標,並提供十九種語言的文件。對於一個安全研究與工程交叉領域的工具來說,這樣的關注度本身就說明了需求有多真實。
REA 的工作方式並不神秘。你執行一條命令 npx rea-agents setup,選擇自己使用的智慧體,審閱安裝程式提出的改動並批准。安裝程式會把 REA 的 MCP 伺服器註冊進去,同時安裝配套的工作流說明,並且為已有配置做備份。官方列出的支援物件包括 Claude Code、Codex、Cursor、Gemini CLI 和 Grok Build,凡是支援本地 MCP 伺服器的智慧體理論上都能接入。之後你只需要用自然語言提問,例如讓智慧體弄清楚某個應用裡的搜尋是怎麼實現的,給出證據,再為你的專案寫一個類似功能。智慧體透過 MCP 呼叫 REA 去檢查目標、追蹤相關程式碼,REA 返回的是帶證據的發現,包括程式碼、引用關係,以及仍然未知的部分。智慧體再據此追問、解釋,或者動手寫出實現並測試。同一套流程也可以在終端裡用命令列直接執行。
真正讓這個專案有分量的,是它覆蓋的目標範圍。按照 README 中的表格,REA 可以分析原生二進位制,返回虛擬碼、彙編、字串、符號和呼叫引用,底層依賴 Hopper、Ghidra 或 IDA 之一;可以分析 JavaScript 與 Electron 應用,恢復模組、匯入關係、source map、路由、IPC 以及原生外掛之間的聯絡,這一部分只需要 Node.js,不需要任何原生分析引擎;也可以檢查網站、HAR 網路抓包、.NET 程式集的後設資料與 CIL 指令、Android APK 與裝置、韌體、EVM 位元組碼、離線 ELF 佈局和 Linux 崩潰記錄,甚至還有程序行為捕獲,用來比較不同次執行的終端輸出和檔案系統變化。這意味著一個智慧體可以在同一個會話裡,從一個 Electron 應用的渲染程序一路追到主程序,再下探到某個原生外掛的彙編。過去這需要在五六個互不相通的工具之間來回切換,如今被收攏成一組統一的工具目錄。
專案給出的三個案例,最能說明這種能力的邊界。第一個是 DX-Ball:從一次聲音呼叫出發,追到位置到聲像的輔助函式,檢查指令,把不完整的虛擬碼還原成 C 程式碼;據 README 稱,重建結果透過了 3205 個原始 x86 用例,並復現了全部 63 個編譯後函式位元組。第二個是 Notion:找到渲染程序的剪貼簿 API,經由 preload 和 IPC 追到主程序,檢視富文字剪貼簿格式。第三個是東方 TH04:檢查 PC-98 原版遊戲的 16 位指令,恢復固定彈和自機狙的角度計算,並與歷史編譯器的輸出對照。三個例子難度不同,但共同點很清楚:結論不是智慧體憑印象寫出來的,而是有可複核的指令級證據,並且能用測試來驗證。這正是 REA 反覆強調的原則:每個結論都附帶證據與侷限。 落到日常使用上,REA 更像一位不知疲倦的助手,而不是替代者。它要求 Node.js 22.19 以上、24.11 以上或 26 及更高版本,並提供命令列,所以團隊可以把同樣的分析寫進指令碼,儲存快照,再讓同事在自己的機器上覆現。當智慧體給出結論時,你可以順著證據回到具體的函式、指令或模組,親自核對。這種可複核性在安全審計、相容性研究、遺留系統維護和互操作開發中尤其有價值。比如團隊接手一個沒有文件的老程式,或者需要理解某個第三方元件的行為邊界,過去往往只能靠經驗和耐心,現在可以先讓智慧體鋪出一張證據地圖,再由人來判斷哪些結論值得相信、哪些仍需要進一步驗證。工具把重複勞動接過去,判斷仍然留給人,這才是它最穩妥的用法。 從行業視角看,REA 代表的是一種值得注意的趨勢:把專業工具的能力封裝成智慧體可呼叫的協議介面,讓大模型負責規劃與解釋,讓確定性的分析引擎負責取證。它的 README 在本地性上說得很明確,分析在本機執行,智慧體只收到工具結果,而模型提供商如何處理這些結果,取決於其自身的資料政策。這個分工降低了讓模型憑空猜測二進位制行為的風險,也讓安全團隊更容易審計整個過程。當然,也要保持清醒。執行時捕獲會以你的使用者許可權執行或操作目標程式,使用前應當閱讀對應指南;專案也明確宣告,它只用於合法的逆向研究,使用者需自行獲得授權並遵守法律,且專案沒有發行任何加密代幣,凡冒用 REA 名義的代幣都與它無關。對開發者與安全團隊來說,值得做的事情是,先在自己擁有的軟體上試一次,看一看證據鏈是否經得起復核,再決定把它放進日常工作流。
Sources
FAQ
REA 是什麼,怎麼接入我的智慧體?
REA 是一個開源 MCP 伺服器,提供原生二進位制、JavaScript 與 Electron 應用、網站、.NET、APK、韌體等目標的逆向分析工具。安裝只需執行 npx rea-agents setup,選擇智慧體、審閱並批准改動,再重啟智慧體。安裝程式會註冊 MCP 伺服器、安裝配套工作流說明,並備份已有配置。
使用 REA 必須安裝 Hopper、Ghidra 或 IDA 嗎?
不一定。深度原生二進位制分析需要三者之一,其中 Hopper 可在你批准後由安裝程式安裝,Ghidra 與 IDA 使用你已有的安裝。靜態 JavaScript 與 .NET 分析不需要任何原生分析引擎,只需要滿足版本要求的 Node.js 與 npm。
我的應用或二進位制會被上傳嗎?使用時要注意什麼?
README 說明 REA 在本地分析目標,智慧體會收到工具結果,而模型提供商如何處理這些結果取決於其資料政策。執行時捕獲會以你的使用者許可權執行或操作目標,使用前應閱讀對應指南。專案僅用於合法的逆向研究,授權與合規由使用者負責。