Como o documento é gerado
Esta página descreve como o ChatExport produz um documento e o que cada parte dele realmente sustenta. A segunda metade é a mais útil: o que o programa não consegue recuperar e o que sobra no documento quando ele não consegue. Um documento vale mais quando ele mesmo diz onde estão os seus limites do que quando a outra parte os encontra.
São duas fontes, e elas não têm a mesma força. Um backup de iPhone é um banco de dados que o próprio software da Apple escreveu. Uma exportação do WhatsApp é um registro que o WhatsApp emitiu porque alguém pediu. Tudo o que vem abaixo vale para o backup, salvo quando estiver dito outra coisa, e a seção sobre exportações do WhatsApp diz exatamente onde passa a diferença.
De onde vem o texto
As mensagens são lidas do banco de dados do Mensagens que o programa da própria Apple gravou dentro do backup no seu PC. Nada é redigitado, fotografado nem lido de volta a partir da imagem de uma tela.
-
O ChatExport encontra esse banco de dados dentro do backup pelo caminho fixo
HomeDomain/Library/SMS/sms.db, em todas as estruturas de pasta que a Apple já usou. -
O log de escrita do banco, o
sms.db-wal, é copiado junto e aplicado sobre a cópia, nunca dentro do seu backup. É pular esse passo que faz as mensagens mais recentes sumirem caladas de uma exportação. - O backup em si nunca é alterado. O ChatExport abre o backup somente para leitura e trabalha numa cópia própria, numa pasta temporária: depois da leitura, o backup fica byte a byte como o software da Apple o escreveu, e nada aparece na pasta dele, nem mesmo arquivos de trabalho.
- A estrutura desse banco mudou várias vezes entre as versões do iOS. O programa detecta qual estrutura está vendo e se adapta, e é por isso que um backup de um celular que você nem tem mais continua abrindo. Do iOS 11 até a versão atual.
- Horários, horas de entrega e de leitura, reações, respostas, edições e os registros de anexos saem das mesmas linhas em que está o texto. Eles são lidos, não deduzidos.
Quando a fonte é uma exportação do WhatsApp
A segunda fonte é o arquivo que o WhatsApp grava quando você escolhe «Exportar conversa»: ou um
.zip com as mídias ao lado do registro, ou um .txt puro sem elas. Quem
lê é o mesmo programa e o documento que sai é o mesmo, mas como prova esse material é mais fraco
que um backup, e o documento diz isso em vez de apresentar as duas fontes como iguais.
- O documento nomeia a fonte dele. Toda exportação feita a partir de um arquivo do WhatsApp leva duas linhas a mais no cabeçalho: o nome desse arquivo e o hash SHA256 dele. Um documento feito a partir de um backup de iPhone faz a mesma coisa um nível abaixo: a página «Integridade do documento» traz o SHA-256 do banco de mensagens exatamente como o backup o guarda. Os dois tipos de documento podem, assim, ser rastreados até o arquivo de que foram lidos.
- Dois hashes, duas afirmações diferentes. O da seção seguinte cobre o arquivo que o ChatExport gravou e diz que ele não mudou desde então. O hash da origem cobre o arquivo que o WhatsApp gravou e diz que este documento saiu daquele arquivo e não de outro. Guarde o arquivo de exportação exatamente como o WhatsApp salvou, do mesmo jeito que você guardaria a pasta de um backup.
- O arquivo não traz fuso horário. Os horários dele são lidos no fuso do computador onde a importação é feita. A tela de importação diz isso antes de você exportar qualquer coisa, e a folha de rosto nomeia esse fuso. Se a conversa aconteceu em outro lugar, os horários impressos são os deste computador, não os do celular.
- O arquivo não diz quem exportou. Num registro os dois lados se parecem, então o ChatExport pergunta qual dos participantes é você, e nada segue adiante enquanto você não responder. Chutar por quem escreveu mais, ou por quem escreveu primeiro, erraria com frequência suficiente para não servir como prova.
- As linhas sobre o próprio grupo ficam de fora e são contadas. Alguém que entra, uma mudança de nome, uma chamada perdida, o aviso da criptografia: têm horário, mas não têm remetente. Ficam de fora, o número delas é contado e a tela de importação mostra esse número. Tirar em silêncio seria esconder parte do arquivo de quem está se apoiando nele.
Como a ordem da data é decidida
Uma exportação do WhatsApp não diz nada sobre o celular que a gerou, então «03.04.2026» é 3 de abril ou 4 de março conforme a configuração daquele aparelho, e ler ao contrário desloca todas as datas do documento. A decisão é tomada uma vez só, sobre todos os horários do arquivo ao mesmo tempo, e a tela de importação mostra tanto a decisão quanto o que a resolveu.
| O que resolve | O que a tela diz |
|---|---|
| Um ano completo no começo, como em 2026-04-03 | Certo, o arquivo escreve o ano completo primeiro. |
| Um componente maior que 12, em qualquer ponto do arquivo | Certo, uma data do arquivo resolve. |
| A ordem do próprio arquivo. Uma exportação começa pela mensagem mais antiga, então só uma leitura das datas anda para a frente no tempo | Certo, só esta leitura anda para a frente no tempo. |
| Nada disso, que é o caso quando a conversa cabe dentro de um único mês | Presumido, dia antes do mês. Nada no arquivo decide isso. |
A última linha é o motivo de existir tudo o que vem antes. Uma interpretação que ninguém consegue conferir não tem lugar num documento que vai para a Justiça, então a diferença entre «lemos isso do arquivo» e «presumimos isso» aparece na tela antes da exportação, e com essas palavras.
O que o hash SHA256 cobre
Quando o documento fica pronto e é gravado em disco, o programa lê esse arquivo de volta e calcula um hash SHA256 dele, byte por byte. Todo formato ganha um, não só o PDF: um CSV que vai parar na mão de um advogado merece o mesmo tratamento.
- O hash aparece na tela final, com um botão para copiar.
-
Ele também é gravado ao lado da exportação como
<arquivo>.sha256, no formato que ocertutil -hashfileno Windows e osha256sum -cem outros sistemas já entendem. Qualquer pessoa pode reconferir o arquivo depois sem precisar deste programa. - Ele cobre o arquivo inteiro. Altere um único caractere em qualquer ponto e o hash deixa de bater.
Ou seja, ele prova uma coisa só: que este arquivo é o arquivo que saiu da exportação. Ele não prova nada sobre o que aconteceu no celular. É um lacre em um documento, não uma testemunha de uma conversa.
Como o hash é calculado depois que o documento está completo, ele não tem como ser impresso dentro do documento que descreve. É por isso que ele fica na tela e no arquivinho ao lado da exportação, e por isso vale anotar no momento em que você protocola.
Uma segunda exportação não vai ter o mesmo hash, e isso está certo
Exporte a mesma conversa do mesmo backup duas vezes e os dois arquivos não vão compartilhar a mesma impressão digital. Cada página de rosto registra o momento em que aquele documento foi feito, então os dois diferem nessa linha, e um único caractere diferente já muda o hash inteiro.
Isso não é defeito. O hash nunca foi um identificador de uma conversa. Ele identifica um arquivo. O que faz uma segunda exportação valer alguma coisa é ela ler igual, saindo do mesmo backup. Por isso guarde a pasta do backup junto com o documento e não mexa nela: em uma discussão sobre autenticidade, o que costuma sustentar a história é o backup original, não o PDF. Esperar que duas exportações batam byte a byte é esperar a coisa errada.
Um segundo hash aponta de volta para o backup
O hash acima responde a uma pergunta: se o arquivo mudou depois de escrito. A página «Integridade do documento» responde à outra, de onde o documento veio. Ela traz o SHA-256 do banco de mensagens exatamente como o backup o guarda, e cita o log de escrita em separado quando o backup continha um ainda não aplicado, ao lado do nome do aparelho, da versão do iOS e da data do backup.
Quem tiver o mesmo backup pode recalcular esses hashes e confirmar que o documento foi produzido a partir daqueles arquivos, sem este programa. Como os arquivos são lidos do jeito que o backup os guarda, os valores de um backup criptografado podem ser reproduzidos sem conhecer a senha dele. A mesma página registra, no próprio documento, que o backup foi aberto somente para leitura e não foi modificado.
Fusos horários
O banco de dados guarda cada mensagem como um instante, contado a partir de 2001, sem nenhum
fuso horário preso a ele. O programa converte todos esses instantes para a hora local do
computador que está fazendo a exportação, e a página de rosto nomeia esse fuso uma vez, no
formato America/Sao_Paulo (UTC-03:00). Depois disso, as linhas das mensagens levam
só o horário, sem repetir o deslocamento em cada linha.
Daí saem duas consequências, e é melhor conhecer as duas antes de a outra parte levantar.
- A mesma conversa exportada em dois computadores configurados em fusos diferentes mostra horários diferentes. Uma mensagem enviada perto da meia-noite pode aparecer sob um separador de data diferente, porque os separadores de dia são montados a partir da mesma hora local que os horários.
- A ordem nunca muda. As mensagens são lidas na ordem do instante gravado, então nenhuma configuração de fuso consegue reordenar uma conversa.
A exportação em CSV mantém o deslocamento completo em cada um dos horários. É esse o formato para usar quando uma conversa atravessa uma mudança de horário de verão e o minuto exato é justamente o ponto em discussão.
A página de rosto registra também quando a própria exportação foi feita, com precisão de minuto, no mesmo fuso.
De onde vêm os números das mensagens
Com a numeração ligada, cada mensagem do documento leva um número, de #1 a #N, na ordem em que foram enviadas. A Visão Judicial liga isso sozinha, junto com o resto do detalhe verificável. A Visão Conversa deixa desligado até você pedir.
- A numeração corre pelo documento inteiro em vez de recomeçar a cada página. “#143” é a mesma mensagem na página 2 e na página 40.
- Uma resposta imprime o número da mensagem que ela responde, “em resposta a #87”, sempre que essa mensagem estiver dentro da mesma exportação.
- A Visão Judicial coloca o número dentro da linha da transcrição. A Visão Conversa pendura o número na margem, ao lado do balão, para a conversa em si ficar exatamente como ela sai do backup.
Um limite decide como esse número deve ser citado. O número é uma posição neste documento, não um identificador que o celular carrega. Exporte um período mais estreito e a mesma mensagem recebe outro número. Uma citação só fica sem ambiguidade junto com um arquivo determinado, e essa é a segunda razão para anotar o hash dele: “mensagem #47 da exportação cujo SHA256 começa em 3f9a” aponta para exatamente uma coisa.
Nomes, e os números por trás deles
Os nomes de contato vêm da agenda que está dentro do próprio backup, o
AddressBook.sqlitedb que a Apple grava em todo backup. O número ou endereço que está
na mensagem é comparado com essa agenda, e o documento imprime o nome.
- Um nome em um celular é o que o dono do aparelho digitou. O número de telefone ou o endereço de e-mail é a parte que quem lê consegue conferir contra alguma outra coisa. Por isso a página de rosto sempre lista os participantes com o número cru ao lado do nome, tanto na Visão Conversa quanto na Visão Judicial.
- A Visão Judicial imprime o número ao lado do nome em cada mensagem também. A Visão Conversa não faz isso, a menos que você ligue.
- Quando nenhum contato corresponde, sai o número ou o e-mail cru. Nenhum nome é inventado, e um backup sem agenda legível simplesmente mostra números do começo ao fim.
-
O banco de dados não tem como dizer qual número pertence ao dono do celular, porque as
mensagens enviadas não carregam número nenhum. Esse número é lido do
Info.plistdo próprio backup, ou você digita. Quando nenhum dos dois fornece, a página de rosto nomeia o dono sem número, em vez de chutar um.
O que não dá para recuperar
A recuperação tem limites duros. Eles estão aqui, cada um com o que sobra no documento, porque “o texto sumiu, mas o registro de que algo foi enviado e retirado não” é a diferença entre um documento que se sustenta e um que não se sustenta.
| A situação | O que fica no documento |
|---|---|
| Uma mensagem apagada do celular nos últimos 30 dias mais ou menos, no iOS 16 ou posterior | Recuperável. O iOS move a mensagem para Apagadas Recentemente em vez de apagar de vez, e essa área está dentro do backup. A chave vem desligada, porque essas mensagens não estão na conversa do jeito que o celular mostra hoje. Ligada, elas aparecem no lugar delas, marcadas com a data em que foram apagadas onde o iOS registrou uma, e contadas em separado na página de rosto. |
| Uma mensagem que já tinha sumido do celular quando o backup foi feito e é mais antiga que essa janela, ou que foi apagada em um iOS sem a área de apagadas recentemente | Nada. Ela não está no banco de dados, então não está no backup, e nenhum software lê o que não existe. O documento também não mostra buraco nenhum, porque não sobrou nada para marcar. |
| O texto de uma mensagem que o remetente retirou | As palavras sumiram dos dois celulares e ninguém recupera. O registro de que uma mensagem foi enviada naquele minuto e depois retirada continua lá. O documento mantém a linha e escreve isso, em vez de fechar o espaço como se nunca tivesse havido nada ali. |
| Um texto anterior de uma mensagem editada que o iOS não guardou | Onde o iOS guardou as versões anteriores, o histórico de edição imprime cada uma delas abaixo do texto atual, com o horário em que foi substituída. Onde ele não guardou nenhuma, o documento só consegue dizer que a mensagem foi editada. |
| Uma conversa que só existe no iCloud, sem backup local neste PC | Não há o que ler. O programa lê uma pasta de backup do seu próprio disco e não faz login em lugar nenhum. Faça um backup local com o programa da Apple e tudo o que estiver nele passa a ser legível. |
| Mensagens antigas que o backup nunca teve, porque Mensagens no iCloud deixou tudo na nuvem ou porque Manter mensagens estava em 30 dias ou 1 ano | Nada, e essa é a falta que não deixa rastro nenhum: a conversa simplesmente começa depois do que você lembra, e no documento não tem nada dizendo por quê. As duas configurações são lidas do backup, não adivinhadas, e a tela de exportação avisa antes de você exportar qualquer coisa. Quando as duas pontas do período coberto são conhecidas, a tela mostra também essas datas, para você comparar com a sua própria memória; meio período nunca é mostrado, porque convidaria à conclusão errada sobre a outra metade. Num backup comum não aparece nada. |
| Um anexo que o backup não contém | O nome do arquivo, impresso e identificado como arquivo ausente. Nada é substituído, e nenhum espaço reservado se disfarça de foto. |
| Vídeos e áudios, como mídia que se possa reproduzir | Aparecem no ponto em que foram enviados, com nome do arquivo, tamanho e horário, e ficam reunidos em um índice no fim do documento se você pedir. Um PDF não toca vídeo, e fingir o contrário deixaria o documento com cara de mais completo do que ele é. |
| A hora em que uma mensagem do WhatsApp foi editada ou apagada | A exportação registra que aconteceu, nunca quando. O documento marca as duas coisas e deixa a hora em branco em vez de colocar ali a hora de envio, o que seria imprimir uma hora de edição que ninguém registrou. Um aviso de exclusão vira uma mensagem retirada e sem texto, para que se leia como retirada e não como palavras escritas por quem enviou. |
| Confirmações de entrega e de leitura, reações e o vínculo das respostas numa conversa do WhatsApp | Nada. O WhatsApp não escreve isso no arquivo de exportação, então essas partes do documento não aparecem, em vez de aparecerem vazias. Estão todas presentes nas mensagens do iPhone, onde o banco de dados registra. |
| Messenger, Signal, Telegram e todos os outros aplicativos | Não são lidos, ponto. As duas fontes são o banco de dados do Mensagens do iPhone (SMS, MMS, RCS e iMessage) e o arquivo de exportação do próprio WhatsApp. Todo o resto guarda o histórico em formato próprio, e fazer direito nem que seja um deles é outro trabalho. |
As duas chaves de recuperação, mensagens apagadas e histórico de edição, vêm desligadas nos dois estilos de PDF. Elas mudam quais mensagens o documento contém, e não o quanto cada uma mostra, e ligá-las em silêncio faria o documento divergir do celular de onde ele saiu.
Em que idioma o documento é redigido
No que você escolher entre catorze, e é uma escolha separada do idioma do programa: português nas formas brasileira e europeia, inglês, polonês, alemão, francês, espanhol, italiano, neerlandês, tcheco, romeno, sueco, ucraniano e russo. Dá para trabalhar em inglês e levar à Vara de Família um documento em português.
- As mensagens nunca são traduzidas. Elas são reproduzidas exatamente como foram enviadas, no idioma em que as duas pessoas escreviam. Uma exportação cuja prova tivesse passado por um tradutor automático seria um documento diferente do que está no telefone, e este programa não produz isso.
- O que o idioma cobre é a moldura. A página de rosto, a declaração de integridade, a descrição do que foi exportado e do que ficou de fora, as estatísticas, os rótulos ao lado de cada dado e o jeito de escrever datas e horas. Cada idioma foi escrito para esse conjunto inteiro, e é por isso que a lista tem catorze e não cinquenta: um idioma só entra quando não sobra nada da moldura em outro.
O que a Visão Judicial liga
Escolher a Visão Judicial liga todo detalhe que o backup já guarda: horários completos com segundos, a data em cada mensagem em vez de só na primeira do dia, os números dos remetentes ao lado dos nomes, horas de entrega e de leitura onde o backup registrou, a numeração das mensagens e o nome de arquivo original com o tamanho na legenda embaixo de cada foto. A Visão Conversa deixa tudo isso desligado, porque um documento feito para ser lido não é o mesmo documento que um feito para ser conferido. Nenhum dos dois estilos altera uma única mensagem.
O que esta página não é
Ela descreve o que o software faz. Ela não é uma promessa sobre aceitação. O ChatExport reproduz o que está no backup; se um documento específico vai ser aceito em um caso específico depende do juízo, do caso e do juiz. Essa é a segunda pergunta, e quem responde é um advogado, não um programa. Nada aqui é orientação jurídica.
Contato
Se alguma coisa nesta página não responde exatamente a sua dúvida, pergunte: support@getchatexport.com.