Análise Técnica · Prova Digital

Relatório da PF no caso Vorcaro–Moraes: o que o WhatsApp registrou, o que o IPED mostra e o que ninguém pode afirmar

Uma auditoria de método sobre a IPJ-A 3298613/2026 — com o código-fonte do IPED 4.2.2 e a documentação da Apple abertos ao lado

·11 min de leitura
Rafael Chiara, fundador da Cyberlex
Rafael Chiara
Fundador da Cyberlex

Cada ícone das figuras que circularam na última semana foi interpretado publicamente, e poucos foram interpretados corretamente — não por má-fé, mas porque ler um ícone exige saber qual programa o desenhou e o que ele leu do banco de dados para desenhá-lo. Este texto faz esse trabalho com o código-fonte da ferramenta aberto ao lado.

Todo mundo leu o relatório. Ou leu a matéria sobre o relatório, que reproduzia as figuras do relatório. Bolhas verdes, fundo de rabiscos, “Mensagem apagada pelo remetente” cinco vezes seguidas, um ícone redondo com o número 1, dois tracinhos ao lado da hora.

O que segue não discute quem tem razão no caso. Discute o que o documento demonstra, o que ele não distingue, e o que a cópia que circula não permite verificar.

O que o documento é — e o que não é

A peça divulgada em 1º de setembro, com sigilo levantado, é a Informação de Polícia Judiciária de Análise nº 3298613/2026, do NADIP/DFIN da Polícia Federal, 218 páginas, produzida no âmbito da Operação Compliance Zero. Analisa a extração do iPhone de Daniel Vorcaro, apreendido em 18 de novembro de 2025.

Dois detalhes do cabeçalho importam mais do que parecem.

Primeiro: não é laudo pericial. A extração e o hash estão em documento separado, o Laudo nº 4281/2025 do SETEC. A IPJ-A é análise investigativa, assinada por quatro agentes e quatro delegados — nenhum perito. É a distinção entre documento investigativo e laudo de exame que tratei em Ninguém abriu o arquivo, agora em caso público: interpretações sobre padrão de comportamento e correlação de eventos são conclusões de investigador, com o peso que isso tem.

Segundo: o relatório declara ter usado duas ferramentas — IPED 4.2.2 e Cellebrite Reader 10.7.1.5013. Isso vai importar adiante, porque as figuras misturam as duas sem dizer qual gerou o quê.

O que o relatório faz bem

Uma auditoria honesta começa pelo crédito, e há crédito real.

A metodologia correlaciona quatro fontes independentes para cada envio: abertura do aplicativo Notas, evento de captura de tela, criação de um PDF residual em pasta temporária, e o registro de envio no WhatsApp — tudo com horário. Apresenta os horários em UTC e UTC−3 lado a lado, e avisa expressamente, na p. 40, que os registros do WhatsApp estão em UTC−3 e os logs em UTC. É o erro clássico de fuso tratado de frente.

O documento também se autolimita: 72 horas de prazo, análise expressamente não exaustiva, apenas menções nominais diretas. Isso é rigor, não fraqueza.

E a premissa técnica mais questionada publicamente — a de que tirar um print no Notas gera um PDF — está correta. O relatório a apresenta com um “entende-se que”, como inferência. Mas há fonte primária: a Apple documenta, desde o iOS 13, a classe UIScreenshotService do UIKit, descrita como “um objeto que coordena a criação de capturas de tela em PDF do conteúdo de um aplicativo”. Quando o usuário tira um screenshot, o sistema pede ao aplicativo uma representação em PDF do conteúdo completo — é o que alimenta a opção “Página Inteira”, e Notas e Safari a implementam. O PDF nasce no instante da captura e é depositado em área temporária; a Apple documenta que arquivos em tmp não têm garantia de permanência, mas tampouco de exclusão imediata. Isso explica o PDF no mesmo segundo do print, e explica o resíduo semanas depois.

A crítica aqui é de documentação, não de método: uma linha citando a API converteria inferência em fato e fecharia de antemão o quesito que a defesa pode formular. O que segue sem explicação é o nome da pasta, com.apple.coherence — nem o relatório nem a documentação pública dizem o que esse serviço é.

O que as figuras não podem dizer — pelo código

