REA
當主張依賴於已發布的二進位檔案或套件、反編譯、被動的應用程式執行時期證據,或與可用原始程式碼無法確立的行為進行比較時,請使用 REA。對於完整原始程式碼儲存庫的常規分析,請使用一般的儲存庫工具,不要執行 REA 就緒檢查或提供者命令。
僅在需要時連線
安裝此技能僅提供說明;它不會註冊 REA MCP 伺服器、安裝分析引擎,或為已在執行的代理新增工具。
如果 REA 工具可用且其註冊已知未過時,請直接處理目標。不要在每次調查前都執行診斷或設定。使用已連線伺服器的實際工具列表和輸入架構;從儲存庫主分支安裝的技能可能會描述舊版 npm 版本中沒有的功能。當該伺服器未宣告保留的參考時,請保留完整的內嵌證據。
如果工具缺失、客戶端封鎖了呼叫,或所需的提供者不可用,請閱讀連線與復原。診斷觀察到的阻礙因素,繼續有用的支援工作,並在修復後恢復原始任務。客戶端批准、shell 路徑、註冊和引擎可用性有不同的補救措施;避免對所有問題重複進行設定。
-
在不變更 REA 或客戶端設定的情況下進行診斷。
npx可能會下載套件並寫入 npm 的快取。對於 Codex,請執行npx -y rea-agents@latest doctor --client codex --json。替換為目前支援的客戶端: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,顯示其確切建議的路徑、備份和變更,並在設定寫入設定或安裝 Hopper 之前獲得批准。設定通常也會安裝匹配的捆綁技能;在審查的計劃中加入該替換。批准後,使用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 註冊。對於不受支援的客戶端,請使用版本固定的 rea-agents 套件進行手動 stdio 註冊,或透過 CLI 繼續。
對於由操作者提供的 JavaScript 樹或 ASAR 的具體 CLI 備用方案:
npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json
無需 MCP 註冊或原生引擎。以與 MCP 結果相同的謹慎態度閱讀回傳的證據、圖表、限制和未知事項;CLI 會直接回傳證據記錄。此備用方案並不表示 MCP 已設定。原生 CLI 任務仍需要其選擇的引擎。
優先使用現有的 rea CLI。當未安裝且 REA 套件獲取在授權範圍內時,使用 npx -y rea-agents@latest 替代。設定修復從唯讀設定計劃開始;在套用授權的變更前顯示路徑、備份和技能替換。保留現有的批准和目標執行邊界。REA 設定從不安裝或升級不相關的軟體,包括 Node.js、npm、Homebrew、Java、Ghidra、IDA、JADX、Binwalk 或 Unblob。
首先路由目標
從使用者提供的目標選擇第一個工具。對於活躍目標的原生或存檔工作流程,使用 open_binary;無需目標的工具會自行接收明確的路徑或端點,不需要它。
- ASAR 或提取的 JavaScript/Electron 樹:
analyze_javascript_application。 - 存檔/套件成員清單(ZIP/APK/IPA/MSIX/AppX 或 DMG):
使用提供的本機路徑執行
open_binary;當其圖表和發現有助於回答問題時,使用inspect_artifact。 - Android APK 程式碼、類別、方法或傳入的參考:
inspect_android_package,然後在宣告時使用聚焦的 Android 工具。 存檔成員清單仍使用上述的存檔路徑。 - 受控 PE/CLI 組件:
inspect_managed_artifact。 - 韌體影像:在宣告時使用
inspect_firmware_regions。當請求提取時使用extract_firmware,並使用呼叫者選擇的新的絕對輸出目錄。這些工具在 Linux 上使用呼叫者提供的 Binwalk/Unblob;請參閱韌體指南。 - .NET NativeAOT PE/ELF:原生 Ghidra 分析。原生程式碼可以產生偽程式碼;
請參閱
references/native-and-artifacts.md中的 NativeAOT 工作流程,了解可選的中繼資料復原及其支援的主機/佈局邊界。 - 使用者擁有的已開啟瀏覽器頁面:
list_browser_targets。 - 代理必須執行的瀏覽器操作(點擊、輸入、導航):
使用宣告的動作執行
capture_browser_scenario。請參閱 執行時期觀察 了解連線/啟動 以及聚焦的後續瀏覽器工具。 - Fiddler Everywhere 流量或原生
.saz擷取:閱讀 Fiddler 工作流程。 使用inspect_web_network_capture和format: "saz"檢查已儲存的 SAZ; 連線 Everywhere 的獨立 MCP 伺服器以獲取即時流量。 - 保留的 HAR/SAZ/原生 mitmproxy/aioquic qlog 擷取:
inspect_web_network_capture。在有用時選擇原始記錄序數;檢查生產者欄位和位元組/數字輔助資料,而不擷取記錄的 URL 或聲稱即時歸因。請參閱 歷史擷取 了解確切的上游設定檔和憑證排除。Qlog 支援從 aioquic 1.5.0 JSON 0.3 開始;串流覆蓋範圍和端點遺失宣告不會復原主體或建立網路遺失。優先使用詳細資料摘要,然後是 kind qlog 追蹤/串流頁面;為貢獻/範圍頁面選擇一個追蹤、串流 ID 和方向。事實保留所有在選擇前記錄的事件範圍。不支援其他 qlog 佈局和 PCAP 關聯。 - 使用者擁有的已開啟 Electron 執行時期:
list_electron_targets。在嘗試 electron-main Inspector 之前,使用inspect_electron_fuses檢查打包的保險絲;停用的EnableNodeCliInspectArguments表示應用程式會忽略--inspect。 - 封包欄位發現:
inspect_packet_fields在為inspect_packet_capture選擇欄位之前,搜尋已安裝的協定和欄位名稱/類型。查詢/翻頁相關記錄;註冊並不建立觀察到的流量。 - 記錄的封包擷取:
inspect_packet_capture,搭配選定的 TShark 欄位、顯示過濾器和解碼規則。需要 Linux、util-linux prlimit 和REA_TSHARK_COMMAND;請參閱 擷取指南。 封包限制計算過濾前的輸入封包數。輸出預設為 50 個符合的框架;使用match_offset/match_limit進行後續翻頁,或使用明確的 null 限制以獲得完整的符合輸出。跨頁面保留來源摘要。此操作不執行即時擷取。 對於位址/DNS/SNI/協定摘要,使用帶有 MCP 詳細資料摘要的inspect_pcap_capture,然後是保留的 kind pcap 頁面。需要 Wireshark 4.x tshark 和 capinfos,以及 Linux prlimit 或 Windows Job Objects;請參閱 封包摘要。 為位址頁面選擇一個確切的 DNS 問題;頁面耗盡並不證明網路完整性。此操作讀取錄音,不擷取流量。 - 解碼器發現:
inspect_signal_decoders搜尋已安裝的解碼器 ID 或選定的解碼器幫助,包括通道和選項。在選擇設定前查詢和翻頁相關詳細資料;此操作不掃描硬體。 - 記錄的邏輯/訊號追蹤:
decode_signal_recording,搭配明確的解碼器、通道和協定設定。在 Linux 上使用 util-linux prlimit,透過REA_SIGROK_COMMAND提供 sigrok-cli 0.7.2;請參閱錄音指南。輸出預設為 50 個文字行;使用line_offset/line_limit選擇註釋類別並翻頁,或對所有剩餘輸出使用明確的 null。視窗計數是顯示行數,而非註釋或樣本。跨頁面保留來源摘要。此操作讀取現有檔案;它不擷取硬體訊號。 - 明確的本機 WebAssembly 成品:
inspect_wasm_artifact。透過REA_WABT_BIN_DIRECTORY提供 WABT 1.0.42;保留確切的位元組/工具標識和解碼後的 WAT。明確選擇 JavaScript 膠水程式碼和候選路徑,並保留 URL/路徑模糊性。不進行隱含的擷取或目標執行;WAT 不是原始來源。請參閱 WASM 指南。 - 明確的本機 EVM 位元組碼載體:
inspect_evm_interface,搭配呼叫者選擇的raw或hex編碼。保留載體/解碼後的摘要,並將選擇器、引數字串和可變性視為推斷的候選項;此操作不執行鏈查找或目標執行。對於沒有十六進位或重複標準輸出的完整推斷介面,發現支援並選擇detail: "summary";完整的證據在其原始標識下保持保留。使用回傳的parent_evidence_id進行確切的函式或bytecode_hex/stdout/stderr 頁面。候選覆蓋範圍並不建立介面完整性。請參閱 EVM 位元組碼指南。 - 嵌入的 Go 編譯器、模組或建置設定中繼資料:
inspect_go_binary,搭配明確的本機檔案。此內建的無需目標檢查不需要 Go 安裝或反組譯器。保留原始模組位元組和來源範圍;缺失的中繼資料並不證明二進位檔案不是 Go 的,未解析的文字記錄保持明確。請參閱 Go 二進位指南。 - 嵌入的 cargo-auditable Rust 依賴項中繼資料:
inspect_rust_binary,搭配明確的本機 ELF、PE 或精簡 Mach-O 檔案。此內建的無需目標檢查不需要 Rust 安裝或反組譯器。保留套件順序、依賴項索引和章節檔案範圍。缺失的.dep-v0章節是 null 中繼資料,並非證明二進位檔案沒有依賴項。一個 rustc 提交雜湊是從唯讀/rustc/<40-hex>/路徑推斷得出的。請參閱 Rust 二進位指南。 - 明確的本機 SQLite 資料庫快照:
inspect_sqlite_database。使用 Node.js 24.x >=24.15 或 26+(提供原生 SQLite 限制)進行檢查。首先讀取架構(預設為緊湊清單),或在需要行時選擇一個確切的普通表和columns。預設值是所選表的架構和 20 行;為完整的儲存架構請求schema_scope: "database"。保留資料庫和現有同級 WAL 的標識;行樣本會報告截斷並具有未指定的順序。使用靜止的快照,而不是假設即時的資料庫/WAL 對是原子性複製的。請參閱 SQLite 指南。 - 明確的 Linux ELF 檔案,用於離線佈局、符號、重定位或靜態緩解措施證據:
inspect_binary_layout。此無需目標操作使用呼叫者提供的 pwntools,而不開啟反組譯器資料庫。保留其原始位置和推斷/覆蓋限制;請參閱 離線二進位指南。 - 提供的 Linux x86-64 ELF 核心轉儲:
inspect_recorded_crash。讀取每個記錄的執行緒、原始備註和來源綁定的暫存器,而不開啟即時目標。歷史 PID 不會選擇即時處理程序。僅在核心專用映射候選有幫助時請求include_debugger_context;請參閱 記錄的崩潰指南。 - PE 資源類型/名稱/語言樹和靜態圖示群組參考:
inspect_pe_resources,搭配明確的路徑。此可攜式操作不需要活躍目標或引擎;不透明負載保留檔案範圍和 SHA-256。 - 原生可執行檔、程式庫或分析資料庫:
open_binary,然後直接使用聚焦的分析工具;當中繼資料或清單上下文有用且可從選定的提供者取得時,呼叫binary_overview。
對於現有的 IDA MCP 設定,使用原始輸入二進位檔案和 provider_id: "ida" 執行 open_binary;不要傳遞 .idb 或 .i64 資料庫。傳統的附加設定檔透過 SHA-256 綁定已開啟的 GUI 輸入,並使其資料庫保持開啟。現代 h
…
[已截斷以進行翻譯]