Skip to content

Latest commit

 

History

History
304 lines (191 loc) · 28.8 KB

README_ru.md

File metadata and controls

304 lines (191 loc) · 28.8 KB

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, предоставленный вызывающей стороной; руководство по ресурсам
Приложения 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, проверьте доступность в релизах.

Примеры

Иллюстрации примеров панорамирования звука в 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.

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

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

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

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

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

Рекомендации по ответственному использованию приведены в 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, направления проверки — в руководстве по тестированию, а структура проекта — на схеме архитектуры.

Лицензия

MIT

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.