Что такое REA и зачем это нужно
Разработчики представили REA (Reverse Engineer Anything) — инструмент, который делегирует рутинный реверс-инжиниринг ИИ-агентам. В отличие от традиционных методов, где оператор вручную выбирает инструменты (Ghidra, Hopper) и переносит данные между ними, REA предоставляет агентам единый интерфейс для глубокого анализа ПО. Агенты могут исследовать поведение приложения, извлекать доказательства (evidence) и даже создавать адаптированные версии функций для вашего стека технологий.
Ключевое преимущество — полная локальность. Анализ выполняется на вашем хосте, бинарные файлы не загружаются на сторонние серверы, что критично для работы с проприетарным или конфиденциальным кодом.
Технический стек и поддержка платформ
REA работает как обертка над мощными движками анализа, управляя ими через агентов. Поддерживаются macOS, Linux (Ubuntu 24.04+, Fedora 41+, Arch) и экспериментальная поддержка Windows x64. Для анализа требуются Node.js 22.19+ или 24.11+.
| Компонент/Инструмент | Роль в REA | Ограничения/Особенности |
|---|---|---|
| Hopper | Основной провайдер глубокого анализа | Требует лицензии; доступен в бесплатном демо-режиме |
| Ghidra | Альтернативный провайдер (Bring-your-own) | Только чтение: декомпиляция, CFG, xrefs. Без GUI-манипуляций |
| Windows PE | Экспериментальный режим (P0) | Только Ghidra, только x64, только нативные PE-файлы |
| Managed/CLI | Триаж без исполнения | Анализ .NET/CLI бинарников без запуска процесса |
Интеграция с ИИ-агентами через MCP
REA использует протокол MCP (Model Context Protocol) для связи с популярными ИИ-ассистентами. Установка происходит одной командой, которая автоматически регистрирует провайдеры в конфигурации агентов:
- Поддерживаемые агенты: Claude Code, Claude Desktop, Codex, Cursor, Gemini CLI, Windsurf.
- Devin: Обнаруживается, но не конфигурируется (отсутствие документации по локальному MCP).
Процесс настройки безопасен: REA делает бэкапы конфигураций, выводит план изменений в терминал и требует явного подтверждения (по умолчанию No). Команда rea setup --dry-run позволяет проверить изменения без их применения.
Как это работает: от вопроса к коду
Рабочий процесс разделен на три этапа, которые агент выполняет автономно:
- Decompile (Декомпиляция): Открытие приложения, восстановление читаемого кода, строк и имен функций.
- Understand (Понимание): Отслеживание потока выполнения от одной части кода к другой для объяснения логики работы конкретной функции.
- Recreate (Воспроизведение): Генерация кода новой функции, адаптированной под требования пользователя, на основе извлеченных знаний.
Пример запроса к агенту: "Understand how search works in the Notes app, show me the evidence, and build a similar feature for my project" (Разберись, как работает поиск в приложении Notes, покажи доказательства и создай похожую функцию для моего проекта).
Быстрый старт
Для установки глобально:
npm install --global rea-agents
rea setup
Или для разового использования без установки:
npx --yes rea-agents@latest setup
npx -y rea-agents@latest analyze /path/to/app.app
Разработчики подчеркивают, что REA не претендует на автоматическое клонирование приложений или восстановление исходного кода в его изначальном виде. Цель инструмента — дать агентам структурированный доступ к бинарным данным для решения конкретных инженерных задач.
Источник: Github ↗
