Inspetor de arquivos binários

Solte um arquivo de programa — um PE do Windows (.exe, .dll), um binário ELF do Linux ou um Mach-O do macOS/iOS — e leia o que ele declara sobre si mesmo antes de recorrer a ferramentas mais pesadas: seus cabeçalhos, seções e segmentos, as bibliotecas e funções que importa, suas exportações e símbolos e cada string imprimível dentro dele, juntamente com hashes MD5 e SHA e a entropia por seção. O arquivo nunca sai do seu dispositivo e nunca é executado: ele é aberto e lido nesta página, não enviado, porque um binário do qual você desconfia é exatamente o arquivo que você não deve entregar ao servidor de um estranho.

Última atualização:

Ou solte o arquivo em qualquer lugar desta caixa. Tudo abaixo é lido do próprio arquivo, neste dispositivo. Apenas análise estática: o arquivo é analisado, nunca executado. Limite: 128 MB.

O que esta página é — e o que não é

Isto é uma inspeção estática de primeira olhada: o arquivo é analisado, nunca executado, e nada aqui é um veredito de malware. As descobertas são observações, não condenações — um arquivo não assinado é um fato (muitas ferramentas legítimas não são assinadas), entropia acima de 7.2 é um fato (empacotadores a elevam, mas recursos compactados comuns também), e a presença de um bloco de assinatura Authenticode nada diz sobre se a assinatura é válida, apenas que há uma. Para uma segunda opinião sobre um arquivo em que você não confia, compare seu SHA-256 com um veredito público usando a pesquisa na guia Visão geral — o hash é pesquisado, o arquivo em si nunca é enviado. Pacotes Android têm seu próprio leitor dedicado, o APK Analyzer; o que um programa faz na rede pertence ao PCAP Analyzer; e o artigo complementar, agentes de IA podem fazer engenharia reversa do seu aplicativo?, explica até onde a análise automatizada já chegou.

O que um arquivo de programa declara antes de ser executado

Todo arquivo de programa nativo começa com uma declaração de intenção escrita para o carregador do sistema operacional. Um PE do Windows nomeia sua máquina de destino, seu carimbo de data/hora de compilação, o endereço em que deseja ser carregado e o subsistema que espera; sua tabela de seções mostra onde vivem o código, os dados e os recursos, e sua tabela de importações lista — por nome — cada biblioteca e função que pretende chamar, que é o mais próximo de um índice que um binário fechado possui. Um binário ELF declara sua classe, ordem de bytes e máquina, o interpretador que o lançará, os segmentos que o kernel deve mapear e as bibliotecas compartilhadas de que precisa, em ordem. Um Mach-O declara sua CPU e tipo de arquivo, seus segmentos e seções, as dylibs que vincula, um UUID que identifica a compilação e se seu código é assinado ou criptografado com FairPlay. Nada disso exige executar o arquivo, confiar no arquivo ou enviar o arquivo — está tudo em cabeçalhos que o próprio carregador lerá.

Esta página lê exatamente essa camada, e deliberadamente apenas a primeira camada. Ela não descompilará nada, não desempacotará nada nem dirá o que o código faz — esse é o trabalho do Ghidra, do IDA e das cadeias de ferramentas orientadas por agentes que o artigo complementar percorre. Uma primeira olhada serve para a triagem: é a arquitetura que você esperava, está assinado, é um assembly .NET vestindo uma roupa nativa, uma seção carrega dados suspeitosamente densos, a lista de importações nomeia bibliotecas que o programa não deveria chamar, e o arquivo que lhe enviaram é o mesmo que todos os outros receberam — os hashes respondem a isso de imediato (e o gerador de hash faz a verificação cruzada para texto ou arquivos menores). Cinco minutos de cabeçalhos, lidos localmente, respondem à maioria dessas perguntas antes mesmo de qualquer ferramenta pesada ser instalada.

Perguntas frequentes

Meu arquivo é enviado para algum lugar?

Não. O arquivo é aberto e analisado nesta página, no seu dispositivo, e nada é enviado, transmitido ou armazenado — analisar um arquivo não faz nenhuma solicitação de rede. O único link externo da página é a pesquisa no VirusTotal, e ela busca o hash SHA-256 do arquivo como texto; o arquivo em si nunca é enviado. A página também funciona offline depois de carregada.

Isto pode me dizer se um arquivo é malware?

Não, e qualquer leitor de cabeçalhos que prometa isso está exagerando. Esta página relata o que o arquivo declara — formato, arquitetura, seções, importações, exportações, strings, presença de assinatura —, o que é suficiente para flagrar os casos descuidados: a “fatura” que na verdade é um executável de 32 bits, a compilação com uma seção impossivelmente densa, o atualizador não assinado cujo hash não corresponde a nada que o fornecedor publicou. Julgar o que o código realmente faz exige descompilação, execução em sandbox ou o veredito de um scanner respeitável. Trate um resultado de aparência limpa aqui como “nada nos cabeçalhos parece errado”, nunca como um certificado de segurança.

O que é entropia e por que 7.2 é o limiar?

A entropia de Shannon mede o quão aleatório um trecho de bytes parece, de 0 (todos o mesmo byte) a 8 (indistinguível do aleatório). Código compilado comum e texto ficam bem abaixo de 7; dados compactados ficam perto de 8, e dados criptografados estão efetivamente em 8. Empacotadores compactam ou criptografam o código real de um programa, então uma seção acima de aproximadamente 7.2 é um sinal padrão de triagem de que “algo aqui foi comprimido” — mas instaladores, recursos compactados, mídia incorporada e runtimes modernos também produzem seções de alta entropia em arquivos totalmente legítimos. É um motivo para olhar mais de perto, não uma conclusão.

Por que meu arquivo mostra tão pouca estrutura?

Porque a página relata o que o arquivo realmente declara, e alguns arquivos declaram muito pouco. Um ELF stripped pode não ter nenhuma tabela de cabeçalhos de seção (apenas segmentos); um arquivo artesanal ou truncado pode terminar antes das estruturas que seu cabeçalho promete — nesse caso, as notas dizem exatamente isso e tudo o que é mostrado foi lido dos bytes que estão presentes. E alguns formatos estão simplesmente fora do escopo dos analisadores profundos: eles são identificados pelo nome (ZIP, PDF, imagens e assim por diante) e recebem os fatos genéricos — tamanho, hashes, entropia, strings — sem detalhes inventados.