
pefile é um módulo Python para ler e trabalhar com arquivos PE (Portable Executable).
pefile é um módulo Python multiplataforma para analisar e trabalhar com arquivos Portable Executable (PE). A maior parte das informações contidas nos cabeçalhos do arquivo PE é acessível, assim como os detalhes e dados de todas as seções.
As estruturas definidas nos arquivos de cabeçalho do Windows estarão acessíveis como atributos na instância PE. A nomeação dos campos/atributos tentará aderir ao esquema de nomenclatura desses cabeçalhos. Apenas atalhos adicionados por conveniência se desviarão dessa convenção.
pefile requer algum conhecimento básico da estrutura de um arquivo PE — com ele, é possível explorar quase todos os recursos do formato de arquivo PE.
Para instalar o pefile via pip:
pip3 install pefile
Algumas das tarefas que o pefile possibilita são:
Por favor, consulte Exemplos de Uso para alguns trechos de código que demonstram como usar o pefile.
Aqui estão alguns exemplos de como se parece um dump produzido com pefile para diferentes tipos de arquivos:
Para trabalhar com binários autenticados, incluindo assinaturas Authenticode, consulte o projeto verify-sigs.
pefile é executado em vários pipelines que escaneiam centenas de milhares de novos arquivos PE todos os dias e, embora não seja perfeito, tornou-se bastante robusto ao longo do tempo. Dito isso, pequenas falhas são encontradas de vez em quando. Se você encontrar um PE que não parece ser processado corretamente, por favor, reporte-o! Isso ajudará a tornar o pefile um pouco mais poderoso.
pefile é autocontido. O módulo não possui dependências; é independente de endianness; e funciona no Windows, macOS e Linux.
PDFs de pôsteres que representam o formato de arquivo PE:
Os links a seguir fornecem informações detalhadas sobre o formato PE e suas estruturas.