Saltar al contenido
AZ Tools

Visor de plist (binario y XML)

Las listas de propiedades son como macOS e iOS guardan casi todo: preferencias de aplicaciones, Info.plist, perfiles de configuración, manifiestos de copias de seguridad. La mitad son XML que puedes leer en un editor, y la otra mitad son el formato binario de Apple, que se abre como un muro de bytes que empieza por las letras bplist. Esta herramienta lee ambos. El binario se decodifica de verdad en lugar de rastrear cadenas: el tráiler de 32 bytes al final del archivo dice cuánto ocupan los enteros de desplazamiento y de referencia y dónde está la tabla de objetos, y todos los valores se alcanzan a través de esa tabla, así que no hay forma de leer nada avanzando desde la cabecera. Enteros de uno, dos, cuatro y ocho bytes, reales, fechas en la época propia de Apple, datos en bruto, UID, arrays, conjuntos y diccionarios vuelven con su tipo intacto. El resultado se muestra como árbol y se ofrece como JSON y como plist XML, de modo que un archivo binario que no podías editar pasa a ser uno que sí. Cuando resulta ser un archivo de NSKeyedArchiver —una tabla plana de objetos unidos por referencias UID, que es lo que iOS escribe para cualquier cosa no trivial— lo indica, porque eso explica que el contenido no se parezca en nada a la estructura que la aplicación aparenta guardar. No se sube nada.

Cómo usar

  1. Suelta un archivo .plist o .mobileconfig, o pega texto de plist XML.
  2. El formato se detecta solo; los binarios indican cuántos objetos contienen.
  3. Lee el árbol: cada fila muestra la clave, el tipo y el valor.
  4. Copia el JSON si vas a procesarlo, o el plist XML si vas a editarlo.
  5. Los datos y las fechas se etiquetan en vez de aplanarse a cadenas.

Preguntas frecuentes

¿Qué diferencia hay entre un plist binario y uno XML?
Solo la codificación. Contienen los mismos valores y macOS los trata de forma intercambiable. El binario es más pequeño y se carga más rápido, por eso casi todos los archivos de un dispositivo son binarios aunque los mismos datos se documenten como XML.
¿Por qué mi archivo son números sin sentido y claves que empiezan por $?
Probablemente sea un archivo de NSKeyedArchiver. Guardan una lista plana de objetos en $objects y los unen con referencias UID en lugar de anidarlos, así que la forma que ves es la del archivo, no la de la aplicación. El visor lo señala cuando encuentra la clave $archiver.
¿Por qué en otros sitios las fechas salen 31 años desviadas?
Apple cuenta los segundos desde el 2001-01-01 y no desde el 1970-01-01, una diferencia de 978307200 segundos. Leer una fecha de plist como marca de tiempo Unix la deja en los años setenta; aquí se aplica el desfase y las fechas salen bien.
¿Qué pasa con los datos binarios?
Se mantienen como datos y se indica su longitud. En el JSON aparecen en base64 bajo una clave __data_base64, ya que JSON no tiene cadenas de bytes, y en la salida XML vuelven a ser un elemento <data>.
¿Puede editar o escribir un plist binario?
Convierte un plist binario a XML, que puedes editar y volver a convertir con plutil o cualquier biblioteca de plist. Escribir el formato binario no es algo que haga esta herramienta.
¿Se sube mi archivo?
No. Se analiza en tu navegador y no se envía nada a ningún servidor, lo que importa con los archivos de preferencias, que suelen contener nombres de cuenta y rutas.

Herramientas relacionadas