Rea: как ИИ-агент разбирает чужой код | Виталий Воробьев
VorobeoffAIВиталий Воробьев

Rea: как ИИ-агент разбирает чужой код

Rea подключает ИИ-агента к инструментам реверс-инжиниринга через MCP: читает бинарники, Electron и браузер, возвращает код с доказательствами и помогает пересобрать фичу.

Rea — открытый фреймворк, который даёт вашему ИИ-агенту инструменты для реверс-инжиниринга. Агент сам вскрывает чужую программу, читает код, объясняет логику и помогает пересобрать фичу у вас в проекте.

Что это

Rea расшифровывается как Reverse Engineer Anything — «разбери что угодно». Это фреймворк от разработчика morluto, который подключается к вашему кодинг-агенту через MCP (Model Context Protocol — открытый стандарт, по которому ИИ-агенты вызывают внешние инструменты) и даёт ему набор инструментов для анализа чужого софта.

Идея простая: вы видите фичу в чужом приложении и хотите понять, как она устроена. Вместо ручного копания в дизассемблере вы спрашиваете агента: «разбери, как работает скорость в игре про динозавра», а Rea возвращает ему реальный код, константы и вызовы из запущенной программы. Агент уже строит объяснение и рабочий прототип.

Проект открыт под лицензией MIT, опубликован на GitHub как morluto/rea и на сайте rea.tools. На момент подготовки материала у репозитория более 340 тысяч звёзд — один из самых заметных инструментов для агентного реверс-инжиниринга.

Ключевое правило: Rea не угадывает логику по описанию, а возвращает агенту проверяемые факты из программы — инструкции, псевдокод, вызовы и константы.

Зачем нужно

  • Понять чужую фичу без исходников — увидеть, как считается процент в Калькуляторе Windows, как ускоряется динозавр в Chrome или как Notion копирует блоки в буфер обмена.
  • Перенести механику в свой продукт — агент не только объясняет правило, но и пишет минимальный рабочий вариант с теми же константами, чтобы проверить гипотезу.
  • Исследовать формат и структуру данных — разобрать APK, ASAR-архив Electron-приложения, таблицы SQLite, ресурсы Godot или метаданные Unity IL2CPP без установки их SDK.
  • Сравнить поведение оригинала и реконструкции — запустить проверочный прогон на тысячах входных значений и убедиться, что логика совпадает до байта.
  • Работать в привычном агенте — не осваивать отдельный дизассемблер, а спрашивать на естественном языке в Claude Code, Codex, Cursor, Gemini CLI и других клиентах с поддержкой локальных MCP-серверов.

Как устроено

Rea состоит из трёх слоёв: MCP-сервер, который регистрируется у агента; провайдеры анализа, которые вскрывают конкретный тип цели; и набор воркфлоу, которые агент вызывает по шагам. Весь анализ идёт локально на вашей машине, без загрузки приложения на внешний сервер.

СлойЧто делаетПример
MCP-сервер и skill
Подключает инструменты Rea к агенту и подсказывает порядок исследования
npx rea-agents setup регистрирует сервер и ставит инструкции для выбранных клиентов
Провайдеры нативного анализа
Читают бинарники: инструкции, псевдокод, строки, символы, связи вызовов
Hopper, Ghidra или IDA — агент выбирает доступный; глубокий анализ без них невозможен
Статические парсеры
Разбирают файлы без запуска программы
ELF/PE/Mach-O, Go-модули, Rust-крейты, WASM, EVM-байткод, Godot PCK, IL2CPP-метаданные, SQLite,.NET-сборки
Анализ приложений
Картирует модули, импорты, IPC и нативные зависимости
Папка Electron-приложения или ASAR: модули, маршруты, preload-мост, связь main/renderer
Наблюдение за выполнением
Фиксирует поведение во время работы
Браузер через Chrome DevTools — структура страниц, скрипты, сетевые запросы; перехват пакетов и сигналов платы
CLI
Те же воркфлоу без агента, прямо из терминала
npx rea-agents analyze-javascript-application /path/to/app —json

