REA: пусть ИИ-агенты помогут провести обратный инжиниринг программ без исходного кода
REA (Reverse Engineer Anything) — проект с открытым исходным кодом, который подключает инструменты анализа программ к ИИ-агентам для программирования вроде Claude Code, Codex и Cursor. Увидели интересную функцию в чужом приложении? Можно поручить агенту разобрать программу, объяснить, как она работает, привести доказательства, а затем написать аналогичную функцию в вашем проекте. Обратный инжиниринг — это восстановление устройства программы по её скомпилированной версии, когда исходного кода нет.
REA — это MCP-сервис. MCP — универсальный интерфейс, с помощью которого ИИ-агенты вызывают внешние инструменты. После подключения агент может вызывать функции анализа REA прямо во время общения. Для установки достаточно одной команды: npx rea-agents setup. Она зарегистрирует REA в таких агентах, как Claude Code, Codex, Cursor, Gemini CLI и Grok Build. Перед изменением конфигурации будет создана резервная копия, а у вас запросят подтверждение. Если вы не пользуетесь агентами, команды можно запускать напрямую в терминале.
REA умеет анализировать самые разные объекты. Для нативных программ (софта, напрямую скомпилированного в машинный код) нужны дизассемблеры Hopper, Ghidra или IDA: они преобразуют машинный код в ассемблер и псевдокод, похожий на C. Приложения Electron (настольные программы, созданные с помощью веб-технологий, например Notion) можно разбирать напрямую: достаточно изучить архив ASAR в установочном пакете и проследить связи между модулями и взаимодействие процессов — дополнительные инструменты не нужны. Также поддерживаются программы .NET, Android APK, прошивки, веб-сайты, записи сетевого трафика, байткод контрактов Ethereum, а ещё запись поведения программ во время выполнения в Linux и macOS.
Анализ проводится локально: REA не загружает целевую программу. Однако результаты анализа передаются поставщику модельного сервиса, на котором работает агент. Обработка данных зависит от политики каждого поставщика.
В проекте приведены три примера. Первый — классическая игра в арканоид DX-Ball: от вызова воспроизведения звукового эффекта авторы проследили путь до функции, которая рассчитывает баланс громкости левого и правого каналов в зависимости от положения мяча. Неполный псевдокод восстановили в виде кода на C; результаты 3205 тестов совпали с оригиналом, а скомпилированные 63 байта оказались полностью идентичны оригинальным. Второй пример — настольная версия Notion: прослежена вся цепочка копирования и вставки — от интерфейса через скрипт предварительной загрузки и межпроцессное взаимодействие до основного процесса. Третий — игра «Тохо Генсокё» (TH04) для старого японского компьютера PC-98: по 16-битным инструкциям восстановили алгоритм расчёта углов кольца пуль.
Для исследователей безопасности, авторов ремейков старых игр и специалистов по сохранению программ это означает, что вместо построчного изучения дизассемблера и ручного отслеживания цепочек вызовов можно сначала поручить эту работу агенту, а затем проверить приведённые им доказательства. У обычных разработчиков тоже появляется новый способ изучить, как в конкурирующем продукте реализована та или иная функция.
Согласно README, проект набрал на GitHub уже 50 тысяч звёзд. Пакет npm впервые опубликовали в июле этого года, а последняя версия 6.3.0 вышла сегодня.
Перед использованием стоит учесть два момента. Проект заявляет, что поддерживает только законные исследования с применением обратного инжиниринга; за наличие разрешений и соблюдение законодательства отвечает сам пользователь. Обратный инжиниринг чужого ПО может нарушать пользовательское соглашение или законы об авторском праве. Также проект подчёркивает, что никогда не выпускал и не рекламировал криптовалюты, а токены, использующие имя REA, к нему отношения не имеют.
https://github.com/morluto/rea
REA (Reverse Engineer Anything) — проект с открытым исходным кодом, который подключает инструменты анализа программ к ИИ-агентам для программирования вроде Claude Code, Codex и Cursor. Увидели интересную функцию в чужом приложении? Можно поручить агенту разобрать программу, объяснить, как она работает, привести доказательства, а затем написать аналогичную функцию в вашем проекте. Обратный инжиниринг — это восстановление устройства программы по её скомпилированной версии, когда исходного кода нет.
REA — это MCP-сервис. MCP — универсальный интерфейс, с помощью которого ИИ-агенты вызывают внешние инструменты. После подключения агент может вызывать функции анализа REA прямо во время общения. Для установки достаточно одной команды: npx rea-agents setup. Она зарегистрирует REA в таких агентах, как Claude Code, Codex, Cursor, Gemini CLI и Grok Build. Перед изменением конфигурации будет создана резервная копия, а у вас запросят подтверждение. Если вы не пользуетесь агентами, команды можно запускать напрямую в терминале.
REA умеет анализировать самые разные объекты. Для нативных программ (софта, напрямую скомпилированного в машинный код) нужны дизассемблеры Hopper, Ghidra или IDA: они преобразуют машинный код в ассемблер и псевдокод, похожий на C. Приложения Electron (настольные программы, созданные с помощью веб-технологий, например Notion) можно разбирать напрямую: достаточно изучить архив ASAR в установочном пакете и проследить связи между модулями и взаимодействие процессов — дополнительные инструменты не нужны. Также поддерживаются программы .NET, Android APK, прошивки, веб-сайты, записи сетевого трафика, байткод контрактов Ethereum, а ещё запись поведения программ во время выполнения в Linux и macOS.
Анализ проводится локально: REA не загружает целевую программу. Однако результаты анализа передаются поставщику модельного сервиса, на котором работает агент. Обработка данных зависит от политики каждого поставщика.
В проекте приведены три примера. Первый — классическая игра в арканоид DX-Ball: от вызова воспроизведения звукового эффекта авторы проследили путь до функции, которая рассчитывает баланс громкости левого и правого каналов в зависимости от положения мяча. Неполный псевдокод восстановили в виде кода на C; результаты 3205 тестов совпали с оригиналом, а скомпилированные 63 байта оказались полностью идентичны оригинальным. Второй пример — настольная версия Notion: прослежена вся цепочка копирования и вставки — от интерфейса через скрипт предварительной загрузки и межпроцессное взаимодействие до основного процесса. Третий — игра «Тохо Генсокё» (TH04) для старого японского компьютера PC-98: по 16-битным инструкциям восстановили алгоритм расчёта углов кольца пуль.
Для исследователей безопасности, авторов ремейков старых игр и специалистов по сохранению программ это означает, что вместо построчного изучения дизассемблера и ручного отслеживания цепочек вызовов можно сначала поручить эту работу агенту, а затем проверить приведённые им доказательства. У обычных разработчиков тоже появляется новый способ изучить, как в конкурирующем продукте реализована та или иная функция.
Согласно README, проект набрал на GitHub уже 50 тысяч звёзд. Пакет npm впервые опубликовали в июле этого года, а последняя версия 6.3.0 вышла сегодня.
Перед использованием стоит учесть два момента. Проект заявляет, что поддерживает только законные исследования с применением обратного инжиниринга; за наличие разрешений и соблюдение законодательства отвечает сам пользователь. Обратный инжиниринг чужого ПО может нарушать пользовательское соглашение или законы об авторском праве. Также проект подчёркивает, что никогда не выпускал и не рекламировал криптовалюты, а токены, использующие имя REA, к нему отношения не имеют.
https://github.com/morluto/rea