REA: инструмент для реверс-инжиниринга бинарных файлов и приложений

REA: инструмент для реверс-инжиниринга бинарных файлов и приложений

REA — инструмент для реверс-инжиниринга приложений, работающий с бинарными файлами и поведением программ. Он позволяет анализировать функционал приложений, достигая подробностей на уровне бинарного кода.

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

Технологически это решение построено на Node.js (версия 22+) и запускается через команду npx rea-agents setup. Важно отметить, что проект находится на ранней стадии разработки, что может означать наличие недоработок или неполной функциональности.

Проект REA (Reverse Engineer Anything) — это инструмент для реверс-инжиниринга, который позволяет анализировать бинарные файлы, приложения и их поведение во время выполнения. С помощью REA можно понять, как работает интересующая тебя функция в приложении, даже если у тебя нет доступа к исходному коду.

REA взаимодействует с различными инструментами для анализа, такими как Hopper, Ghidra и IDA, а также поддерживает JavaScript и Electron приложения, .NET сборки и веб-сайты. Весь анализ проходит локально, и результаты включают не только выявления, но и доказательства сделанных выводов.

Установка и запуск

Для начала работы тебе нужно установить Node.js и npm. Затем просто запусти следующую команду:

npx rea-agents setup

Эта команда зарегистрирует REA с твоим агентом и установит необходимые инструкции для работы. После установки рекомендуется перезапустить агента.

Для анализа приложения можно использовать следующие команды:

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

Эта команда проанализирует указанный JavaScript/Electron-app и вернёт информацию о модулях, импортах и других деталях.

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

REA может анализировать следующий тип контента:

  • Бинарные файлы: возвращает псевдокод, ассемблер, строки и символы.
  • JavaScript и Electron: отображение модулей, источников и взаимодействий.
  • Веб-сайты: структура страниц, скрипты и наблюдения за сетью.
  • .NET сборки: метаданные и инструкции CIL.
  • APK для Android: декларации манифеста и декомпилированные методы.

Для каждого из этих типов могут быть разные требования и необходимые инструменты, которые подробно описаны в документации.

Ограничения и требования

Для работы REA необходим Node.js версии 22.x или выше. Некоторые типы анализа требуют наличия установленных инструментов, таких как Hopper или Ghidra. Например, глубокий анализ бинарников невозможен без одного из этих инструментов.

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

Поддержка и документация

Полную информацию о настройке, использовании и возможностях REA можно найти на официальном сайте проекта: morluto.github.io/rea. Там же представлены обучающие материалы и примеры использования.

Открыть на GitHub: morluto/rea →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте