Ir para o conteúdo
AZ Tools

Visualizador de plist (binário e XML)

As listas de propriedades são como o macOS e o iOS guardam quase tudo: preferências de aplicações, Info.plist, perfis de configuração, manifestos de cópias de segurança. Metade são XML que se lê num editor, e a outra metade é o formato binário da Apple, que abre como uma parede de bytes começada pelas letras bplist. Esta ferramenta lê os dois. O binário é descodificado a sério em vez de vasculhado à procura de cadeias: o rodapé de 32 bytes no fim do ficheiro diz que largura têm os inteiros de deslocamento e de referência e onde fica a tabela de objetos, e todos os valores são alcançados através dessa tabela, por isso nada se lê avançando a partir do cabeçalho. Inteiros de um, dois, quatro e oito bytes, reais, datas na época própria da Apple, dados em bruto, UID, arrays, conjuntos e dicionários voltam com o tipo intacto. O resultado é mostrado como árvore e oferecido como JSON e como plist XML, de modo que um ficheiro binário que não podia editar passa a poder ser editado. Quando se revela um arquivo NSKeyedArchiver — uma tabela plana de objetos ligados por referências UID, que é o que o iOS escreve para qualquer coisa não trivial — a ferramenta avisa, porque isso explica que o conteúdo não se pareça nada com a estrutura que a aplicação aparenta guardar. Nada é enviado.

Como usar

  1. Largue um ficheiro .plist ou .mobileconfig, ou cole texto de plist XML.
  2. O formato é detetado; os binários indicam quantos objetos contêm.
  3. Leia a árvore: cada linha mostra a chave, o tipo e o valor.
  4. Copie o JSON para processar, ou o plist XML para editar.
  5. Dados e datas são identificados em vez de achatados em cadeias.

Perguntas frequentes

Qual é a diferença entre um plist binário e um XML?
Apenas a codificação. Contêm os mesmos valores e o macOS trata-os como equivalentes. O binário é menor e mais rápido de carregar, por isso quase todos os ficheiros num dispositivo são binários mesmo quando os mesmos dados aparecem documentados como XML.
Porque é que o meu ficheiro são números sem sentido e chaves começadas por $?
Provavelmente é um arquivo NSKeyedArchiver. Guardam uma lista plana de objetos em $objects e ligam-nos por referências UID em vez de os aninhar, por isso a forma que vê é a do arquivo e não a da aplicação. O visualizador assinala isso quando encontra a chave $archiver.
Porque é que noutros sítios as datas ficam 31 anos desfasadas?
A Apple conta segundos a partir de 2001-01-01 e não de 1970-01-01, uma diferença de 978307200 segundos. Ler uma data de plist como carimbo Unix atira-a para os anos setenta; aqui o desfasamento é aplicado e as datas saem certas.
O que acontece aos dados binários?
Mantêm-se como dados e o comprimento é indicado. No JSON aparecem em base64 sob a chave __data_base64, já que o JSON não tem cadeias de bytes, e na saída XML voltam a ser um elemento <data>.
Consegue editar ou escrever um plist binário?
Converte um plist binário para XML, que pode editar e reconverter com o plutil ou qualquer biblioteca de plist. Escrever o formato binário não é função desta ferramenta.
O meu ficheiro é enviado?
Não. É analisado no seu navegador e nada é enviado para um servidor — o que conta nos ficheiros de preferências, que costumam conter nomes de conta e caminhos.

Ferramentas relacionadas