Files
rea/README_ru.md

28 KiB
Raw Permalink Blame History

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano

REA: Реверс-инжиниринг чего угодно

Один MCP для реверс-инжиниринга бинарных файлов, приложений и поведения во время выполнения.

Нашли интересную функцию? Разберитесь, как она работает, вплоть до двоичного кода.

npm version MCP tool catalog Node.js requirements skills.sh MIT license Discord

morluto%2Frea | Trendshift

Сайт · Руководства · Примеры

Быстрый старт · Как работает REA · Что можно анализировать · Примеры · Частые вопросы · Документация

npx rea-agents setup


REA запускает мост анализа внутри Hopper при исследовании нативного бинарного файла



Discord
Присоединяйтесь к сообществу реверс-инжиниринга

Discord · Вопросы и ответы · Обмен результатами


Увидели в приложении функцию, которую хотите добавить в свой продукт? Попросите агента исследовать её с помощью REA. Он может изучить приложение без исходного кода, объяснить работу функции, показать подтверждающие данные и создать подходящую реализацию для вашего проекта.

REA подключает вашего агента к инструментам для исследования нативных бинарных файлов, приложений JavaScript и Electron, сборок .NET и сайтов. Те же инструменты доступны в терминале. Анализ выполняется локально, а результаты содержат данные и ограничения, на которых основан каждый вывод.

Настройка регистрирует REA в вашем агенте и устанавливает соответствующие инструкции по работе. Для нативного анализа можно использовать уже установленный Hopper или Ghidra; настройка также может установить Hopper с вашего согласия. Для статического анализа JavaScript не нужен ни один из этих движков.

Посетите сайт REA: там есть инструкции по настройке, иллюстрированные руководства и реальные исследования.

Быстрый старт

Настройте агента

Если Node.js и npm установлены, выполните:

npx rea-agents setup

Выберите агентов, проверьте предлагаемые изменения и подтвердите их. Настройка добавляет MCP-сервер REA и соответствующие рабочие инструкции, сохраняя резервные копии существующих настроек. После этого перезапустите агента.

Настройка поддерживает Claude Code, Codex, Cursor, Gemini CLI, Grok Build и других агентов. Настройка провайдеров и ручная регистрация MCP описаны в разделе установка и настройка.

Задайте вопрос агенту

Исследуй, как работает поиск в приложении Notes, покажи подтверждающие данные и создай похожую функцию для моего проекта.

Замените Notes нужным приложением и укажите функцию, которую хотите понять.

Используйте терминал

Исследуйте распакованный каталог приложения JavaScript/Electron или файл ASAR:

npx -y rea-agents@latest analyze-javascript-application /absolute/path/to/app --json

Результат включает модули, импорты, границы Electron и подтверждающие данные. Замените путь своим, например "D:/apps/example" в Windows.

Для регулярного использования установите команду rea:

npm install --global rea-agents
rea --help

Для нативного анализа сначала настройте провайдер. Нативные команды, выбор провайдера, снимки и работу со скриптами описывает руководство по CLI и Evidence.

Обновите REA

REA быстро развивается, и новые версии часто содержат исправления ошибок. Регулярно обновляйте установленную версию.

Для CLI, установленного через npm:

rea update

Чтобы обновить регистрации агентов и skill, выполните команду настройки, которую выведет обновление.

Если используете npx, обновите настройку агента командой:

npx rea-agents@latest setup

Проверьте изменения настроек и перезапустите агента. Для разовых команд CLI используйте npx rea-agents@latest, а затем нужную команду.

Как работает REA

Агент вызывает REA через MCP, чтобы исследовать цель и проследить связанный код. REA возвращает результаты вместе с подтверждающими данными. Агент использует их для уточняющих вопросов, объяснения поведения или написания и тестирования реализации. Команды CLI используют те же рабочие процессы.

