# Использование встроенного Frida

В FIRERPA встроена последняя версия Frida, поэтому вам не нужно самостоятельно запускать frida-server. Наша встроенная Frida уже включает в себя различные опенсорсные патчи для сокрытия, а также дополнительные функции сокрытия, добавленные нами, поэтому вам не нужно беспокоиться о обнаружении Frida. Если наша встроенная Frida будет обнаружена, это означает, что практически все доступные для скачивания frida-server также будут обнаружены. Поэтому, пожалуйста, используйте ее с уверенностью, вам не нужно беспокоиться об этих мелочах.

```{hint}
Начиная с версии 7.18, для подключения к встроенной FRIDA в FIRERPA требуется параметр token. Конечно, клиентская библиотека уже все обработала за вас. Если вы используете версию до 7.18, пожалуйста, обратитесь к [документации для старых версий](https://github.com/firerpa/lamda/tree/5.0#连接内置的-frida) для получения инструкций по использованию.
```

```{attention}
Начиная с версии 9.0, используемая нами встроенная frida 17.x потребует самостоятельной упаковки frida-java-bridge в скрипт, иначе возникнут ошибки, связанные с `Java not defined`. Это изменение является официальным изменением frida. Согласно официальным инструкциям по изменению, вам необходимо создать новый проект nodejs и импортировать java bridge. Для получения подробной информации, пожалуйста, обратитесь к https://github.com/oleavr/frida-agent-example или используйте наш скрипт `tools/frida_script_generate.py` для повторной упаковки исходного js-скрипта.
```

## Использование через код

При использовании клиентского API FIRERPA вам просто нужно использовать `d.frida`, как показано ниже, чтобы получить экземпляр, подключенный к frida-server, без необходимости самостоятельно создавать соединение с помощью библиотеки frida.

```python
conn = d.frida
conn.enumerate_processes()
```

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

```python
# Получение динамического токена
token = d._get_session_token()

manager = frida.get_device_manager()
conn = manager.add_remote_device("192.168.0.2:65000", token=token)
conn.enumerate_processes()
```

Дальнейшее использование зависит от вас. Теперь у вас есть работающий экземпляр.

## Использование через командную строку

Использование через командную строку может быть немного сложнее, так как нам необходимо обеспечить безопасность вашего устройства. Мы также хотим напомнить вам, чтобы вы не ограничивали свое мышление командами из других статей. Вам нужно обратить внимание, что во многих статьях команды frida содержат параметр `-U`, но у нас его нет. Поэтому, если вы не можете подключиться, убедитесь, что ваша команда строго соответствует примеру.

Прежде чем начать, мы настоятельно рекомендуем использовать команды, такие как `frida`, `frida-itrace`, `frida-trace`, `frida-ps`, через удаленный рабочий стол. В этой среде вам не нужно выполнять никаких дополнительных действий, достаточно просто выполнить `frida` без указания каких-либо других параметров подключения, таких как `-U`, `-H` и т.д.

![Frida](/assets/images/frida-remote-desktop.png)

Раз уж вы читаете дальше, это означает, что вы все еще хотите использовать эту команду на своем компьютере. Теперь вам нужно собрать некоторую информацию в зависимости от вашей установки.
Если ваш FIRERPA был запущен с использованием сертификата службы, вам нужно подготовить этот файл. Кроме того, вам понадобится IP-адрес устройства, к которому вы хотите подключиться, и порт службы FIRERPA (по умолчанию 65000). Обратите внимание, что это не порт Frida 27042, а порт службы FIRERPA. Вам нужно подключаться именно к FIRERPA.

Во-первых, вам нужно использовать API для получения текущего токена. Этот токен представляет собой фиксированную 16-значную строку, например, `czvpyqg82dk0xrnj`. Мы понимаем, что этот способ может быть неудобным, и в будущем мы можем внести некоторые изменения для упрощения использования. Именно поэтому мы выше рекомендовали использовать команды frida через удаленный рабочий стол.

```python
token = d._get_session_token()
print (token)
```

Теперь, когда вы получили токен из вышеуказанного API, предположим, что это `czvpyqg82dk0xrnj`. Давайте начнем составлять команду frida.
Для всех официальных инструментов командной строки frida по умолчанию достаточно добавить параметры `-H 192.168.0.2:65000` и `--token xxxxxxxxxxxxxxxx`, как показано ниже. **Особое, особое, особое внимание**: здесь нет параметра `-U`.

```bash
frida -H 192.168.0.2:65000 -f com.android.settings --token xxxxxxxxxxxxxxxx
```

Если ваш сервер FIRERPA был запущен с использованием сертификата службы, в команду также необходимо добавить параметр `--certificate`.

```bash
frida -H 192.168.0.2:65000 -f com.android.settings --certificate /path/to/lamda.pem --token xxxxxxxxxxxxxxxx
```

Вы, возможно, заметили, что есть всего три отличия: `-U` заменен на `-H`, потому что нам нужно подключаться по сети, а не через USB; добавлен параметр `--token`; и если на сервере включен сертификат службы, добавляется параметр `--certificate`. Это сделано для обеспечения безопасности вашего устройства и предотвращения несанкционированного доступа.

## Использование через командную строку (objection)

Для других инструментов, таких как objection, обычно также предоставляются вышеупомянутые параметры. Однако большинство нестандартных инструментов не добавляют эти параметры полностью. В настоящее время мы пропатчили только objection, что не повлияет на его обычное использование. Но поскольку objection давно не обновлялся, мы не отправляем изменения в основной репозиторий. Вы можете самостоятельно скачать наш патч [objection-1.11.0-command-patch.diff](https://github.com/firerpa/lamda/blob/8.0/tools/objection-1.11.0-command-patch.diff) и применить его к каталогу с установленным кодом objection (путь установки можно узнать с помощью команды `pip3 show objection`).

После этого вы можете использовать его следующим образом. Как видите, просто добавлен параметр `--token`.

```bash
objection -N -h 192.168.0.2 -p 65000 --token xxxxxxxxxxxxxxxx explore
```

Или, если сервер был запущен с использованием сертификата службы, в команду также необходимо добавить `--certificate`.

```bash
objection -N -h 192.168.0.2 -p 65000 --certificate /path/to/lamda.pem --token xxxxxxxxxxxxxxxx explore
```

## Экспорт интерфейсов приложения

Этот раздел был перенесен в главу `Использование Frida для экспорта интерфейсов`.