Установка требует Node.js 22.19+, 24.11+ или 26+ и npm. Команда npx rea-agents setup показывает план изменений, делает бэкапы конфигов и после перезапуска агента добавляет инструменты Rea. Для нативного анализа можно подключить уже установленный Hopper, Ghidra или IDA; при желании setup предлагает поставить Hopper. Статический анализ JavaScript и.NET работает и без них.

Каждый результат приходит с доказательствами: адресами инструкций, дизассемблером, псевдокодом, дайджестами файлов и пометкой об ограничениях вывода. Это важно — агент видит, на чём основан ответ, и может задать уточняющий вопрос или запустить дополнительную проверку.

Когда использовать

СитуацияПодходит / не подходитПочему
Нужно повторить поведение кнопки или расчёта из установленного приложения
Подходит
Rea показывает ветвления, константы и вызовы, агент пересобирает правило и проверяет его на тестах
Есть папка Electron-приложения и вопрос про экспорт, IPC или хранение
Подходит
Карта модулей и связей даёт агенту точные пути к коду без ручного поиска
Нужно сравнить два запуска программы
Подходит
Захват процесса и сравнение прогонов показывают, что изменилось в выводе, файлах и сети
Нет доступа к файлам цели или права на анализ
Не подходит
Rea работает локально с вашими файлами; анализ чужого софта без разрешения — вне рамок ответственного использования
Нужен поверхностный пересказ интерфейса
Не подходит
Инструмент заточен на код и поведение, а не на скриншоты и маркетинговые описания

Пример

Классический кейс с сайта Rea — кнопка процента в Калькуляторе Windows. Вопрос: почему 200 + 10% даёт 220, а 200 × 10% — 20? Агент с Rea открывает библиотеку Calculator, находит обработчик кнопки процента и видит ветвление:

if (operation == multiply || operation == divide) {
  percent = current / 100;
} else {
  percent = current * previous / 100;
}

После умножения или деления 10% превращается в 0,1 — отсюда 200 × 0,1 = 20. После сложения 10% считается от первого числа: 10% от 200 = 20, затем 200 + 20 = 220. Rea подтверждает это ассемблером, где видны константа 0x64 (100) и проверки кодов операций 0x5B и 0x5C, а мини-калькулятор на странице позволяет сразу проверить оба правила вживую.

Другой пример — ускорение динозавра в игре Chrome. Агент читает загруженный скрипт через отладочное подключение браузера и находит правило:

if (this.currentSpeed < this.config.MAX_SPEED) {
  this.currentSpeed += this.config.ACCELERATION;
}

Стартовая скорость 6, потолок 13, шаг 0,001 на каждый кадр без столкновения. В реконструкции мини-игры это же правило работает с ползунком скорости, а контрольный прогон 4000 и 10000 обновлений подтверждает: 10,0 и 13,0 — как в оригинале.

С терминалом тот же сценарий выглядит так:

npx rea-agents@latest setup
# выберите клиентов, проверьте план, перезапустите агента

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

Такой анализ особенно полезен в связке с памятью проекта ИИ-агента — когда у агента есть описание архитектуры и точки входа, он точнее выбирает, куда смотреть и как встроить найденное правило в ваш код. Детали про инфраструктуру агентов и полный гайд по Codex CLI помогут собрать рабочий контур вокруг Rea.

Rea делает реверс-инжиниринг частью обычного диалога с кодинг-агентом. Вместо отдельного тяжёлого тулчейна вы задаёте вопрос на естественном языке, получаете код с адресами и константами и тут же пересобираете поведение в проверяемый прототип. Инструмент не заменяет понимание форматов и ответственность за легальность анализа, но резко сокращает путь от «вижу фичу» до «понимаю правило и могу воспроизвести».

Ссылки

По теме

Продолжить тему

Материалы, которые связаны с этим разбором

Подборка учитывает тему, редкие теги и смысл заголовка с описанием материала.

Открыть материалы по теме ↗

Обсудить задачу

Есть задача, которую хотите усилить с помощью ИИ?

Опишите процесс, что уже пробовали и какой результат хотите получить. Я помогу понять, где ИИ и автоматизация действительно дадут эффект, и предложу понятный следующий шаг.

Для первого сообщения достаточно пары абзацев — готовое техническое задание не требуется.