English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Türkçe · Русский · Tiếng Việt · ไทย · Deutsch · Español · Français · Українська · Polski · Português (Brasil) · العربية · فارسی · Bahasa Indonesia · Italiano
Нашли интересную функцию? Разберитесь, как она работает, вплоть до двоичного кода.
Сайт · Руководства · Примеры
Быстрый старт · Как работает REA · Что можно анализировать · Примеры · Частые вопросы · Документация
npx rea-agents setup
|
Присоединяйтесь к сообществу реверс-инжиниринга 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 быстро развивается, и новые версии часто содержат исправления ошибок. Регулярно обновляйте установленную версию.
Для CLI, установленного через npm:
rea updateЧтобы обновить регистрации агентов и skill, выполните команду настройки, которую выведет обновление.
Если используете npx, обновите настройку агента командой:
npx rea-agents@latest setupПроверьте изменения настроек и перезапустите агента. Для разовых команд CLI используйте npx rea-agents@latest, а затем нужную команду.
Агент вызывает REA через MCP, чтобы исследовать цель и проследить связанный код. REA возвращает результаты вместе с подтверждающими данными. Агент использует их для уточняющих вопросов, объяснения поведения или написания и тестирования реализации. Команды CLI используют те же рабочие процессы.
Открыть рисунок в полном размере.
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, предоставленный вызывающей стороной; руководство по ресурсам |
| Приложения Flutter | Хеш снапшота Dart, дайджесты библиотек по ABI и происхождение сборки движка | Не требуется (статический разбор APK); руководство по Flutter |
| Прошивки | Области, результаты извлечения и передача в нативный анализ | Binwalk / Unblob в Linux; руководство по прошивкам |
| Пакеты и ресурсы | Списки файлов, хеши, plist, структура пакетов Apple и извлечённые ресурсы | Руководство по артефактам и JavaScript, приложения Apple |
| Поведение процессов | Вывод терминала, взаимодействия, наблюдения за завершением и файловой системой, сравнения запусков | Linux/macOS с нативным PTY; захват процессов |
Статическое исследование JavaScript и .NET читает предоставленные файлы, не запуская приложение. Захват во время выполнения запускает выбранную цель или взаимодействует с ней с правами вашего пользователя; соответствующие руководства описывают последствия.
Нативные форматы и поддерживаемые системы различаются у разных провайдеров. См. настройку Hopper и Ghidra, руководство по IDA и экспериментальную поддержку Ghidra в Windows. Ghidra также поддерживает анализ 16-битного DOS. Выбор провайдера описан в руководстве по CLI. Для функций, добавленных после последней версии в npm, проверьте доступность в релизах.
Проследите звуковой вызов до функции, преобразующей координату в значение панорамы, изучите инструкции и превратите неполный псевдокод в C. Восстановленная реализация проходит 3 205 тестов с исходным x86-кодом и воспроизводит все 63 байта скомпилированной функции.
Прочитать исследование · Репозиторий реконструкции
Найдите API буфера обмена в процессе рендеринга, проследите его через preload и IPC до основного процесса и изучите формат буфера обмена с форматированием.
Изучите 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, тип цели, шаги воспроизведения и вывод ошибки.
Начните с практических руководств на сайте. Точные параметры, требования и контракты результатов описаны здесь:
- Установка и настройка: регистрация агентов, настройка провайдеров, обновление и удаление.
- Готовность и устранение неполадок: диагностика конкретного агента или движка анализа.
- CLI и Evidence: команды, выбор провайдера, снимки, импорт/экспорт и коды завершения.
- Контракты MCP и промпты агентов: результаты инструментов, сеансы и исследования с подсказками.
- Каталог инструментов: создаваемый при сборке перечень инструментов, провайдеров и команд CLI.
- План развития: запланированные работы и отслеживание возможностей.
Сообщайте об уязвимостях согласно SECURITY.md.
🎉 110 000 звёзд на GitHub — спасибо!
Спасибо всем, кто использует REA, сообщает об ошибках, предлагает новые функции, тестирует сборки и помогает с исправлениями.
Рекомендации по ответственному использованию приведены в DISCLAIMER.md.
REA предназначен для законных исследований, обучения, обеспечения совместимости, сохранения программного обеспечения и анализа программ, которыми вы владеете или которые вам разрешено изучать.
The project's position on illegal or unauthorized use covers all REA versions, distribution channels, and platforms; each copy retains its applicable licenses.
Будем рады вашей помощи с REA! Откройте issue, чтобы сообщить об ошибке или предложить функцию, либо отправьте pull request с улучшениями кода или документации.
Настройка среды разработки и проверки описаны в CONTRIBUTING.md, направления проверки — в руководстве по тестированию, а структура проекта — на схеме архитектуры.
REA-authored code is licensed under MIT. Third-party material retains its own licenses and copyright notices; see Third-party notices for the dependency inventory, preserved license texts, and external-tool terms.
You must legally obtain and be authorized to use commercial tools, including IDA Pro / Hex-Rays decompilers, Hopper, and JEB, under their applicable licenses. REA grants no tool license, key, or activation entitlement. Trials and demos remain subject to vendor terms, including user, feature, automation, and output sharing restrictions. Cracked copies, stolen keys, unauthorized key sharing, and bypassing license restrictions are not authorized. This guidance does not amend MIT or third-party licenses.
