Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
r2frida — Radare2 и Frida — лучше вместе. | Kitploit
Инструменты/GitHubGitHub/nowsecure/r2frida
Безопасность AndroidСтатический анализДинамический анализ (песочница)Безопасность iOSПентестинг мобильных приложенийОбратная инженерияОтладчикиМобильная криминалистикаТестирование на ПроникновениеМобильная безопасностьАнализ Бинарных Файлов
1.4k140463 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Топ в Безопасность iOS №5
Топ в Пентестинг мобильных приложений №11
Топ в Мобильная криминалистика №6
Топ в Мобильная безопасность №11
Топ в Обратная инженерия №19
GitHubnowsecure/r2frida

r2frida

Radare2 и Frida — лучше вместе.

Репозиторий
# r2frida

Radare2 и Frida лучше вместе [![ci](https://github.com/nowsecure/r2frida/actions/workflows/ci.yml/badge.svg)](https://github.com/nowsecure/r2frida/actions/workflows/ci.yml)
[![radare2](https://img.shields.io/badge/radare2-6.2.2-green)](https://github.com/radareorg/radare2)

<p align="center">
  <img src="https://assets.kitploit.com/production/public/readmes/6368/cb1a7ba58f6ff64ad947e97c41037ba99ae04d10530e310971849f025e9e3351.png" width="414px" height="248px">
</p>

## Описание

Самодостаточный плагин для [radare2](https://www.radare.org), который включает в себя
[frida](https://www.frida.re) и позволяет инструментировать локальные или удалённые
процессы с помощью команд r2 вместо (но не ограничиваясь) скриптов Frida.

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

Frida — это набор инструментов для динамической инструментации, который упрощает
исследование и манипулирование работающими процессами путём внедрения вашего
собственного JavaScript, а также, при желании, взаимодействие с вашими скриптами.

## Возможности

* Запуск немодифицированных скриптов Frida (используйте команду `:.`)
* Выполнение фрагментов кода на C, Javascript или TypeScript в любом процессе
* Возможность присоединения, порождения или запуска в локальных или удалённых системах
* Список секций, символов, экспортов, протоколов, классов, методов
* Поиск значений в памяти внутри агента или с хоста
* Замена реализаций методов или создание хуков с помощью коротких команд
* Загрузка библиотек и фреймворков в целевой процесс
* Поддержка интерфейсов Dalvik, Java, ObjC, Swift и C
* Манипулирование файловыми дескрипторами и переменными окружения
* Отправка сигналов процессу, продолжение, точки останова
* Плагин ввода-вывода r2frida также является бэкендом файловой системы **fs** и **debug**
* Автоматизация r2 и frida с помощью r2pipe
* Чтение/запись памяти процесса
* Вызов функций, системных вызовов и фрагментов сырого кода
* Подключение к frida-server через usb или tcp/ip
* Перечисление приложений и процессов
* Трассировка регистров, аргументов функций
* Протестировано на x64, arm32 и arm64 для Linux, Windows, macOS, iOS и Android
* Не требует установки frida на хосте (не нужны frida-tools)
* Расширение команд r2frida с помощью плагинов, работающих в агенте
* Изменение прав доступа к страницам, патчинг кода и данных
* Разрешение символов по имени или адресу и импорт их как флагов в r2
* Запуск команд r2 на хосте из агента
* Использование API r2 и запуск команд r2 внутри удалённого целевого процесса.
* Нативные точки останова с использованием API `:db`
* Доступ к удалённым файловым системам с использованием API `r_fs`.

## Установка

Рекомендуемый способ установки r2frida — через r2pm:

```sh
$ r2pm -ci r2frida
```

Бинарные сборки, не требующие компиляции, скоро будут поддерживаться в
`r2pm` и `r2env`. Тем временем вы можете скачать последние сборки
со [страницы релизов](https://github.com/nowsecure/r2frida/releases).

## Компиляция

### Зависимости

* radare2
* pkg-config (не требуется в windows)
* curl или wget
* make, gcc
* npm, nodejs (скоро будут удалены)

В GNU/Debian вам потребуется установить следующие пакеты:

```sh
$ sudo apt install -y make gcc libzip-dev nodejs npm curl pkg-config git
```

### Инструкции

```
$ git clone https://github.com/nowsecure/r2frida.git
$ cd r2frida
$ make
$ make user-install
```

### Windows

* Установите meson и Visual Studio
* Распакуйте последний zip-архив релиза radare2 в корневой каталог r2frida
* Переименуйте его в `radare2` (вместо radare2-x.y.z)
* Чтобы сделать компилятор VS доступным в PATH (`preconfigure.bat`)
* Запустите `configure.bat`, а затем `make.bat`

## Использование

Для тестирования используйте `r2 frida://0`, так как присоединение к pid0 в frida — это специальная
сессия, которая выполняется локально. Теперь вы можете выполнить команду `:?`, чтобы получить список
доступных команд.

```
$ r2 'frida://?'
r2 frida://[action]/[link]/[device]/[target]
* action = list | apps | attach | spawn | launch
* link   = local | usb | remote host:port
* device = '' | host:port | device-id
* target = pid | appname | process-name | program-in-path | abspath
Local:
* frida://?                        # show this help
* frida://                         # list local processes
* frida://0                        # attach to frida-helper (no spawn needed)
* frida:///usr/local/bin/rax2      # abspath to spawn
* frida://rax2                     # same as above, considering local/bin is in PATH
* frida://spawn/$(program)         # spawn a new process in the current system
* frida://attach/(target)          # attach to target PID in current host
USB:
* frida://list/usb//               # list processes in the first usb device
* frida://apps/usb//               # list apps in the first usb device
* frida://attach/usb//12345        # attach to given pid in the first usb device
* frida://spawn/usb//appname       # spawn an app in the first resolved usb device
* frida://launch/usb//appname      # spawn+resume an app in the first usb device
Remote:
* frida://attach/remote/10.0.0.3:9999/558 # attach to pid 558 on tcp remote frida-server
Environment: (Use the `%` command to change the environment at runtime)
  R2FRIDA_SAFE_IO=0|1              # Workaround a Frida bug on Android/thumb
  R2FRIDA_DEBUG=0|1                # Used to debug argument parsing behaviour
  R2FRIDA_COMPILER_DISABLE=0|1     # Disable the new frida typescript compiler (`:. foo.ts`)
  R2FRIDA_AGENT_SCRIPT=[file]      # path to file of the r2frida agent
```

### Примеры

```sh
$ r2 frida://0     # same as frida -p 0, connects to a local session
```

Вы можете присоединиться, породить или запустить любую программу по имени или pid. Следующая строка присоединится к первому процессу с именем `rax2` (запустите `rax2 -` в другом терминале, чтобы протестировать эту строку)

```sh
$ r2 frida://rax2  # attach to the first process named `rax2`
$ r2 frida://1234  # attach to the given pid
```

Использование абсолютного пути к бинарному файлу для порождения запустит процесс:

```sh
$ r2 frida:///bin/ls
[0x00000000]> :dc        # continue the execution of the target program
```

Также работает с аргументами:

```sh
$ r2 frida://"/bin/ls -al"
```

Для отладки USB-приложений iOS/Android используйте эти действия. Обратите внимание, что `spawn`
можно заменить на `launch` или `attach`, а имя процесса может быть
bundleid или PID.

```sh
$ r2 frida://spawn/usb/         # enumerate devices
$ r2 frida://spawn/usb//        # enumerate apps in the first iOS device
$ r2 frida://spawn/usb//Weather # Run the weather app
```

### Команды

Это наиболее часто используемые команды, поэтому вы должны их выучить и добавлять суффикс `?` для получения справки по подкомандам.

```
:i        # get information of the target (pid, name, home, arch, bits, ..)
.:i*      # import the target process details into local r2
:?        # show all the available commands
:dm       # list maps. Use ':dm|head' and seek to the program base address
:iE       # list the exports of the current binary (seek)
:dt fread # trace the 'fread' function
:dt-*     # delete all traces
```

### Плагины

Плагины r2frida выполняются на стороне агента и регистрируются с помощью API `r2frida.pluginRegister`.

Смотрите каталог `plugins/` для других примеров скриптов плагинов.

```js
[0x00000000]> cat example.js
r2frida.pluginRegister('test', function(name) {
  if (name === 'test') {
    return function(args) {
      console.log('Hello Args From r2frida plugin', args);
      return 'Things Happen';
    }
  }
});
[0x00000000]> :. example.js   # load the plugin script
```

Команда `:.` работает как команда `.` в r2, но выполняется внутри агента.

```sh
:. a.js  # run script which registers a plugin
:.       # list plugins
:.-test  # unload a plugin by name
:.. a.js # eternalize script (keeps running after detach)
```

## Termux

Если вы хотите установить и использовать r2frida нативно на Android через Termux, есть некоторые оговорки с зависимостями библиотек из-за разрешения некоторых символов. Способ заставить это работать — расширить переменную окружения `LD_LIBRARY_PATH`, указав на системный каталог *перед* каталогом библиотек termux.

`$ LD_LIBRARY_PATH=/system/lib64:$LD_LIBRARY_PATH r2 frida://...`

## Устранение неполадок

Убедитесь, что вы используете современную версию r2 (желательно последний релиз или git).

CI тестирует релиз **radare2 6.2.2** и git master. Вспомогательные средства совместимости сохраняют определение абсолютных путей Windows и имена файлов скриптов в кавычках на старых ABI radare2.

Запустите `r2 -L | grep frida`, чтобы проверить, загружен ли плагин. Если ничего не выводится, используйте переменную окружения `R2_DEBUG=1`, чтобы получить отладочные сообщения и выяснить причину.

Если у вас возникли проблемы с компиляцией r2frida, вы можете использовать `r2env` или загрузить сборки релизов со страницы релизов GitHub. Учтите, что должна совпадать только версия MAJOR.MINOR, то есть r2-5.7.6 может загрузить любой плагин, скомпилированный на любой версии между 5.7.0 и 5.7.8.

## Архитектура

```
 +---------+
 | radare2 |     The radare2 tool, on top of the rest
 +---------+
      :
 +----------+
 | io_frida |    r2frida io plugin
 +----------+
      :
 +---------+
 |  frida  |     Frida host APIs and logic to interact with target
 +---------+
      :
  +-------+
  |  app  |      Target process instrumented by Frida with Javascript
  +-------+
```

## Благодарности

Этот плагин был разработан pancake, он же Sergi Alvarez (автор
radare2) для NowSecure.

Я хотел бы поблагодарить Ole André за написание и поддержку Frida, а также
за то, что он так любезно проактивно исправляет ошибки и обсуждает технические детали
всего необходимого, чтобы этот союз работал. Kudos
Скачать инструмент