As telas de conversa reproduzidas nas pp. 37 a 41 não são capturas do WhatsApp nem do Cellebrite. São o visualizador HTML de WhatsApp do IPED — bolha verde, papel de parede de rabiscos, cabeçalho “WhatsApp Chat –”. O IPED é software livre, mantido pela própria Polícia Federal, e a versão declarada está fixada em uma tag pública. Baixei a tag 4.2.2 e li o que o parser faz. Três achados.

Os dois tracinhos são verdes — e verde significa entregue, não lido

No visualizador, os estados sent e delivered desenham o mesmo ícone em verde-sálvia #92A58C; o estado viewed usa azul #4FC3F7. Quem quiser conferir precisa saber onde olhar: os hexadecimais não aparecem como texto na folha de estilo — os quatro ícones são SVG embutidos em base64 dentro de background-image, e a cor está no atributo de preenchimento de cada um, depois de decodificado.

O estado vem do campo ZMESSAGESTATUS do banco do iOS: valor 6 é entregue, valor 8 é visualizada. As mensagens exibidas nas figuras trazem o duplo tracinho verde — status 6. Não há azul em nenhuma delas.

Quem olhou as figuras e viu “verde” viu certo — mas verde, no IPED, é o que o WhatsApp mostra em cinza. Confirmação de entrega, não de leitura. Se as mensagens foram lidas continua indeterminado, inclusive porque a confirmação de leitura pode estar desativada no aparelho do destinatário. O que não se sustenta é a leitura oposta: o ícone não mostra que viram. Mostra que chegou.

# banco do iOS → o que o IPED desenha ZMESSAGESTATUS = 6 → classe delivered → ícone verde #92A58C ZMESSAGESTATUS = 8 → classe viewed → ícone azul #4FC3F7 # nas figuras do relatório, todos os ícones são verdes

O ícone de visualização única nunca muda de estado

O visualizador imprime um único elemento estático — uma constante <img class="vo">, escrita uma vez no código — para toda mensagem de visualização única, sem variante para “aberta” ou “não aberta”. E o extrator do iOS classifica visualização única exclusivamente pelo tipo da mensagem, os valores 38, 39 e 53 de ZMESSAGETYPE, sem ler qualquer campo de estado de abertura: as três únicas menções a visualização única no extrator são essas atribuições por tipo.

Portanto, se o destinatário abriu as mensagens de visualização única é indeterminável a partir do render do IPED — não porque o dado não exista no aparelho, mas porque a ferramenta não o extrai. Isso é fato de código, não opinião.

O relatório, aliás, é preciso nesse ponto: afirma que houve envio de cinco mensagens de visualização única e que os logs registram cinco envios. Não afirma que foram abertas. A narrativa pública é que extrapolou.

“Mensagem apagada pelo remetente” é revogação ativa — e o horário exibido não é o da revogação

Na p. 37, cinco mensagens do contato salvo no aparelho como “Alexandre de Moraes BRASILIA” — que o relatório identifica como o ministro Alexandre de Moraes, do STF — aparecem em 1º de outubro com esse texto. Logo acima, o aviso, de 17 de setembro, de que a conversa passou a ter mensagens temporárias de 24 horas. O relatório encadeia as duas coisas sem distingui-las, e o leitor conclui que sumiram pelo temporizador.

Não é o que o dado diz. Mensagem que expira por temporizador é removida do banco sem deixar marca visível. “Mensagem apagada pelo remetente” é o texto que o WhatsApp grava quando quem enviou usa “apagar para todos” — ato deliberado, com tipo de mensagem próprio.

Daí duas perguntas que o relatório exibe e não responde.

A primeira: se o temporizador de 24 horas estava ativo, cinco marcas de revogação sobreviveram 47 dias no banco de dados vivo — e estavam vivas, não recuperadas, porque o IPED imprime um rótulo visível e um ícone próprio abaixo de toda mensagem que veio de registro apagado, e nenhuma das cinco o tem. Ou a marca de revogação não herda a expiração, ou o temporizador não incidiu sobre aquelas mensagens. O documento não diz qual.

A segunda é mais relevante: o horário na bolha — 22:18:21 — é o campo ZMESSAGEDATE, o instante do envio original. O IPED 4.2.2 não lê horário de revogação. Então não se sabe quando as cinco foram apagadas para todos. A janela vai de 1º de outubro até algum momento antes de 18 de novembro, porque a revogação precisa alcançar o aparelho do destinatário ainda conectado. Apagar segundos depois de enviar e apagar semanas depois são fatos com pesos completamente diferentes — e nem o relatório nem a ferramenta distinguem um do outro.

