REA
當某個主張依賴於已出貨的二進位檔案或套件、反編譯結果、被動的應用程式運行時證據,或與未在可用原始碼中確立的行為進行比較時,請使用 REA。對於完整原始碼儲存庫的一般分析,請使用正常的儲存庫工具,且不要執行 REA 就緒狀態或提供者命令。
僅在需要時連接
安裝此技能僅提供指示;它不會註冊 REA MCP 伺服器、安裝分析引擎,或為已運行的代理新增工具。
如果 REA 工具可用,且其註冊狀態已知並非過時,請直接進行目標分析。不要在每次調查前都執行診斷或設定。請使用已連接伺服器的實際工具列表和輸入架構;從儲存庫主分支安裝的技能可能會描述較舊 npm 版本中不存在的功能。當該伺服器未通告保留的參考時,請保留完整的內聯證據。
如果工具不存在、呼叫被客戶端封鎖,或所需的提供者不可用,請閱讀連線與復原。診斷所觀察到的阻礙因素,繼續進行有用的支援工作,並在修復後恢復原始任務。客戶端批准、Shell PATH、註冊狀態和引擎可用性有不同的補救措施;避免對所有這些重複進行設定。
- 在不更改 REA 或用戶端設定的情況下進行診斷。
npx可能會下載套件並寫入 npm 的快取。對於 Codex,請執行npx -y [email protected] 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 [email protected] setup --client codex --dry-run --json。使用當前客戶端的 ID,顯示其確切的提議路徑、備份和更改,並在設定寫入設定或安裝 Hopper 之前獲得批准。Setup 通常也會安裝匹配的捆綁技能;在審查的計畫中包含該替換。獲得批准後,使用npx -y [email protected] setup --client codex --yes應用相同的範圍。僅在需要且明確批准該獨立安裝時,才新增--install-hopper。 - 重新啟動/重新連接受影響的代理。驗證 REA 工具確實出現在工作階段中,然後恢復原始調查。如果它們仍然不存在,請檢查客戶端的 MCP 啟動錯誤,而不是重複設定。
REA setup 從不安裝或升級 Node.js、npm、Homebrew、Java、Ghidra、IDA、JADX、Binwalk 或 Unblob。使用現有的前置條件;不要安裝不相關的軟體來修復 MCP 註冊。對於不支援的客戶端,請使用版本鎖定的 rea-agents 套件進行手動 stdio 註冊,或通過 CLI 繼續。
對於運算元提供的 JavaScript 樹或 ASAR,具體的 CLI 後備方案是:
npx -y [email protected] analyze-javascript-application /absolute/path/to/app --json
無需 MCP 註冊或原生引擎。請像對待 MCP 結果一樣仔細閱讀返回的證據、圖表、限制和未知項;CLI 會直接返回證據記錄。此後備方案並不證明 MCP 已設定。原生 CLI 任務仍然需要其選擇的引擎。優先使用現有的 rea CLI。當未安裝任何 CLI 且 REA 套件獲取在授權範圍內時,請改用 npx -y [email protected]。設定修復從唯讀 setup 計畫開始;在應用授權的更改之前顯示路徑、備份和技能替換。保留現有的批准和目標執行邊界。REA setup 從不安裝或升級不相關的軟體,包括 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。在有用時選擇原始記錄序號;檢查生產者欄位和位元組/數字 sidecar,而不擷取記錄的 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的欄位之前,搜尋已安裝的通訊協定和欄位名稱/類型。查詢/分頁相關記錄;註冊並不能建立已觀察的流量。 - 記錄的封包捕獲:使用選定的 TShark 欄位、顯示過濾器和解碼規則執行
inspect_packet_capture。需要 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 位元組碼載體:使用呼叫者選擇的
raw或hex編碼執行inspect_evm_interface。保留載體/已解碼摘要,並將選擇器、引數字串和可變性視為推斷的候選項;此操作不執行鏈查找或目標執行。對於沒有十六進位或重複標準輸出的完整推斷介面,發現支援並選擇detail: "summary";完整的證據在其原始身份下保留。使用返回的parent_evidence_id取得確切的函數或bytecode_hex/stdout/stderr 頁面。候選覆蓋率並不建立介面的完整性。請參閱 EVM 位元組碼指南。 - 嵌入的 Go 編譯器、模組或建置設定元資料:使用明確的本機檔案執行
inspect_go_binary。此內建無目標檢查不需要安裝 Go 或反組譯器。保留原始模組位元組和來源範圍;缺少元資料並不證明二進位檔案不是 Go,且未解析的文字記錄保持明確。請參閱 Go 二進位指南。 - 嵌入的 cargo-auditable Rust 依賴項元資料:使用明確的本機 ELF、PE 或瘦 Mach-O 檔案執行
inspect_rust_binary。此內建無目標檢查不需要安裝 Rust 或反組譯器。保留套件順序、依賴項索引和章節檔案範圍。缺少.dep-v0章節是空元資料,而不是證明二進位檔案沒有依賴項。rustc 提交雜湊是來自唯讀/rustc/<40-hex>/路徑的推斷。請參閱 Rust 二進位指南。 - 明確的本機 SQLite 資料庫快照:
inspect_sqlite_database。使用提供原生 SQLite 限制的 Node.js 24.x >=24.15 或 26+ 進行檢查。首先讀取架構(預設為緊湊清單),或當需要行時,選擇一個確切的普通資料表和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 輸入,並保持其資料庫開啟。現代的 headle...
[此處截斷]