Как REA помогает ИИ-агенту изучать программы: возможности и ограничения
REA подключает Claude Code, Codex и другие ИИ-агенты к исследованию приложений. Разбираемся, как проходит анализ, что он позволяет узнать и где его границы.
Почему калькулятор Windows показывает 220 после ввода «200 + 10%»? Чтобы ответить, недостаточно знать арифметику: нужно понять, какое правило заложено в программе. REA помогает задать такой вопрос ИИ-агенту и проследить его до конкретных участков установленного приложения.
REA (Reverse Engineer Anything) — открытый инструмент для анализа программ через MCP — протокол, через который агент вызывает внешние инструменты — и командную строку. Он передаёт агенту данные о файлах, функциях, вызовах и других связях. Агент объясняет, как устроена функция, и может помочь проверить самостоятельную реализацию. Это способ исследовать программу, а не кнопка, которая автоматически превращает любой продукт в его бесплатную копию.
- От вопроса к проверяемому объяснению
- Как агент работает с REA
- Какие программы можно исследовать
- Поддержка зависит от формата и дополнительных инструментов
- Как выглядит исследование на практике
- От нажатия кнопки до созданного файла
- Когда проверка подтверждает объяснение
- Подключение к Claude Code, Codex и другим агентам
- Настройка и первый запрос
- От анализа к своей реализации
- Исследовать, описать, собрать, проверить
- Границы REA и ответственность пользователя
- Результат анализа не равен исходному коду
- Локальный сервер не означает, что данные не увидит облачная модель
- Исследовать можно только то, на что у вас есть право
От вопроса к проверяемому объяснению
Как агент работает с REA
Вместо ручного поиска по большому приложению можно сформулировать конкретный вопрос: например, что происходит после нажатия «Экспорт» или как программа рассчитывает значение. Агент вызывает инструменты REA, получает результаты анализа и продолжает исследование по найденным связям. В ответе могут быть инструкции процессора, восстановленный псевдокод, найденные функции и данные, которые подтверждают или ограничивают вывод.
На официальном примере REA разбирает кнопку процентов в калькуляторе Windows. После сложения «10%» трактуется как десятая часть первого числа: 10% от 200 — это 20, поэтому результат равен 220. После умножения процент преобразуется в 0,1: 200 × 0,1 = 20. Такое объяснение получено не из одного текстового описания — исследуются ветви кода и значения, к которым они обращаются. На сайте REA показаны исходные инструкции и разбор этого примера.
Какие программы можно исследовать
Поддержка зависит от формата и дополнительных инструментов
REA работает с несколькими классами объектов: приложениями на JavaScript и Electron, веб-страницами и сохранёнными сетевыми запросами, Android-приложениями, файлами .NET и нативными исполняемыми программами. Для одних задач хватает самого REA; для других нужны браузер на основе Chromium, JADX и JDK, либо дизассемблер вроде Ghidra, Hopper или IDA. Поддерживаются и отдельные сценарии анализа Go, WebAssembly, прошивок и байткода смарт-контрактов. Набор функций и требования различаются: перед запуском нужно свериться с инструкцией для конкретного формата.

Важное ограничение связано с тем, где находится код. REA может исследовать файлы, приложение или страницу, доступные на вашем устройстве, но не извлекает скрытую серверную часть сайта, если она не поставляется пользователю. Анализ браузерной страницы показывает клиентский код, структуру и наблюдаемые запросы — это не равнозначно доступу к инфраструктуре владельца сервиса.
Как выглядит исследование на практике
От нажатия кнопки до созданного файла
Для первого опыта авторы REA предлагают учебное приложение «Заметки» с кнопкой экспорта. Задача — выяснить, куда попадает файл. Агент прослеживает цепочку: обработчик кнопки в интерфейсе передаёт сообщение через мост Electron, главный процесс принимает его и записывает CSV в папку загрузок. В этой цепочке видны не только начальная и конечная точки, но и промежуточные вызовы.