Процесс исследования с REA: агент задаёт вопрос о локальной цели, REA исследует её инструментами анализа, а агент использует возвращённый код, ссылки и неизвестные сведения для объяснения, реализации и тестирования.

Открыть рисунок в полном размере.

Что можно анализировать

REA требует Node.js 22.x (>=22.19), 24.x (>=24.11) или 26+, а также npm. Дополнительные инструменты и поддерживаемые системы зависят от цели:

Цель Что возвращает REA Требования и руководство
Нативные бинарные файлы Псевдокод, ассемблер, строки, символы, вызовы и ссылки Hopper, Ghidra или IDA; нативный анализ
Структура ELF без запуска Секции, сегменты, исходные символы/релокации и возможные механизмы защиты по данным статического анализа pwntools, предоставленный вызывающей стороной, в Linux x64; диагностика бинарных файлов
Байт-код EVM Селекторы диспетчеризации, смещения байтов, предполагаемые аргументы и изменяемость состояния Локальные необработанные байты или шестнадцатеричное представление в Linux x64; руководство по EVM без запуска
Записанные сбои Linux Необработанные записи note, регистры/сигналы каждого записанного потока и необязательные кандидаты сопоставления с памятью pwntools, предоставленный вызывающей стороной, в Linux x64; необязательные GDB/pwndbg; записанные сбои
JavaScript / Electron Модули, импорты, карты исходного кода, маршруты, IPC и связи с нативными дополнениями Node.js и npm; анализ приложений
Сайты Структура страницы, скрипты, наблюдения за сетью и запрошенные снимки экрана Браузер семейства Chrome; анализ браузера
Сохранённые сетевые захваты Запросы, ответы, доступные полезные данные и позиции в источнике HAR; mitmdump в Linux для захватов в собственном формате mitmproxy; руководство по сетевым захватам
Сборки .NET Метаданные, инструкции CIL, объявленные нативные зависимости и сравнения сборок Статическое исследование; руководство по управляемому коду
Android APK Объявления манифеста, классы, декомпилированные методы и ссылки JADX без графического интерфейса и полный JDK в Linux/macOS/Windows x64; руководство по Android
Устройства Android Устройства, пакеты, процессы, журналы, дампы, снимки экрана и передача APK/файлов adb, предоставленный вызывающей стороной (эмулятор или устройство); руководство по ADB
Проекты JEB Единицы проекта от движка, дайджесты артефактов и псевдокод типов/методов Запущенный вызывающей стороной клиент JEB с интерфейсом MCP, выбирается через REA_JEB_MCP_URL; руководство по JEB
Ресурсы Android Декодированный манифест, таблицы строк, языки и сведения о версии Запуск Apktool, предоставленный вызывающей стороной; руководство по ресурсам
Прошивки Области, результаты извлечения и передача в нативный анализ Binwalk / Unblob в Linux; руководство по прошивкам
Пакеты и ресурсы Списки файлов, хеши, plist, структура пакетов Apple и извлечённые ресурсы Руководство по артефактам и JavaScript, приложения Apple
Поведение процессов Вывод терминала, взаимодействия, наблюдения за завершением и файловой системой, сравнения запусков Linux/macOS с нативным PTY; захват процессов

Статическое исследование JavaScript и .NET читает предоставленные файлы, не запуская приложение. Захват во время выполнения запускает выбранную цель или взаимодействует с ней с правами вашего пользователя; соответствующие руководства описывают последствия.

Нативные форматы и поддерживаемые системы различаются у разных провайдеров. См. настройку Hopper и Ghidra, руководство по IDA и экспериментальную поддержку Ghidra в Windows. Ghidra также поддерживает анализ 16-битного DOS. Выбор провайдера описан в руководстве по CLI. Для функций, добавленных после последней версии в npm, проверьте доступность в релизах.

Примеры

Иллюстрации примеров панорамирования звука в DX-Ball, моста буфера обмена Notion и кольца пуль в TH04

DX-Ball: восстановление расчёта звуковой панорамы

