Attualmente sto facendo qualche ricerca sulle tecniche di aggancio delle applicazioni mobili e ho trovato alcuni framework come Xposed (Android), Frida (Android e iOS) e Cycript (iOS).
La documentazione su Xposed e Frida è abbastanza buona che spiega come lo stanno facendo esattamente. Stati di Xposed per manipolare il binario che avvia il processo Zygote e carica un file JAR aggiuntivo che aiuta ad agganciare i metodi. La documentazione di Frida spiega che usa ptrace (in ambienti Linux) per collegarsi a un processo, allocando e popolando un bootstrapper che carica un thread per avviare un file .so contenente l'agente frida, in poche parole, se ho capito bene.
Non sono riuscito a trovare documentazione utile sulla strategia perseguita da Cycript. So che è costruito sopra Cydia Substrate che fa il vero aggancio. Non sono riuscito a trovare dettagli su come esattamente Substrate compie questo.
Comprendo inoltre che su iOS il runtime oggettivo-c consente la manipolazione del runtime in quanto è orientato al runtime.
Qualcuno sa esattamente come funziona Cycript / Cydia Substrate per agganciare / iniettare nelle applicazioni?
Grazie in anticipo.