REA даёт кодинг-агенту инструменты для обратной разработки программ

REA, набор инструментов, который подключается к кодинг-агенту и позволяет ему изучить программу и объяснить, что она делает. Страница rea.tools подаёт это как «обратную разработку (reverse engineering) вместе с вашим кодинг-агентом»: выяснить, как устроено ПО, исследуя саму программу. Цель, понять функцию достаточно хорошо, чтобы объяснить её, изменить или воспроизвести заново.

Установка делается через агента: пользователь копирует в него готовый запрос, установить REA и подключить к этому агенту командой npx rea-agents@latest setup, показать план установки на утверждение и затем проверить установку.

Первый пример, игра с динозавром в Chrome. Вопрос: почему динозавр ускоряется? Агент через локальное отладочное подключение изучил HTTP-версию игры в браузере и получил загруженный скрипт index.js вместе с исходным текстом и контрольной суммой. В нём нашлись настройки ACCELERATION: 0.001, MAX_SPEED: 13, SPEED: 6 и правило: пока текущая скорость меньше MAX_SPEED, к ней прибавляется ACCELERATION. По-человечески: старт со скорости 6, прибавка 0,001 на каждом обновлении без столкновения, пока скорость ниже 13. Правило проверили, вызвав функцию обновления оригинальной игры в контролируемой проверке в браузере, с отключёнными препятствиями и автоматическим планированием: после 4000 обновлений скорость была 10,0, после 10 000, 13,0 (округлено до одного знака). Новая мини-игра сохраняет это правило скорости, а код отрисовки, прыжка и столкновений, небольшая учебная реализация, а не восстановленный оригинал.

Второй пример, кнопка % в калькуляторе Windows. Исходный вопрос: почему 200 + 10% даёт 220? Страница показывает, что одна и та же кнопка работает по-разному после + и после ×. Агент изучил установленное приложение и восстановил две ветви: в одной процент равен current / 100, в другой, current * previous / 100 (в примере previous = 200, current = 10). После + берётся 10% от первого числа: 10% от 200 = 20, итого 200 + 20 = 220. После × 10% превращается в 0,1: 200 × 0,1 = 20. В дизассемблированном коде видны сравнения с кодами 0x5c (умножение, IDC_MUL = 92) и 0x5b (деление, IDC_DIV = 91) и константа 0x64 = 100.

Дальше страница перечисляет, с чем работает REA: исполняемые файлы и библиотеки (функции, строки, ссылки, связи вызовов), приложения на JavaScript и Electron (модули, маршруты, межпроцессное взаимодействие, нативные зависимости из папки приложения или архива ASAR), а также активность браузера или процесса с выбранными записями и сравнением результатов между запусками. В качестве примеров задач предлагаются «клонировать этот сайт» и «восстановить игру из исполняемого файла на C и проверить против оригинала». Для первого знакомства есть учебное приложение Notes: проследить его экспорт в CSV и проверить один изменённый вход. Для вопросов указаны FAQ, Discord и GitHub.

Ключевые факты

  • REA подключается к кодинг-агенту и даёт ему инструменты, чтобы изучить программу и объяснить, что она делает; установка, запросом в агента с командой npx rea-agents@latest setup и показом плана на утверждение.
  • Пример с динозавром в Chrome: из скрипта index.js восстановлено правило скорости, старт с 6, прибавка 0,001 за обновление, потолок 13; проверка дала 10,0 после 4000 обновлений и 13,0 после 10 000.
  • Пример с калькулятором Windows: после + процент считается от первого числа (200 + 10% = 220), после ×, как 10% = 0,1 (200 × 0,1 = 20); в коде найдена константа 0x64 = 100.
  • Заявленные возможности: разбор функций, строк, ссылок и вызовов в исполняемых файлах и библиотеках, карта модулей и зависимостей приложений на JavaScript и Electron, запись и сравнение активности браузера или процесса.

Почему это важно

Страница показывает практический сценарий: кодинг-агент не пересказывает документацию, а изучает сам запущенный или установленный продукт и восстанавливает конкретные правила его поведения, от скорости в игре до логики кнопки % в калькуляторе. Результат при этом проверяется: правило скорости динозавра сверено вызовом настоящей функции обновления, а в калькуляторе показан дизассемблированный код с константой 0x64 = 100.

Кому это важно

Тем, кому нужно понять, как работает чужая программа, и кто уже пользуется кодинг-агентами: разработчикам, воспроизводящим поведение приложения, и тем, кто изучает исполняемые файлы, приложения на Electron, а также активность браузера или процесса. Страница адресована и новичкам (общие объяснения и учебные примеры), и тем, кто уже знаком с обратной разработкой («Skip to analysis guides»).

Как это применить

Согласно странице, нужно скопировать в кодинг-агент готовый запрос: установить REA и подключить его к агенту командой npx rea-agents@latest setup, показать план установки на утверждение и проверить установку. Затем можно поставить задачу словами: например, «используй REA, чтобы изучить это приложение и объяснить правило» или «восстанови логику игры из исполняемого файла на C и проверь против оригинала». Для первого опыта предлагается учебное приложение Notes. Для разбора страницы в браузере агенту нужны адрес страницы и локальная точка отладки.

Можно ли доверять

Это рекламная страница самого продукта: примеры подобраны авторами, а результаты работы REA приведены в их изложении. На странице не названы авторы, компания или команда, не указаны цена, лицензия и статус открытого кода, нет независимых замеров и отзывов пользователей. При этом примеры проверяемы: правило скорости игры показано вместе с кодом и описанием контролируемой проверки, а для калькулятора приведён фрагмент дизассемблированного кода.

Риски и подводные камни

Команда установки использует npx и версию latest, поэтому полезно просмотреть предложенный агентом план установки до подтверждения, страница сама предлагает показать его на утверждение. Из примера с динозавром видно ограничение: восстановлено правило скорости, а код отрисовки, прыжка и столкновений в новой мини-игре, учебная реализация, а не восстановленный оригинал. Правовых вопросов обратной разработки (лицензии, условия использования) страница не обсуждает, поэтому оценка допустимости применения к конкретной программе остаётся на пользователе.

«REA даёт вашему агенту инструменты, чтобы изучить программу и объяснить, что она делает.»

— rea.tools