¿Cómo se enlaza Cystrata / Cydia Substrate en los procesos?

1

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.

    
pregunta Phoebus 21.10.2016 - 23:17
fuente

2 respuestas

1

Se dio cuenta de que aparentemente funciona al agregar el DYLD_INSERT_LIBRARIES en el manifiesto launchd del programa y, por lo tanto, cada vez que se inicia la aplicación, carga la carga útil maliciosa al cargar la biblioteca dinámica.

Sin embargo, ¿existen otras técnicas para realizar enganches / manipulaciones en tiempo de ejecución en Android e iOS?

    
respondido por el Phoebus 22.10.2016 - 00:48
fuente
0

Cycript usa cynject en un sustrato móvil enlace

Cynject usa el puerto de tareas de mach para inyectar y crear un hilo en el proceso objetivo: enlace

mach_port_t self(mach_task_self()), task;
_krncall(task_for_pid(self, pid, &task));
    
respondido por el Haojie Zheng 24.05.2018 - 03:29
fuente

Lea otras preguntas en las etiquetas