
GUI desktop per il MCP di reverse engineering REA: browser del codice con listing, decompilatore e grafo delle funzioni, oltre a 229 strumenti di analisi e un agente AI nella stessa sessione.
Apri un'app. Leggila fino al midollo.
Avvio rapido · Come funziona Marrow · Cosa puoi aprire · Vetrina · Screenshot · FAQ · Sviluppo
[!NOTE] Marrow (precedentemente REA Studio) è un progetto indipendente. Gli autori di REA non lo realizzano né lo approvano. Marrow esegue la REA che installi e non ne distribuisce una copia propria. Ottieni REA da morluto/rea o dal pacchetto npm rea-agents.
Marrow è un'app di reverse engineering per macOS, Windows e Linux, costruita su REA. REA esegue l'analisi tramite il suo server MCP. Marrow gli fornisce le finestre che un reverse engineer si aspetta: un Listing con il disassemblato, un Decompiler, un Function Graph, il Symbol Tree, Bytes, stringhe, riferimenti, segnalibri e ricerca, disposti come il classico CodeBrowser che molti già conoscono.
I binari nativi si aprono in quel CodeBrowser. Bundle Apple, app Electron, pagine web, APK Android, assembly .NET, firmware, catture di pacchetti e confronti di versioni hanno ciascuno una finestra propria, e la finestra REA Tools elenca ogni strumento REA con un modulo per ciascuno.
Tutto ciò che appare sullo schermo proviene dalle risposte di REA, insieme alle prove e ai limiti che REA ha riportato. Marrow non analizza i file da solo, e quando uno strumento fallisce mostra l'errore restituito da REA. L'analisi viene eseguita sul tuo computer.
Puoi portare Claude nella stessa sessione in due modi. Incolla la tua chiave API Anthropic in AI Chat e parla con Claude dentro Marrow, oppure attiva l'AI hub e collega Claude Code, Claude Desktop o qualsiasi altro client MCP. In entrambi i casi, Claude può eseguire gli strumenti di REA, spostare le viste, rinominare funzioni e aggiungere commenti e segnalibri mentre osservi, e Marrow ti chiede prima che qualcosa raggi l'esterno dell'analisi.
Scarica l'installer per il tuo sistema dall'ultima release:
un DMG per Mac (Apple Silicon o Intel), un installer .exe per Windows, oppure un AppImage o
.deb per Linux. Non sono ancora firmati, quindi il tuo sistema avviserà la prima volta che apri Marrow;
le note di rilascio spiegano come superare l'avviso.
npm install --global rea-agents. Richiede Node.js 22.23.4+, 24.22.1+ o 26.12.1+.rea doctor --provider ghidra ti dice se REA
può usarli. Marrow cerca Ghidra dove di solito viene installata (~/Applications su Mac,
la tua cartella home o C:\ su Windows, la tua cartella home o /opt su Linux) e JDK 21 in
Homebrew, Program Files o /usr/lib/jvm. Tool Options > REA Engine ti permette di indicarne
un'altra posizione.All'avvio, Getting Started verifica la presenza di REA, Ghidra e Java e ti indica come ottenere ciò che manca. Help > Contents lo riapre in qualsiasi momento.
git clone https://github.com/utabk/marrow.git
cd marrow
npm install
npm run dev
/bin/ls su Mac o Linux, oppure
C:\Windows\System32\notepad.exe su Windows. Per un binario universale macOS, Marrow chiede quale
architettura analizzare.entry. Fai doppio clic su un nome nel Listing o
nel Decompiler per seguirlo, e premi ⌥← (Alt+← su Windows e Linux) per tornare indietro.Per chattare all'interno di Marrow, apri Window > AI Chat, fai clic su API Key e incolla una chiave dalla
Anthropic Console. Puoi anche impostare ANTHROPIC_API_KEY prima
di avviare Marrow. La chiave viene memorizzata in forma crittografata con il key store del tuo sistema (il Keychain di macOS,
DPAPI di Windows, oppure GNOME Keyring o KWallet su Linux) e solo il processo principale di Marrow la legge.
Scegli Claude Opus, Sonnet o Haiku dal menu in cima alla chat.
Per usare un agente che hai già, apri Window > AI Hub e attiva il server. La finestra mostra
il comando da eseguire per Claude Code (claude mcp add marrow -- …) e il blocco da incollare nella
configurazione di Claude Desktop. L'hub è in ascolto su un socket locale (una named pipe su Windows), e prima
di qualsiasi messaggio MCP Marrow e il connettore dimostrano ciascuno di conoscere un segreto conservato nel tuo
profilo Marrow, così nessun altro programma può impersonare l'uno o l'altro. Non richiede alcuna API key in Marrow.
Ogni programma che apri ottiene il proprio processo rea mcp, perché REA mantiene un solo target aperto per
connessione. Il processo principale di Marrow comunica con quei processi tramite MCP su stdio. Le finestre ricevono
i loro dati dal processo principale attraverso un piccolo bridge tipizzato e non toccano mai direttamente file o processi
stessi. REA esegue Ghidra headless per il codice nativo e chiama altri strumenti dove serve
(otool e codesign su Mac, adb, JADX, un browser), poi invia ogni risultato con la sua
evidenza. AI Chat e l'hub AI raggiungono REA attraverso lo stesso processo principale, con gli stessi controlli.
flowchart LR
subgraph marrow["Marrow"]
windows["Windows<br/>Listing, Decompiler, Function Graph,<br/>Security, REA Tools, AI Chat"]
main["Main process<br/>one REA session per open program"]
hub["AI hub"]
windows <-->|"typed bridge"| main
hub <--> main
end
you(["You"]) --> windows
agent(["Your AI agent<br/>Claude Code, Claude Desktop<br/>or any MCP client"]) -->|"MCP over a local socket"| hub
main <-->|"Anthropic API, with your key"| claude(["Claude"])
main <-->|"MCP over stdio"| rea["rea mcp<br/>229 tools"]
rea --> ghidra["Ghidra, headless<br/>native analysis"]
rea --> more["Other programs REA drives<br/>otool, codesign, adb, JADX,<br/>WABT, Chrome"]