Um arquivo chamado relatorio.pdf pode não ser um PDF. Trocar o nome ou a extensão não converte o conteúdo, apenas muda a indicação que o Windows e os aplicativos usam para decidir como tratá-lo. Antes de enviar um anexo desconhecido a uma IA, abrir o arquivo por tentativa e erro é justamente o atalho que convém evitar.
Este guia mostra uma triagem local e reversível no Windows. Você vai tornar a extensão visível, preservar o original, ler somente os primeiros bytes, comparar a assinatura com alguns formatos comuns e, quando necessário, consultar um registro técnico. O processo ajuda a detectar inconsistências, mas não prova que um arquivo é seguro.
Regra prática: nome, ícone, extensão, tipo MIME e assinatura interna são evidências diferentes. Uma assinatura compatível aumenta a confiança sobre o formato, mas não substitui antivírus, sandbox, validação estrutural nem revisão de conteúdo.
Resultado esperado
Ao final, você terá uma cópia de análise, a extensão completa do arquivo, os primeiros 16 bytes em hexadecimal e uma conclusão limitada a uma destas três classes:
- compatível: extensão e assinatura conhecida apontam para o mesmo formato;
- incompatível: a assinatura observada contradiz a extensão;
- inconclusivo: o formato não tem assinatura simples, usa um contêiner compartilhado ou exige uma ferramenta especializada.
“Compatível” não significa “livre de malware”. A própria OWASP recomenda validação em camadas, porque extensão, cabeçalho de tipo e assinatura podem ser falsificados ou insuficientes quando usados isoladamente.
Pré-requisitos
- Windows 10 ou 11;
- PowerShell 7 para o comando mais curto, ou Windows PowerShell 5.1 para a alternativa incluída;
- permissão para analisar o arquivo;
- uma pasta separada, sem sincronização automática e sem dados de produção;
- o hash ou uma cópia preservada do arquivo original;
- um ambiente isolado se o arquivo veio de remetente desconhecido ou fonte não confiável.
Não execute, visualize, descompacte nem habilite conteúdo ativo durante a triagem. Para arquivos recebidos como código ou instalador, prefira um ambiente descartável. O guia do Bastidores sobre Windows Sandbox com rede desligada ajuda a reduzir o impacto, mas não transforma o arquivo em seguro.
Passo 1: preserve o original antes de investigar
Copie o arquivo para uma pasta de análise e não altere o original. Registre o hash SHA-256 da cópia:
$arquivo = 'C:\Analise\anexo-recebido.bin'
Get-FileHash -LiteralPath $arquivo -Algorithm SHA256
O hash não identifica o formato e não avalia segurança. Ele serve para confirmar que todas as observações seguintes se referem aos mesmos bytes. Se o hash mudar, trate o resultado anterior como pertencente a outro arquivo.
Use -LiteralPath para que caracteres como colchetes no nome não sejam interpretados como curingas. Não cole caminhos confidenciais em uma conversa com IA. Se precisar compartilhar o procedimento, troque o caminho real por um exemplo neutro.
Passo 2: mostre a extensão completa no Explorador
No Windows 11, abra o Explorador de Arquivos e escolha Exibir > Mostrar > Extensões de nomes de arquivos. No Windows 10, a opção equivalente aparece na guia Exibir. A documentação da Microsoft reforça que mudar a extensão não altera o formato do conteúdo.
Observe o nome inteiro. orcamento.pdf.exe não é um PDF só porque “pdf” aparece no meio. Espaços, múltiplos pontos e extensões duplas merecem atenção. O ícone também não é prova, pois depende da associação de aplicativos do sistema.
Passo 3: registre tamanho, nome e extensão sem abrir
No PowerShell, consulte os metadados básicos do sistema de arquivos:
Get-Item -LiteralPath $arquivo |
Select-Object Name, Extension, Length, LastWriteTime
Esses campos ajudam a detectar incoerências, mas não validam conteúdo. Um arquivo de zero bytes, por exemplo, não é um PDF válido apenas porque termina em .pdf. Da mesma forma, um tamanho plausível não confirma que o arquivo esteja íntegro.
Passo 4: leia somente os primeiros 16 bytes
No PowerShell 7, Format-Hex aceita -Count, o que permite limitar a leitura exibida:
Format-Hex -LiteralPath $arquivo -Count 16
O resultado mostra os bytes em hexadecimal e uma representação de caracteres quando possível. A Microsoft documenta esse uso para ajudar a determinar o tipo de um arquivo corrompido ou sem extensão.
No Windows PowerShell 5.1, onde -Count não está disponível, leia um bloco pequeno com um fluxo de arquivo:
$fluxo = [System.IO.File]::OpenRead($arquivo)
try {
$buffer = New-Object byte[] 16
$lidos = $fluxo.Read($buffer, 0, $buffer.Length)
($buffer[0..($lidos - 1)] | ForEach-Object {
$_.ToString('X2')
}) -join ' '
}
finally {
$fluxo.Dispose()
}
Se o arquivo estiver vazio, a alternativa precisa ser interrompida antes de acessar o intervalo. Confira Length no passo anterior. Essa leitura não executa o arquivo, mas ainda deve ocorrer em uma cópia autorizada e isolada.
Passo 5: compare com assinaturas comuns
Alguns formatos começam com sequências reconhecíveis. Use a tabela apenas como triagem:
| Formato provável | Início hexadecimal comum | Leitura |
|---|---|---|
25 50 44 46 |
corresponde a %PDF |
|
| PNG | 89 50 4E 47 0D 0A 1A 0A |
assinatura fixa do formato |
| JPEG | FF D8 FF |
marcador inicial comum |
| GIF | 47 49 46 38 |
começa com GIF8 |
| ZIP e contêineres baseados em ZIP | 50 4B 03 04 |
início comum de uma entrada ZIP |
| Executável portátil do Windows | 4D 5A |
cabeçalho MZ |
Se um arquivo chamado foto.png começa com 4D 5A, a extensão e o conteúdo entram em conflito. Não renomeie para testar e não envie à IA. Preserve a evidência e encaminhe o caso para o processo de segurança da organização.
Ausência de uma sequência conhecida não prova fraude. Arquivos de texto, variantes antigas e muitos formatos especializados podem não ter uma assinatura curta ou exclusiva. Nesse caso, classifique como inconclusivo.
Passo 6: trate DOCX, XLSX e PPTX como contêineres
Os formatos Open XML modernos do Word, Excel e PowerPoint são pacotes baseados em ZIP. Por isso, .docx, .xlsx, .pptx e um .zip comum podem começar com os mesmos bytes 50 4B. O cabeçalho inicial sozinho não distingue esses formatos.
Em uma cópia isolada e somente se a política permitir, liste os nomes internos sem extrair o conteúdo:
Add-Type -AssemblyName System.IO.Compression.FileSystem
$pacote = [System.IO.Compression.ZipFile]::OpenRead($arquivo)
try {
$pacote.Entries |
Select-Object -First 30 -ExpandProperty FullName
}
finally {
$pacote.Dispose()
}
Um pacote Open XML costuma incluir [Content_Types].xml. Pastas como word/, xl/ ou ppt/ indicam a família do aplicativo. Isso ainda não valida todos os relacionamentos internos nem remove conteúdo ativo.
A Microsoft diferencia extensões com suporte a macro por uma letra m, como .docm, .xlsm e .pptm. Se o arquivo é do Office, continue com o guia sobre como inspecionar um arquivo sem liberar macros por impulso.
Passo 7: use PRONOM ou DROID quando a triagem for inconclusiva
O PRONOM, mantido pelo The National Archives do Reino Unido, reúne informações técnicas e assinaturas internas e externas de mais de dois mil formatos. O DROID usa essas assinaturas para identificação automatizada de arquivos.
Para um caso pontual, pesquise no PRONOM pela extensão ou pelo nome do formato e compare a descrição técnica. Para lotes ou acervos, avalie o DROID conforme a documentação oficial da instituição. Baixe ferramentas somente da origem oficial, verifique os requisitos e não instale nada apenas porque uma resposta de IA sugeriu um link.
O identificador produzido por uma ferramenta é evidência técnica, não autorização de uso. Um arquivo pode estar corretamente identificado e ainda conter dados pessoais, material sigiloso, conteúdo corrompido ou elementos ativos.
Passo 8: decida se o arquivo pode ser enviado à IA
Antes do upload, responda separadamente:
- O formato identificado é aceito pela ferramenta?
- Você tem autorização para compartilhar o conteúdo?
- Há dados pessoais, segredos, credenciais ou propriedade intelectual?
- O destino, a conta e a política de retenção foram confirmados?
- Existe uma versão minimizada ou sintética suficiente para a tarefa?
Se qualquer resposta estiver indefinida, pare antes do upload. A IA não precisa receber o arquivo completo para ajudar com toda tarefa. Em muitos casos, uma amostra sintética, um trecho já revisado ou apenas a descrição do formato resolve a etapa inicial.
Erros comuns
Confiar no ícone do aplicativo
O ícone mostra a associação configurada no Windows. Ele não examina os bytes e pode acompanhar uma extensão enganosa.
Renomear e abrir para ver se funciona
Renomear não converte o conteúdo. Abrir por tentativa pode acionar um interpretador, visualizador vulnerável ou conteúdo ativo.
Tratar 50 4B como prova de DOCX
Essa sequência aparece em ZIP e em vários formatos baseados em ZIP. É preciso verificar a estrutura interna e, quando o risco justificar, usar um identificador especializado.
Confundir assinatura de formato com assinatura digital
A assinatura de formato é um padrão de bytes usado na identificação. Uma assinatura digital envolve criptografia, identidade do signatário e integridade. Uma não substitui a outra.
Declarar o arquivo seguro após encontrar o cabeçalho esperado
Assinaturas podem ser imitadas e arquivos válidos podem carregar conteúdo malicioso. Mantenha antivírus, sandbox, validação estrutural e menor privilégio conforme o risco.
Solução de problemas
Format-Hex não reconhece -Count
Você provavelmente está no Windows PowerShell 5.1. Use a alternativa com FileStream ou abra o PowerShell 7. Confirme a versão com $PSVersionTable.PSVersion.
O arquivo começa com 50 4B, mas não abre como ZIP
O pacote pode estar corrompido, protegido, truncado ou usar uma estrutura que exige outro leitor. Não force a extração e não conclua que é um documento do Office. Registre como inconclusivo.
A assinatura não aparece no início
Nem todo formato usa uma assinatura fixa no byte zero. Consulte um registro como PRONOM ou use uma ferramenta especializada. Não invente uma extensão com base em aparência ou tamanho.
Extensão e assinatura entram em conflito
Não abra o arquivo. Preserve a cópia e o hash, registre o conflito e siga o procedimento de segurança ou descarte autorizado da organização.
O arquivo parece correto, mas contém dados sensíveis
Identificação de formato não é revisão de conteúdo. Minimize, anonimize ou substitua os dados conforme a finalidade e a política aplicável antes de qualquer envio.
O que esta triagem não garante
O procedimento não detecta todo conteúdo malicioso, não valida a integridade completa da estrutura, não confirma autoria e não substitui análise antimalware. Também não avalia se você pode compartilhar o conteúdo com um fornecedor de IA.
Arquivos poliglotas podem ser interpretados de mais de uma maneira, e um cabeçalho esperado pode coexistir com conteúdo indevido. Se o risco for relevante, use ferramentas corporativas de segurança, um ambiente isolado e revisão especializada.
Checklist antes do upload
- A extensão completa está visível?
- O original foi preservado e o hash registrado?
- O arquivo foi analisado sem execução e sem extração desnecessária?
- Extensão e assinatura interna são compatíveis?
- Contêineres ZIP foram tratados como inconclusivos até a inspeção estrutural?
- A conclusão evita chamar o arquivo de seguro?
- Autorização, sensibilidade e destino do upload foram confirmados?
- Uma amostra menor ou sintética foi considerada?
- Links e ferramentas vieram de fontes oficiais?
- O resultado foi registrado como compatível, incompatível ou inconclusivo?
Ilustração editorial exclusiva do Bastidores da IA. Não é captura de tela de produto ou sistema real.
Fontes consultadas em 8 de setembro de 2026
- Microsoft Support: extensões comuns e como exibi-las no Windows
- Microsoft Learn: Format-Hex no PowerShell 7.6
- Microsoft Support: formatos Open XML, extensões e suporte a macros
- The National Archives: o que é o registro PRONOM
- The National Archives: orientação sobre assinaturas e identificação com DROID
- OWASP Cheat Sheet Series: validação de extensão, tipo, assinatura e conteúdo