Это хороший пример того, зачем важны свидетельства. Ответ «экспорт сохраняется в загрузки» полезен, но ещё полезнее понимать, какой обработчик это делает и откуда берутся данные. Такой разбор помогает исправлять собственное приложение, проверять совместимость или документировать забытый код.
Когда проверка подтверждает объяснение
В официальном разборе приложения Aegis Authenticator исследователи нашли правило генерации одноразового кода среди 3 077 классов Android-приложения. Затем проверили восстановленную логику на 133 тестовых случаях, включая смену 30-секундных интервалов и коды с нулём в начале. Это пример не «магического чтения мыслей программы», а цепочки: найти нужные методы, понять их связи и сверить результат независимой проверкой. Разбор Aegis с демонстрацией проверки опубликован на сайте проекта.
Похожий принцип применили к игре DX-Ball 1996 года: отдельную функцию расчёта панорамирования звука восстановили на C и сравнили с исходной функцией в 3 205 случаях. REA предоставил инструкции, вызовы и значения из файла; реализацию и проверки создал отдельный проект. В разборе DX-Ball показано, как проверяли совпадение поведения.
Подключение к Claude Code, Codex и другим агентам
Настройка и первый запрос
REA подключается к совместимому агенту как локальный MCP-сервер. Для установки нужен Node.js одной из поддерживаемых версий: 22.19 или новее, 24.11 или новее либо 26 и новее. Команда npx rea-agents@latest setup запускает настройку и предлагает выбрать клиента. Перед применением изменений можно посмотреть план; установщик сохраняет резервную копию конфигурации. После настройки терминальный агент нужно перезапустить.

REA поддерживает, в частности, Claude Code и Codex. Начинать лучше с одной функции и конкретного вопроса: «Проследи, что происходит при экспорте, покажи точки входа, вызовы и файлы, на которых основан вывод». Актуальная инструкция по установке перечисляет поддерживаемые клиенты и требования для разных систем.
От анализа к своей реализации
Исследовать, описать, собрать, проверить
REA особенно полезен как часть последовательного процесса. Сначала агент исследует поведение выбранной функции. Затем человек фиксирует требования и неизвестные детали в спецификации. После этого можно написать самостоятельную реализацию и сравнить её с доступными тестами или наблюдаемым поведением. Рабочий цикл прост: исследовать, описать, реализовать и проверить.

Не стоит просить модель просто «скопировать приложение». Узкая задача лучше поддаётся проверке: разобраться в совместимости формата, восстановить алгоритм, описать поведение или перенести собственную программу на новую платформу. Чем точнее цель и критерии, тем легче заметить, где вывод подтверждён, а где остаётся предположением.
Границы REA и ответственность пользователя
Результат анализа не равен исходному коду
Декомпилятор восстанавливает читаемое представление по исполняемому файлу; это не первоначальные исходники. Имена переменных, структура и назначение части функций могут быть неизвестны или восстановлены приблизительно. Даже уверенный ответ агента нужно проверять по данным, тестам и поведению целевой программы. В документации REA предлагается отдельно сохранять наблюдения, выводы и то, что пока не удалось подтвердить.

Некоторые сценарии могут запускать программу или наблюдать за её работой с правами текущего пользователя. Не открывайте таким способом неизвестные файлы и учитывайте, что статический анализ, запуск приложения и работа в браузере имеют разные риски.
Локальный сервер не означает, что данные не увидит облачная модель
REA выполняет анализ на компьютере, но передаёт результат подключённому агенту. Если агент использует облачную модель, фрагменты кода или данные анализа могут обрабатываться поставщиком этой модели согласно его условиям. Не включайте в запрос секреты, персональные данные и материалы, которые нельзя отправлять во внешние сервисы; для чувствительных проектов проверьте настройки модели и агента.
Исследовать можно только то, на что у вас есть право
Назначение инструмента не отменяет лицензии и законов. Правила реверс-инжиниринга зависят от страны, способа получения программы, условий её использования и цели анализа. В официальном предупреждении REA отдельно сказано, что исследование может быть ограничено юрисдикцией или лицензией целевой программы. Отдельно учитывайте условия коммерческих анализаторов: MIT-лицензия REA не предоставляет лицензии на IDA, Hopper или другое стороннее ПО.
Для реверс-инжиниринга, совместимости и защиты ПО REA даёт удобный способ задавать вопросы к приложению и прослеживать ответы до проверяемых данных. Но он не снимает необходимость разбираться в результатах, учитывать приватность и проверять, допустима ли работа с конкретной программой.
Иллюстрации: схемы из исходной публикации @0xCodila в X. Примеры Aegis, DX-Ball, калькулятора и инструкции по установке сверены с документацией и разборами на сайте REA.