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 делает реверс-инжиниринг частью обычного диалога с кодинг-агентом. Вместо отдельного тяжёлого тулчейна вы задаёте вопрос на естественном языке, получаете код с адресами и константами и тут же пересобираете поведение в проверяемый прототип. Инструмент не заменяет понимание форматов и ответственность за легальность анализа, но резко сокращает путь от «вижу фичу» до «понимаю правило и могу воспроизвести».
Ссылки
- Сайт: rea.tools — главная страница проекта
- Репозиторий: morluto/rea на GitHub
- Документация: REA FAQ — установка и анализ
По теме
- База знаний: Что такое ИИ-агенты и зачем они нужны
- База знаний: Память проекта ИИ-агента: контекст и состояние
- База знаний: Полное руководство по Codex CLI


