Использование Frida¶
FIRERPA имеет встроенную последнюю версию Frida, поэтому вам не нужно самостоятельно запускать frida-server. Наша встроенная Frida уже включает различные открытые патчи для скрытия, а также дополнительные функции скрытия, добавленные нами. Вам не нужно беспокоиться об обнаружении Frida. Если наша встроенная Frida будет обнаружена, это означает, что большинство frida-server, которые вы можете скачать, также не избегут обнаружения.
Внимание
Начиная с версии 9.0, встроенная Frida 17.x требует, чтобы вы самостоятельно упаковывали frida-java-bridge в скрипт, иначе возникнут ошибки, связанные с 'Java not defined'. Это изменение является официальным изменением Frida. Согласно официальным инструкциям, вам нужно создать проект Node.js и добавить frida-java-bridge. Подробнее см.: https://github.com/oleavr/frida-agent-example , или используйте предоставленный нами pack_frida_script.py для упаковки js-скрипта.
Использование через код¶
Через d.frida можно получить экземпляр, уже подключенный к frida-server, не нужно самостоятельно создавать соединение с помощью библиотеки frida.
conn = d.frida
conn.enumerate_processes()
Конечно, если вы хотите понять его низкоуровневую реализацию, вы можете обратиться к следующему коду.
# Получить динамический токен
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, настоятельно рекомендуется использовать команды frida, frida-trace, frida-ps и т.д. через удалённый рабочий стол, поскольку в этой среде вам не нужно ничего делать, достаточно просто выполнить frida, без указания каких-либо других параметров подключения, таких как -U, -H и т.д. Встроенная среда уже всё настроила по умолчанию.

Если вы дочитали до этого места, значит, вы всё ещё хотите использовать эту команду на компьютере. Теперь вам нужно собрать некоторую необходимую информацию в зависимости от способа установки/запуска службы. Если вы используете сертификат службы, вам нужно подготовить файл сертификата, а также IP-адрес целевого устройства и порт службы FIRERPA (по умолчанию 65000). Обратите внимание, этот порт не является портом Frida 27042.
Далее, вам нужно сначала использовать API для получения текущего токена, который представляет собой строку из 16 символов, например czvpyqg82dk0xrnj. Мы знаем, что этот способ может быть несколько неудобным, но безопасность вашего устройства важнее.
token = d._get_session_token()
print(token)
Теперь, вы получили токен из вышеуказанного интерфейса, предположим, что это czvpyqg82dk0xrnj, и начинаем писать команду Frida. Для всех официальных инструментов командной строки Frida по умолчанию достаточно добавить параметр -H 192.168.0.2:65000 и --token xxxxxxxxxxxxxxxx, например, как показано ниже.
frida -H 192.168.0.2:65000 -f com.android.settings --token xxxxxxxxxxxxxxxx
Если при запуске сервера FIRERPA также использовался сертификат службы, в команду нужно добавить параметр --certificate.
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 давно не обновлялся, мы не отправляли изменения в upstream. Вы можете скачать предоставленный нами objection-1.11.0-command-patch.diff и применить этот патч к каталогу с установленным objection (путь установки можно узнать командой pip3 show objection).
После этого вы можете использовать его следующим образом, и можно заметить, что добавлен только параметр --token.
objection -N -h 192.168.0.2 -p 65000 --token xxxxxxxxxxxxxxxx explore
Или, если при запуске сервера использовался сертификат службы, в команду нужно также добавить --certificate.
objection -N -h 192.168.0.2 -p 65000 --certificate /path/to/lamda.pem --token xxxxxxxxxxxxxxxx explore
Экспорт интерфейса приложения¶
Этот раздел перемещён в главу Экспорт интерфейса Frida.