O que a cópia pública não permite conferir

Há um último problema, e ele não é da Polícia Federal.

Os metadados do PDF que circula mostram que ele foi gerado pelo Adobe Illustrator e processado pelo iLovePDF em 1º de setembro. Não é o arquivo original: é uma reexportação feita por terceiro, com tarjas aplicadas. Na Figura 41 — a peça central da corroboração, em que os logs são correlacionados aos cinco envios — as colunas de log estão inteiramente cobertas. Só as setas apontam para linhas ocultas. A correlação é afirmada, não exibida.

E as imagens dos chats, na cópia pública, têm cerca de 333 por 280 pixels. Um ícone de confirmação mede seis pixels. A cor, nessa resolução e depois de recompressões sucessivas, não é determinável por inspeção visual — precisou do código da ferramenta para ser resolvida. Quem quiser verificar por conta própria o que o relatório afirma não consegue fazê-lo com o que foi publicado. Precisa da extração.

É o mesmo ponto que discuti a respeito de hash e integridade: afirmar não é exibir. Só que aqui a opacidade é de quem redigiu e republicou a cópia, não de quem produziu o documento.

O que isso significa — para os dois lados

Nada do que está acima diz que as conclusões da IPJ-A são erradas. Diz o que o documento sustenta e o que ele não sustenta, e a lista é curta e simétrica.

Sustenta: que as mensagens foram enviadas, que foram entregues, que cinco mensagens do contato foram revogadas ativamente, e que a sequência Notas → captura → PDF → WhatsApp é tecnicamente consistente e tem mecanismo documentado pela Apple.

Não sustenta, e não poderia sustentar com a ferramenta e o texto que apresenta: que as mensagens foram lidas, que as de visualização única foram abertas, quando as revogações ocorreram, e por que marcas de revogação sobreviveram a um temporizador de 24 horas.

Para a acusação, isso significa que o relatório sustenta menos do que a repercussão sugere — e que uma conclusão sobre leitura ou abertura, se vier a ser formulada, precisará de fonte além do render do IPED. Para a defesa, significa que a revogação ativa é fato registrado, não hipótese, e que atacar o documento como se ele afirmasse leitura é atacar algo que ele não disse.

Para quem trabalha com prova digital, significa o de sempre: cada ícone é a saída de um analisador; cada analisador lê campos específicos; e o que a ferramenta não lê, o relatório não pode afirmar. É a mesma disciplina que separa o perfil que editou o arquivo da pessoa que o editou — o campo diz uma coisa, e a conclusão sobre gente exige outra camada.

O Superior Tribunal de Justiça consolidou na Edição 281 das Jurisprudências em Teses que dúvida razoável sobre a integridade da prova digital impõe exame com possibilidade de auditoria do método. Este texto é um exemplo de como essa auditoria começa — pelo código, pela documentação, pela pergunta “quem desenhou este ícone e o que ele leu para desenhá-lo”.

O dado sustenta exatamente o que sustenta. Nem uma palavra a mais.

Referências

Do dado bruto à narrativa que sustenta a sua peça.
Rafael Chiara, fundador da Cyberlex
Rafael Chiara
Fundador da Cyberlex

Após 20 anos de serviço público (TRF4, TJSC e Polícia Civil, como delegado), atua em assistência técnica à defesa, prova digital, cadeia de custódia e análise forense de dispositivos móveis.

Material técnico-educativo. O caso entra como documento público, com sigilo levantado, e as pessoas aparecem apenas como constam dele: este texto audita o método do relatório, não adere a nenhuma tese sobre o mérito da investigação nem sobre a conduta de qualquer pessoa nele mencionada, o autor não tem relação com as partes, e nada aqui é parecer jurídico nem técnico sobre caso concreto. A Cyberlex produz documentos técnicos de assistência ao advogado e ao cliente — parecer de assistência técnica, nota técnica e análise —, com linguagem de indício técnico e limitações explícitas, e não emite laudo pericial oficial nem exerce advocacia. A judicialização, quando necessária, cabe ao advogado constituído pelo cliente, com autonomia técnica e independência. Anomalias de custódia são sinalizadas com linguagem de incerteza, jamais asseridas como manipulação provada.

Leitura relacionada