
GUI de desktop para o MCP de engenharia reversa REA: navegador de código com listagem, decompilador e grafo de funções, além de 229 ferramentas de análise e um agente de IA na mesma sessão.
Abra um aplicativo. Leia-o até a medula.
Início rápido · Como o Marrow funciona · O que você pode abrir · Vitrine · Capturas de tela · Perguntas frequentes · Desenvolvimento
[!NOTE] O Marrow (antigo REA Studio) é um projeto independente. Os autores do REA não o produzem nem o endossam. O Marrow executa o REA que você instala e não distribui uma cópia própria. Obtenha o REA em morluto/rea ou no pacote npm rea-agents.
O Marrow é um aplicativo de engenharia reversa para macOS, Windows e Linux, construído sobre o REA. O REA faz a análise por meio de seu servidor MCP. O Marrow oferece as janelas que um engenheiro reverso espera: uma Listagem com a desmontagem, um Descompilador, um Function Graph, a Árvore de Símbolos, Bytes, strings, referências, favoritos e busca, organizados como o clássico CodeBrowser que muitas pessoas já conhecem.
Binários nativos abrem nesse CodeBrowser. Pacotes da Apple, aplicativos Electron, páginas web, APKs do Android, assemblies .NET, firmware, capturas de pacotes e comparações de versões têm cada um sua própria janela, e a janela REA Tools lista todas as ferramentas do REA com um formulário para cada uma.
Tudo o que aparece na tela vem das respostas do REA, junto com as evidências e limitações que o REA relatou. O Marrow não analisa arquivos por conta própria, e quando uma ferramenta falha ele mostra o erro que o REA retornou. A análise é executada no seu próprio computador.
Você pode trazer o Claude para a mesma sessão de duas maneiras. Cole sua própria chave de API da Anthropic no AI Chat e converse com o Claude dentro do Marrow, ou ative o hub de IA e conecte o Claude Code, o Claude Desktop ou qualquer outro cliente MCP. De qualquer forma, o Claude pode executar as ferramentas do REA, mover as visualizações, renomear funções e adicionar comentários e favoritos enquanto você observa, e o Marrow pergunta a você antes que qualquer coisa saia da análise.
Obtenha o instalador para o seu sistema na última versão:
um DMG para Mac (Apple Silicon ou Intel), um instalador .exe para Windows, ou um AppImage ou
.deb para Linux. Eles ainda não são assinados, então seu sistema avisa na primeira vez que você abrir o Marrow;
as notas de versão explicam como contornar isso.
npm install --global rea-agents. Requer Node.js 22.23.4+, 24.22.1+ ou 26.12.1+.rea doctor --provider ghidra informa se o REA
consegue usá-los. O Marrow procura o Ghidra onde as pessoas costumam colocá-lo (~/Applications no Mac,
sua pasta pessoal ou C:\ no Windows, sua pasta pessoal ou /opt no Linux) e o JDK 21 no
Homebrew, Program Files ou /usr/lib/jvm. Tool Options > REA Engine permite apontá-lo
para outro lugar.Quando o Marrow é iniciado, o Getting Started verifica a presença do REA, do Ghidra e do Java e informa como obter o que estiver faltando. A opção Help > Contents abre-o novamente a qualquer momento.
git clone https://github.com/utabk/marrow.git
cd marrow
npm install
npm run dev
/bin/ls em um Mac ou Linux, ou
C:\Windows\System32\notepad.exe no Windows. Para um binário universal do macOS, o Marrow pergunta qual
arquitetura analisar.entry. Dê um duplo clique em um nome no Listing ou
no Decompiler para segui-lo, e pressione ⌥← (Alt+← no Windows e Linux) para voltar.Para conversar dentro do Marrow, abra Window > AI Chat, clique em API Key e cole uma chave do
Anthropic Console. Você também pode definir ANTHROPIC_API_KEY antes
de iniciar o Marrow. A chave é armazenada criptografada com o armazenamento de chaves do seu sistema (o Keychain do macOS,
o DPAPI do Windows, ou o GNOME Keyring ou KWallet no Linux) e apenas o processo principal do Marrow a lê.
Escolha Claude Opus, Sonnet ou Haiku no menu na parte superior do chat.
Para usar um agente que você já tem, abra Window > AI Hub e ative o servidor. A janela mostra
o comando a executar para o Claude Code (claude mcp add marrow -- …) e o bloco a colar na
configuração do Claude Desktop. O hub escuta em um socket local (um named pipe no Windows), e antes
de qualquer mensagem MCP o Marrow e o conector provam cada um que conhecem um segredo mantido no seu perfil
do Marrow, para que nenhum outro programa possa se passar por nenhum dos dois. Ele não precisa de chave de API no Marrow.
Cada programa que você abre recebe seu próprio processo rea mcp, porque o REA mantém um alvo aberto por
conexão. O processo principal do Marrow se comunica com esses processos via MCP em stdio. As janelas obtêm
seus dados do processo principal por meio de uma pequena ponte tipada e nunca tocam em arquivos ou processos
diretamente. O REA executa o Ghidra headless para código nativo e chama outras ferramentas onde precisa delas
(otool e codesign em um Mac, adb, JADX, um navegador), e então envia cada resultado de volta com sua
evidência. O AI Chat e o hub de IA chegam ao REA pelo mesmo processo principal, com as mesmas verificações.
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