Windows

Conceitos Importantes

  • As DLL são carregadas em tempo de execução, diferentemente das Lib, que são compiladas juntos com o programa

  • Para ver o que está inicializando junto com o Windows pelo prompt de comando, digite:

    reg query hklm\software\microsoft\windows\currentversion\run /s
    reg query hklm\software\microsoft\windows\currentversion\runonce /s

    E para examinar a chave de serviços, caminhos de DLL e serviços anormais/suspeitos, digite:

    reg query HKLM\system\currentcontrolset\services /s
  • Programas compactados (packed) geralmente precisam chamar as funções Load Library e GetProcAddress, da kernel.dll.

  • Todas as Sessões ocupam sempre 8 bits mesmo que não use todas. As principais sessões do PE File são:

SESSÃO PE

DESCRIÇÃO

.text

É a única sessão que contém instruções (códigos) que serão executados

.rdata

Contém informações de "import" e "export". Essa sessão também pode armazenar dados somente-leitura que são utilizadas pelo programa

.data

Contém os dados globais do programa, para conseguir acessar de qualquer lugar do programa. Dados locais não são armazenados aqui

.rsrc

Inclui recursos utilizados pelo executável que não são considerados parte do executável, como ícones, imagens, menus e strings. Strings podem ser armazedas em .rsrc ou no programa principal, mas geralmente são armazenadas nessa sessão, para suporte multilingue

.idata

As vezes presente e guarda informações de importações de funções. Caso essa sessão não exista, as importações estarão em .rdata

.edata

As vezes presente e guarda informações de exportação de funções. Caso essa sessão não exista, as exportação estarão em .rdata

.pdata

Presente apenas em executáveis x64 e armazena informações de manipulação de execução

.reloc

Contém informações de realocação dos arquivos de biblioteca

DDL's

DLL

DESCRIÇÃO

Kernel32.dll

É uma DLL muito comum de ser ver utilizando, pois contém funcionalidades do core, tais como acesso e manipulação de memória, arquivos e hardware

Advapi32.dll

Prover acesso para aos componentes avançados do Core do Windows, como o Gerenciamento de Serviços e o Registro

Gdi32.dll

Funções para mostrar e manipular gráficos (interface para o Kernel do Windows). Executáveis geralmente não o importam diretamente, apesar de sempre ser importada indiretamente através da Kernel32.dll. Se um executável importar esse arquivo, isso significa que o autor pretendia usar a funcionalidade normalmente não disponível para programas do Windows. Algumas tarefas, como ocultar funcionalidade ou manipular processos, usarão essa interface

WSock32.dll a Ws2_32.dll

Estes são DLL's de rede. Um programa que acessa qualquer um desses provavelmente se conecta a uma rede ou realiza tarefas relacionadas à rede

Wininet.dll

Funções de rede de auto nível que implementam protocolos como FTP, HTTP e NTP

Comdlg32

Responsável por criar caixas de diálogo

User32.dll

Contém todos os componentes para interface de usuário, como botões, scroll bars, ações do usuário, etc

OBS.: Quando SetWindowsHookEx é chamada da DLL user32.dll, há uma grande probabilidade de ser um spyware / keylogger.

DICA: A pasta System32 é o “diretório do sistema” padrão do Windows a muito tempo. Independentemente se o Windows é 32 ou 64 bit, quando algum programa pergunta pra ele qual é o “diretório do sistema”, a resposta é C:\Windows\System32. Nos Windows 64 bits há uma pasta chamada SysWOW64, que é utilizada para programas de 32 bits rodarem normalmente no Windows 64. Em Windows 64 bit, as DLL’s 32 vão na pasta SysWOW64 e as DLL’s 64 vão na pasta System32. Parece um pouco confuso, mas é isso mesmo!

Last updated