Anatomia de executáveis Windows Portable Executable (Windows PE)
Programas de fato executáveis no Windows são os .EXE ou Windows PE. Eles são binários normalmente gerados por algum compilador, como o GCC, e carregam consigo "todas" as instruções para a execução do arquivo.
Ao serem gerados, Windows PE possuem a seguinte estrutura nesta ordem:
- Cabeçalho DOS
- DOS Stub
- Cabeçalho do PE
- Cabeçalho Opcional
- Cabeçalho / Tabela de Seção
- Import / Export Adress Table (IAT)
- Seções
Existem várias seções num executável, entre elas estão: - .text: contém as instruções a serem executadas. Em tese, deveria ser o único local do programa com instruções executáveis. - .data: armazena dados globais acessíveis pelo programa, como variáveis, strings e funções. - .rdata: é a mesma coisa do .data, mas com dados somente para leitura(ready-only). - .idata: (opcional) contém dados de funções importadas. Se esta seção não estiver presente, muito provavelmente os dados das funções estarão em .rdata. - .edata: contém dados de funções exportadas. - .pdata: (existe apenas em binários de 64 bits) contém dados sobre tratamentos de exceções. - .rsrc: contém recursos utilizados pelo binários, como imagens, strings, áudios, ícone, etc.
Ferramentas de visualização binária
São ferramentas que permitem ao usuário ver o programa em várias bases numéricas. A maioria os programas lê o programa em base binária, hexadecimal. Alguns outros tentam interpretar os bits e extrair algumas Strings ASCII. Enfim, são ferramentas interessantes para aprender análise de malware e analisar malwares manualmente durante emergências.
Frhed
O Frhed mostra o arquivo numa visualização binária, hexadecimal e ASCII. É útil, porque possibilita uma fácil análise manual das assinaturas nos arquivos. Entretanto, não é feito para escabilidade ou automatização.
Também há ferramentas focadas em analisar malwares em executáveis, mas elas serão abordados na sessão Empacotadores.
PEStudio
A ferramenta tem múltiplas funções, mas entre elas, há a visualização dos segmentos de dados do executável. O programa lhe mostra os dados organizados e tenta apontar anomalias e possíveis indícios de atitudes maliciosos.