1. ¿Qué es Frida?
Frida es un toolkit de instrumentación dinámica. Permite “inyectar” código (generalmente scripts en JavaScript) dentro de una aplicación que ya se está ejecutando en un dispositivo Android o iOS, para observar o modificar su comportamiento en tiempo real sin necesidad de tener el código fuente ni de recompilar la app.
2. Detalles importantes a considerar (Errores con algunas versiones)
Algunas versiones de Frida son incomptatibles con Objection, por lo que debes instalar una versión especifica de Frida. Los siguientes enlaces dan más detalles al respecto, pero este post abarcará la instalación que hasta enero del 2026 me ha funcionado.
3. Instalación de Frida
Para usar Frida requieres lo siguiente:
- Frida Server
- Instalada en el celular (iOS)
- Frida Client
- Instalada en la computadora
- Ambas versiones deben coincidir y estar ejecutandose en tus dispositivos
3.1 Instalación de UV
curl -LsSf https://astral.sh/uv/install.sh | sh
# source $HOME/.local/bin/env (sh, bash, zsh) # source $HOME/.local/bin/env.fish (fish)3.2 Instalación de Frida client (computadora)
Instalar Frida en una versión en especifico
- Compatible con Objection y Frida 16.5.2
mkdir 16.5.2 && cd 16.5.2
# Inicializa el proyecto uvuv init
# Añade frida, frida-tools y objectionuv add frida==16.5.2 frida-tools objection==1.12.3
# Activa el entorno virtualsource .venv/bin/activate
# Verifica la versión instaladafrida --version- Para una versión de python en especifico
uv init --python 3.12
Opcionalmente puedes crear un alias
echo "alias uvs='source .venv/bin/activate'" >> ~/.bashrcRecuerda que estás en un entorno virtual gestionado por uv, para salir del entorno virtual
deactivate3.3 Instalación de Frida server (celular)
1) Obten la versión
IP=10.1.1.1ssh root@$IP2) Desinstalas cualquier instalación previa de Frida
sudo dpkg -r frida; sudo dpkg -P re.frida.server3) Descarga Frida Server para iOS
# La versión debe coincidir con la que usarás en tu computadoraVERSION=16.5.2
# ARM rootfulwget https://github.com/frida/frida/releases/download/${VERSION}/frida_${VERSION}_iphoneos-arm.deb
# ARM 64 rootlesswget https://github.com/frida/frida/releases/download/${VERSION}/frida_${VERSION}_iphoneos-arm64.deb- Si no tienes
wgetinstalado puedes instalarlo consudo apt install wget
4) Instalas la versión especifica
# Rootfulsudo dpkg -i frida_${VERSION}_iphoneos-arm.deb
# Rootlesssudo dpkg -i frida_${VERSION}_iphoneos-arm64.deb- Verifica que sea tu archivo. Variará acorde a la versión.
5) Verifica que el servicio esté corriendo
dpkg -L re.frida.server | grep frida-server6) Ver la versión
frida-server --version4. Comandos de Frida
4.1 Dentro del entorno virtual
Listado de dispositivos
frida-ls-devicesEn caso de error
El error:
6db3dae8840d746d090d5bcffa20f92ba2fffeee usb iOS Device
Segmentation faultSolución:
sudo systemctl restart usbmuxd.service- vuelves a correr
frida-ls-devices
Listado de apps instaladas
frida-ps -UaiEjecución de un script
4.2 Ejecuciones rápidas - fuera del entorno virtual
Frida + script
Puedes correr una especie de contenedor efimero con uv. Por ejemplo, para correr un script.
FRIDA_VERSION=16.5.2OBJECTION_VERSION=1.11.0APP_NAME="com.app.app"
uv run --with frida==$FRIDA_VERSION --with frida-tools --with objection==$OBJECTION_VERSION frida -U -f $APP_NAME -l script.jsFrida ls devices
Puedes correr una especie de contenedor efimero con uv. Por ejemplo, para correr un script.
FRIDA_VERSION=16.5.2
uv run --with frida==$FRIDA_VERSION --with frida-tools frida-ls-devices
uv run --with frida==$FRIDA_VERSION --with frida-tools frida-ps -UaiAnexo - Objection y versiones de Frida (probadas)
Objection no funciona de forma consistente en todas las versiones de Frida y versiones de iOS. Según mis pruebas, este es el “resumen confiable”
| Dispositivo | Versión de iOS | Jailbreak | Passcode | Versión Frida | Versión Objection | ios keychain dump |
|---|---|---|---|---|---|---|
| iPad 7th | 18.7.4 | rootful palera1n | No, nunca | 17.8.0 | objection: 1.12.3 | Solo funcionó una vez |
| iPhone 8 - Negro | 16.7.14 | rootful palera1n | No, nunca | 16.5.2 | objection: 1.12.3 | Sí |
| iPhone 8 - Blanco | 16.7.11 | rootful palera1n | No, nunca | 16.5.2 | objection: 1.12.3 | Sí |
- Si no inicia a la primera
objectionpuedes abrir la app y volverlo a correr
Nota final¡Gracias por terminar de leer este artículo! uwur
— El Capitán
¿Tienes alguna duda o te gustaría comentar algo sobre este artículo?
Puedes encontrarme en: