Veja dentro de um arquivo .exe do Windows
Analisado nesta aba · Nada é enviado · Nada é executado
Solte um executável do Windows abaixo e esta página lê os cabeçalhos dele e diz o que ele é: para qual processador foi compilado, quais bibliotecas do sistema ele pede, o que diz sobre o próprio fabricante e a própria versão, o ícone escondido lá dentro, se está assinado e se foi compactado para esconder o conteúdo. O arquivo nunca sai da sua máquina — ele é lido por JavaScript, aqui mesmo, e a página não tem para onde enviá-lo.
Solte um .exe aqui, ou
Também lê .dll, .sys, .ocx e .scr. Até 256 MB.
O que o relatório mostra
Todo executável do Windows carrega uma quantidade surpreendente de informação escrita sobre si mesmo, e quase nada disso aparece na área de trabalho. O relatório está ordenado para que as partes mais úteis venham primeiro.
O processador e o subsistema
A primeira resposta honesta sobre qualquer .exe. Um binário de 64 bits não inicia num Windows de 32 bits; um de 32 bits roda em quase qualquer lugar. O subsistema diz se ele abre uma janela, um console ou nada, por ser um driver feito para ser carregado no kernel.
As bibliotecas que ele carrega
A tabela de importação é a parte mais reveladora do arquivo. Um programa precisa citar, em texto puro, cada biblioteca e cada função do sistema que pretende chamar — então um programa que fala com a internet precisa dizer ws2_32.dll, um que mexe no registro precisa dizer RegOpenKeyExA e um que inicia outros programas precisa dizer CreateProcessW. Isso fica declarado antes de uma única instrução ser executada, e não dá para omitir sem abrir mão de poder chamar essas funções.
O que ele diz ser
O recurso de versão guarda o fabricante, o nome do produto, a versão do arquivo, a linha de copyright e o nome original do arquivo — as mesmas strings que o Windows mostra na janela de Propriedades de um arquivo. São só texto que quem compilou o arquivo digitou, então servem para identificação e não valem nada como prova.
O ícone
Extraído da árvore de recursos e desenhado na página. É o jeito mais rápido de confirmar que um download é mesmo o programa que você imagina, e o jeito mais rápido de perceber que algo está usando um ícone conhecido que não é dele.
Compactação e entropia
Compactadores (packers) comprimem um executável e o descompactam na memória ao iniciar. É uma forma legítima de deixar um download menor, e uma forma igualmente eficaz de esconder o que um programa importa até ele já estar rodando. O relatório dá o nome do compactador quando reconhece a assinatura dele e, se não reconhecer, passa a medir o quão aleatória cada seção parece.
O que está grudado no final
Instaladores costumam ser um programa pequeno e comum com um arquivo compactado inteiro anexado depois da última seção. Quando o relatório diz que a maior parte do arquivo fica além do fim da parte executável, você está olhando para um invólucro e não para o programa — e muitas vezes dá para extrair os arquivos de dentro sem instalar nada (em inglês).
O que ele não consegue dizer
Ele não consegue dizer se um arquivo é seguro. Nada que apenas leia um arquivo consegue, e uma página que desse a entender o contrário seria pior do que inútil, porque passaria uma falsa segurança.
Tudo aqui é o que o programa declara sobre si mesmo. Um programa que quer ser estudado declara muita coisa; um que não quer simplesmente declara menos, e um compactado não declara quase nada até já estar rodando. Por isso uma lista longa de capacidades não é prova de mau comportamento — todo atualizador usa a rede e todo instalador grava arquivos — e uma lista curta também não é prova de bom comportamento.
Para o que a inspeção serve de verdade são as perguntas comuns: é a arquitetura certa para a minha máquina, é um instalador ou o programa em si, ele diz ter um fabricante, está assinado, está completo, está escondendo o conteúdo? Tudo isso dá para responder a partir do arquivo, e é a maior parte do que as pessoas realmente querem saber.
Para um veredicto sobre segurança, o VirusTotal passa o arquivo enviado por uns setenta antivírus. Isso envolve, sim, enviar o arquivo, coisa que esta página nunca faz — uma troca que vale a pena fazer de propósito, e não sem perceber.
A explicação mais longa está em este .exe é seguro para executar? (em inglês) — cada sinal que um arquivo dá antes de rodar, quanto cada um realmente vale como evidência e em que ordem verificar.
Para onde vai o seu arquivo
Para lugar nenhum. O navegador entrega à página os bytes do arquivo que você escolheu, o analisador percorre os cabeçalhos e o resultado é escrito na página. Não há requisição, nem servidor, nem fila, nem política de retenção, porque não há nada para reter. Fechar a aba descarta tudo.
Vale dizer isso com todas as letras, porque a alternativa óbvia — um site de enviar e analisar — é exatamente aquilo com que alguém que desconfia de um arquivo deveria ter mais cuidado. Se você prefere conferir em vez de acreditar, abra as ferramentas de desenvolvedor do navegador, vá até o painel de rede e inspecione um arquivo: nada é enviado.
A página em si usa o Google Analytics e o Mediavine, que veem as visitas da forma de sempre. Eles não conseguem ver o arquivo que você escolheu nem nada extraído dele; o relatório é montado na memória e nunca vira uma requisição. O que registramos é agregado e anônimo — o formato, o processador e se o arquivo estava assinado —, sem nome de arquivo e sem conteúdo do arquivo. Os detalhes estão na política de privacidade.
Se você quer executar, e não só ler
Aqui, ler um arquivo e executá-lo são, de propósito, duas páginas diferentes. Quando o relatório diz que um arquivo é x86 de 32 bits sem nada exótico dentro, o carregador tem boas chances de rodá-lo numa aba do navegador — sem instalar nada e, lá também, sem enviar nada.
Execute o seu próprio EXE → · Como abrir um .exe em qualquer plataforma · O que funciona e o que não funciona · Jogos e aplicativos prontos para jogar
Guias por plataforma (em inglês): no Mac · no Chromebook · no Android. E se um programa se recusa a iniciar porque falta alguma coisa, o erro de DLL ausente costuma ser mais simples do que parece.
Coloque um destes jogos no seu próprio site
Onze dos jogos daqui foram escritos do zero para este site, o que os torna nossos para dar — e é o que fazemos. Livres para qualquer pessoa colocar na própria página: uma linha de HTML, sem conta, sem pedir permissão e sem mais atribuição do que uma linha de crédito.
Perguntas frequentes
Meu arquivo é enviado para algum lugar?
Não. O arquivo é lido por JavaScript rodando na sua própria máquina, os cabeçalhos são analisados na aba e o resultado é desenhado na página. Nada é transmitido e nenhuma cópia é guardada, porque nenhuma cópia chega a ser feita.
Isto executa o programa?
Não. Ele lê o arquivo como um bibliotecário lê a lombada de um livro. Nem uma instrução do executável é executada, e é justamente essa a ideia: você pode inspecionar algo de que não tem certeza sem dar a ele a chance de fazer qualquer coisa. Se decidir que quer mesmo executá-lo, o carregador é outra página e um segundo passo deliberado.
Ele consegue dizer se um .exe é vírus?
Não, e nada que apenas leia um arquivo consegue. Ele é útil para perceber que um arquivo é da arquitetura errada, é um instalador e não o programa, não está assinado ou está compactado para não revelar nada até ser executado. Para um veredicto de verdade sobre segurança, use o VirusTotal.
O que é um arquivo PE?
Portable Executable é o formato usado por todo .exe, .dll e .sys do Windows. Ele começa com um pequeno programa de MS-DOS que sobrou de 1985 e cuja única função é imprimir This program cannot be run in DOS mode; depois vêm o cabeçalho de verdade, uma tabela de seções com código e dados, a lista de bibliotecas de que o programa precisa e uma árvore de recursos. A explicação mais longa está aqui.
Por que ele diz que meu arquivo é de 16 bits ou um programa de DOS?
Porque é, e é por isso que o Windows moderno se recusa a iniciá-lo. Um arquivo MZ simples é um programa de MS-DOS em modo real; um arquivo NE é do Windows de 16 bits. O Windows de 64 bits deixou de suportar os dois, então dar dois cliques neles não faz absolutamente nada — nenhum erro, nenhuma janela. Os dois ainda rodam com emulação, que é um assunto à parte (em inglês).
O que significa entropia alta numa seção?
A entropia mede o quão aleatórios os bytes parecem, de 0 a 8. Código compilado comum fica perto de 6. Acima de 7,2, mais ou menos, os dados estão compactados ou criptografados — normal numa seção que guarda um zip ou um PNG, e um forte indício de compactador quando é a seção a partir da qual o programa é executado.
Funciona no Mac, no Chromebook ou no celular?
Sim. É uma página web, então funciona onde quer que rode um navegador atual. Isso importa mais nas máquinas que não conseguem abrir um .exe de jeito nenhum: um Mac ou um Chromebook não tem uma forma nativa de olhar dentro de um executável do Windows, e isto não exige instalar nada.