NSUserDefaults

General

NSUserDefaults es uno de los métodos más comunes para guardar las preferencias y propiedades del usuario. Almacena los datos en formato de archivo Property List (PList) en la carpeta de preferencias de la aplicación móvil.

Manual

Directorio de almacenamiento.

/var/mobile/Containers/Data/Application/<app-ID>/Library/Preferences/

Conversión de formato de archivo.

# Linux
## conversión a formato XML
plistutil -i <app-package-name>.plist -o nsuserdefaults.xml

# MacOS / iOS
## conversión a formato XML
plutil -convert xml1 <app-package-name>.plist && cat <app-package-name>.plist > nsuserdefaults.xml
## conversión a formato JSON
plutil -convert json <app-package-name>.plist && cat <app-package-name>.json > nsuserdefaults.json && rm <app-package-name>.json

Exportar archivo NSUserDefaults desde el dispositivo.

scp <user>@<device-ip-address>:/var/mobile/Containers/Data/Application/<app-ID>/Library/Preferences/<app-package-name>.plist <destination-directory>

Búsqueda de información dentro del archivo NSUserDefaults.

# Expresiones regulares
grep -Eorin "<regex>" nsuserdefaults.xml
# Búsqueda por palabras claves
grep -Eorin "<word-1>|<word-2>|<word-3>" nsuserdefaults.xml
# Búsqueda por nombres de "key"
grep -Ei "<key-1>|<key-2>|<key-3>" -A 1 nsuserdefaults.xml

Objection

Visualizar NSUserDefaults de una aplicación.

ios nsuserdefaults get

Exportar NSUserDefaults de una aplicación.

objection --gadget <app-package-name> run "ios nsuserdefaults get" > nsuserdefaults.txt
objection --gadget <process-ID> run "ios nsuserdefaults get" > nsuserdefaults.txt

Filtrar datos del NSUserDefaults de una aplicación.

objection --gadget <app-package-name> run "ios nsuserdefaults get" | grep -Ei "<word-1>|<word-2>|<word-3>"
objection --gadget <process-ID> run "ios nsuserdefaults get" | grep -Ei "<word-1>|<word-2>|<word-3>"

Última actualización