Проследите звуковой вызов до функции, преобразующей координату в значение панорамы, изучите инструкции и превратите неполный псевдокод в C. Восстановленная реализация проходит 3 205 тестов с исходным x86-кодом и воспроизводит все 63 байта скомпилированной функции.

Прочитать исследование · Репозиторий реконструкции

Notion: исследование моста буфера обмена Electron

Найдите API буфера обмена в процессе рендеринга, проследите его через preload и IPC до основного процесса и изучите формат буфера обмена с форматированием.

Прочитать исследование

TH04: восстановление расчёта кольца пуль в DOS

Изучите 16-битные инструкции оригинальной игры для PC-98, восстановите расчёты фиксированных и прицельных углов и сравните восстановленный C++ с выводом компилятора того времени.

Прочитать исследование · Репозиторий реконструкции

Если вы исследовали с REA что-то интересное, поделитесь результатом. Создайте issue или pull request и укажите цель, ваш вопрос, как помог REA и что удалось узнать.

Частые вопросы

Какие агенты могут использовать REA?

Любой агент с поддержкой локальных MCP-серверов. Настройка конфигурирует поддерживаемых агентов; другие клиенты могут использовать ручную регистрацию MCP.

Нужны ли мне Hopper, Ghidra или IDA?

Углублённый нативный анализ использует один из этих инструментов. Статическое исследование JavaScript и .NET работает без движка нативного анализа. Настройка может установить Hopper после подтверждения; Ghidra и IDA используют существующие установки. См. настройку провайдеров.

Нужно ли сначала запускать Hopper?

REA запускает Hopper, когда он нужен для операции. В macOS при первом запуске может появиться диалог выбора деморежима или активации лицензии. См. запуск Hopper и устранение неполадок.

Что даёт установка skill с skills.sh?

Skill предоставляет агенту инструкции по исследованию. Используйте npx rea-agents setup, чтобы зарегистрировать MCP-сервер REA и установить соответствующие инструкции, затем перезапустите агента. См. установку только skill.

Какой код возвращает REA?

Нативный анализ возвращает псевдокод и ассемблер. Анализ JavaScript/Electron восстанавливает модули и их связи. Агент использует эти результаты, чтобы написать и протестировать реализацию; в примерах показаны практические исследования.

REA загружает моё приложение на сервер?

REA анализирует цели локально. Ваш агент получает результаты инструментов, а у его поставщика моделей есть собственная политика обработки данных.

Что делать, если я столкнулся с ошибкой?

Сначала обновитесь: недавний релиз мог уже исправить ошибку.

Для CLI, установленного через npm:

rea update

Для настройки агента через npx:

npx rea-agents@latest setup

Если используете агента, завершите обновление настройки и перезапустите его. Повторите ту же задачу. Если проблема сохраняется, откройте issue, указав версию REA, тип цели, шаги воспроизведения и вывод ошибки.

Документация

Начните с практических руководств на сайте. Точные параметры, требования и контракты результатов описаны здесь:

Сообщайте об уязвимостях согласно SECURITY.md.

История звёзд

🎉 90 000 звёзд на GitHub — спасибо!

Спасибо всем, кто использует REA, сообщает об ошибках, предлагает новые функции, тестирует сборки и помогает с исправлениями.

История звёзд REA на GitHub

Отказ от ответственности

REA предоставляет инструменты для законных исследований, анализа и реконструкции с помощью реверс-инжиниринга. Вы отвечаете за получение необходимых разрешений и соблюдение применимых законов. Проект не поддерживает незаконное или несанкционированное использование.

Участие в проекте

Будем рады вашей помощи с REA! Откройте issue, чтобы сообщить об ошибке или предложить функцию, либо отправьте pull request с улучшениями кода или документации.

Настройка среды разработки и проверки описаны в CONTRIBUTING.md, направления проверки — в руководстве по тестированию, а структура проекта — на схеме архитектуры.

Лицензия

MIT