
Настольный графический интерфейс для MCP-сервера обратного проектирования REA: браузер кода с листингом, декомпилятором и графом функций, а также 229 инструментов анализа и ИИ-агент в одной сессии.
Откройте приложение. Прочтите его до самого мозга костей.
Быстрый старт · Как работает Marrow · Что можно открыть · Демонстрация · Скриншоты · FAQ · Разработка
[!NOTE] Marrow (ранее REA Studio) — независимый проект. Авторы REA не создают его и не поддерживают. Marrow запускает установленный вами REA и не поставляет собственную копию. Получите REA из morluto/rea или из npm-пакета rea-agents.
Marrow — приложение для обратной разработки для macOS, Windows и Linux, построенное на REA. REA выполняет анализ через свой MCP-сервер. Marrow даёт ему окна, которых ожидает реверс-инженер: Listing с дизассемблированным кодом, Decompiler, Function Graph, Symbol Tree, Bytes, строки, ссылки, закладки и поиск, организованные как классический CodeBrowser, знакомый многим.
Нативные бинарники открываются в этом CodeBrowser. Пакеты Apple, приложения Electron, веб-страницы, Android APK, сборки .NET, прошивки, захваты пакетов и сравнения версий — у каждого своё окно, а окно REA Tools перечисляет все инструменты REA с формой для каждого из них.
Всё на экране происходит из ответов REA вместе с доказательствами и ограничениями, которые сообщил REA. Marrow сам не разбирает файлы, а при сбое инструмента показывает ошибку, которую вернул REA. Анализ выполняется на вашем собственном компьютере.
Вы можете подключить Claude к той же сессии двумя способами. Вставьте свой ключ Anthropic API в AI Chat и общайтесь с Claude внутри Marrow, или включите AI-хаб и подключите Claude Code, Claude Desktop или любой другой MCP-клиент. В любом случае Claude может запускать инструменты REA, перемещать представления, переименовывать функции и добавлять комментарии и закладки, пока вы наблюдаете, а Marrow спрашивает вас, прежде чем что-либо выйдет за пределы анализа.
Получите установщик для вашей системы из последнего релиза:
DMG для Mac (Apple Silicon или Intel), установщик .exe для Windows или AppImage либо
.deb для Linux. Они пока не подписаны, поэтому ваша система предупредит при первом открытии Marrow;
в примечаниях к релизу сказано, как это обойти.
npm install --global rea-agents. Требуется Node.js 22.23.4+, 24.22.1+ или 26.12.1+.rea doctor --provider ghidra сообщит, может ли REA
их использовать. Marrow ищет Ghidra там, где её обычно размещают (~/Applications на Mac,
ваша домашняя папка или C:\ на Windows, ваша домашняя папка или /opt на Linux), а JDK 21 —
в Homebrew, Program Files или /usr/lib/jvm. Tool Options > REA Engine позволяет указать
другое место.При запуске Marrow раздел Getting Started проверяет наличие REA, Ghidra и Java и подсказывает, как получить всё недостающее. Help > Contents открывает его снова в любой момент.
git clone https://github.com/utabk/marrow.git
cd marrow
npm install
npm run dev
/bin/ls на Mac или Linux, или
C:\Windows\System32\notepad.exe на Windows. Для универсального бинарного файла macOS Marrow спросит,
какую архитектуру анализировать.entry. Дважды щёлкните по имени в Listing или
Decompiler, чтобы перейти к нему, и нажмите ⌥← (Alt+← на Windows и Linux), чтобы вернуться назад.Чтобы общаться в чате внутри Marrow, откройте Window > AI Chat, нажмите API Key и вставьте ключ из
Anthropic Console. Вы также можете задать ANTHROPIC_API_KEY перед
запуском Marrow. Ключ хранится в зашифрованном виде с помощью хранилища ключей вашей системы (связка ключей macOS,
DPAPI в Windows или GNOME Keyring либо KWallet в Linux), и его читает только главный процесс Marrow.
Выберите Claude Opus, Sonnet или Haiku в меню в верхней части чата.
Чтобы использовать уже имеющегося у вас агента, откройте Window > AI Hub и включите сервер. В окне показана
команда для запуска Claude Code (claude mcp add marrow -- …) и блок для вставки в
конфигурацию Claude Desktop. Хаб прослушивает локальный сокет (именованный канал в Windows), и перед
любым сообщением MCP Marrow и коннектор доказывают, что знают секрет, хранящийся в вашем профиле
Marrow, поэтому никакая другая программа не может выдать себя за любого из них. В Marrow для этого не нужен API-ключ.
Каждая открытая вами программа получает собственный процесс rea mcp, поскольку REA поддерживает одну открытую цель на
соединение. Главный процесс Marrow общается с этими процессами по MCP через stdio. Окна получают
свои данные от главного процесса через небольшой типизированный мост и никогда не обращаются к файлам или процессам
напрямую. REA запускает Ghidra в headless-режиме для нативного кода и вызывает другие инструменты, когда они нужны
(otool и codesign на Mac, adb, JADX, браузер), а затем отправляет каждый результат обратно вместе с его
доказательствами. AI Chat и AI-хаб обращаются к REA через тот же главный процесс с теми же проверками.
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"]