Actualmente estoy investigando sobre técnicas para conectar aplicaciones móviles y encontré algunos marcos como Xposed (Android), Frida (Android e iOS) y Cycript (iOS).
La documentación sobre Xposed y Frida es bastante buena para explicar cómo lo están haciendo exactamente. Xposed estados para manipular el binario iniciando el proceso Zygote y cargando un archivo JAR adicional que ayuda a enganchar los métodos. La documentación de Frida explica que usa ptrace (en entornos Linux) para adjuntarse a un proceso, asignando y completando un bootstrapper que carga un hilo para iniciar un archivo .so que contiene el agente frida, en pocas palabras, si lo entendí correctamente.
No pude encontrar documentación útil sobre la estrategia que persigue Cycript. Sé que está construido sobre el sustrato Cydia que hace el enganche real. Tampoco pude encontrar detalles sobre cómo exactamente el Substrato logra esto.
Además, entiendo que en iOS, el tiempo de ejecución object-c permite la manipulación del tiempo de ejecución, ya que está orientado hacia el tiempo de ejecución.
¿Alguien sabe exactamente cómo funciona el sustrato Cycript / Cydia para enganchar / inyectar aplicaciones?
Gracias de antemano.