1

В настоящее время я изучаю методы подключения мобильных приложений и сталкиваюсь с такими фреймворками, как Xposed (Android), Frida (Android и iOS) и Cycript (iOS).Как работает cycript/подложка, чтобы подключиться к процессу?

Документация о Xposed и Frida достаточно хорошо объясняет, как именно они это делают. Xposed управляет двоичным запуском процесса Zygote и загрузкой дополнительного JAR-файла, который помогает подключить методы. Документация Frida объясняет, что она использует ptrace (в средах Linux) для присоединения к процессу, распределения и заполнения загрузочного загрузчика, который загружает поток для запуска .so-файла, содержащего агента frida, в двух словах, если я правильно его понял.

Мне не удалось найти полезную документацию о стратегии, которую проводит Cycript. Я знаю, что он построен поверх субстрата Cydia, который выполняет фактическую привязку. Я не мог найти подробностей о том, как именно Субстрат выполняет это.

Я также понимаю, что в iOS объектная среда c-run-run позволяет манипуляции во время выполнения, поскольку она ориентирована на выполнение.

Кто-нибудь знает, как именно Cycript/Cydia-субстрат работает, чтобы зацеплять/вводить в приложения?

Заранее спасибо.

ответ

2

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

Тем не менее, существуют ли другие методы, как выполнять привязку/манипуляции во время выполнения на Android и iOS?

+0

Вы действительно уверены в этом? AFAIK DYLD_INSERT_LIBRARIES предназначен только для iOS, Android использует LD_PRELOAD – Krypton

+0

Согласно книге Джонатана Здзярского «Взлом и защита приложений iOS» на стр. 207, раздел «Полная инфекция устройства», субстрат работает именно так в iOS. – Phoebus

Смежные вопросы