REA — инструмент с открытым исходным кодом для обратной разработки: исследования того, как устроена и работает готовая программа. Он подключается к Codex или Claude Code через MCP и даёт агенту возможность разбирать приложения, даже когда их исходный код недоступен. Название расшифровывается как Reverse Engineer Anything.
Проект буквально взлетел. На 12 октября у REA уже больше 114 тысяч звёзд, а в дневном GitHub Trending он занимает первое место. Там же GitHub показывает прирост более 25 тысяч звёзд за день. Интерес к инструменту огромный.
Увидели удобную функцию в приложении и хотите понять, как она работает? С REA такую задачу можно поставить агенту. Он может исследовать настольные приложения, сайты, Android-приложения и скомпилированные исполняемые файлы. Набор инструментов зависит от того, что именно предстоит разбирать.
Работа начинается с конкретного вопроса. Как приложение сохраняет форматирование при копировании текста? Где хранит настройки? Как устроен определённый игровой механизм? Агент исследует доступные файлы, прослеживает связи и объясняет найденное со ссылками на функции, участки кода и другие свидетельства. По этим результатам можно спроектировать и проверить похожую функцию для своего проекта.
В документации REA есть разбор механизма буфера обмена в Notion и примеры восстановления отдельных вычислений из старых игр. Для глубокого анализа скомпилированных программ используются Hopper, Ghidra или IDA — специализированные инструменты, которыми агент управляет через REA.
Такой подход может пригодиться и для собственного старого софта. Исходники потерялись, разработчик давно ушёл, а программа продолжает работать и хранить важные данные. Появляется способ исследовать её поведение и разобраться, что потребуется для переноса в новую систему.
Название «Разобрать что угодно» стоит воспринимать как амбицию проекта. Полнота анализа зависит от доступных файлов и инструментов. Найденную логику нужно проверять, а новую реализацию — тестировать.
Готовое приложение всё чаще становится отправной точкой для инженерного разговора с агентом: выбрали конкретную функцию, разобрались в её устройстве, решили, как применить этот принцип в своей задаче. Расстояние от «хочу понять, как это сделано» до собственного работающего решения сокращается.
Если вам нужно разобраться в старой программе или исследовать функцию для своего проекта, можно обсудить задачу и подходящие инструменты.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov


