Pular para conteúdo

Mapa de Importações

Tipos de Importações

É comum que um programa importe código de outros programas. Existem 3 formas de importação de código:

  • Estática: o código da biblioteca importada é copiada e colada no executável gerado durante a etapa de linking do compilador. Portanto essas importações não precisam acessar código em outro lugar durante a execução.
  • Dinâmica: a biblioteca importada tem seu protótipo e os protótipos das suas funções inseridos e associados no executável durante a etapa de linking. Dessa forma, durante a execução, o executável importa o código da localização.
  • Em tempo de Execução: a biblioteca importa durante sua execução bibliotecas ou funções não mapeadas na etapa de linking. No Windows, é possível realizar essas operações pelas funções nativas LoadLibrary e GetProcAdress.

Como observação, o GCC possui 4 etapas para transformar o código em C no executável: 1. Pré processamento 2. Compilação 3. Montagem 4. Linking.


As importações estáticas possuem trechos de código copiados, então podem facilmente serem identificados por ferramentas automatizadas. Já as importações dinâmicas têm suas informações salvas nas seções .rdata ou .idata e portanto são analisadas rapidamente por analistas ou ferramentas automatizadas. Assim ambas as importações dão aos analistas de malware formas simples de mapear as importações do programa.

Já as importações em tempo de execução são muito utilizadas por atores maliciosos por dificultarem esse mapeamento. As funções que as tornam possíveis no Windows armazenam os nomes das bibliotecas e funções importadas como strings e portanto são vulneráveis a obfuscação de string. Muitas delas de fato podem só aparecer em seu formato original durante a execução. Nem sempre é fácil detectar importações assim.

É comum programas usarem sempre as mesmas funções e bibliotecas para acessarem os mesmos recursos, portanto fique atento aos seguintes nomes, independente do tipo de importação:

DLL Descrição
Kernel32.DLL
Advapi32.DLL
User32.DLL
Gdi32.DLL
Ntdll.dll
Wsock32.DLL e Ws2_32.DLL
Wininet.DLL

|Função|DLL|Descrição| |||

Dependency Walker

É um software que facilita a listagem e análise de dependências usadas pelo malware.