# DET0091 — Detection Strategy for Dynamic API Resolution via Hash-Based Function Lookups ## Descrição Esta estratégia detecta a resolução dinâmica de funções de API do Windows via hashing, técnica utilizada por malwares sofisticados para evitar importações estáticas detectáveis em tabelas IAT (Import Address Table). Em vez de importar `CreateProcess` diretamente, o malware percorre a lista de exports de DLLs carregadas calculando hashes dos nomes das funções até encontrar o hash alvo — tornando análise estática e detecção por assinatura muito mais difíceis. Os artefatos de detecção incluem: código que itera pelo PEB (Process Environment Block) para percorrer módulos carregados, loops sobre a export table de `ntdll.dll` ou `kernel32.dll` calculando hashes com algoritmos simples (ROR13, djb2), e ausência de imports estáticos para APIs sensíveis em executáveis que claramente as utilizam em runtime. Esta técnica é característica de shellcode e loaders como [[s0154-cobalt-strike]] beacons, [[metasploit]] e malware custom de APTs. A telemetria de EDR com visibilidade de memória pode detectar padrões de acesso ao PEB seguidos de chamadas a APIs que não constam na IAT do processo. YARA rules focando em loops de hashing com constantes conhecidas (ex: `0x6A4ABC5B` para ROR13 de `CreateRemoteThread`) são eficazes em análise estática e em memória. Grupos como [[g0096-apt41]] e desenvolvedores de crimeware avançado aplicam esta técnica rotineiramente. ## Indicadores de Detecção - Acesso ao PEB (`fs:[0x30]`/`gs:[0x60]`) em código fora de módulos legítimos do sistema - Presença de constantes de hash conhecidas em código executável (ROR13: `0x1F`, djb2: `0x1003F`) - Execução de APIs críticas (`VirtualAlloc`, `CreateThread`, `WriteProcessMemory`) por processos sem imports correspondentes na IAT - Loops de iteração sobre export tables de `ntdll.dll` ou `kernel32.dll` por código não-sistema - Shellcode em memória com padrão de resolução de API: acesso a PEB → percurso de listas → comparação de hash - Carregamento de DLLs via `LoadLibraryA` com hash calculado em vez de nome literal ## Técnicas Relacionadas - [[t1027-obfuscated-files-or-information]] — Ofuscação via hashing de API - [[t1620-reflective-code-loading]] — Carregamento reflexivo que frequentemente usa hashing - [[t1055-process-injection]] — Injeção de processo usando APIs resolvidas dinâmicamente - [[t1140-deobfuscate-decode]] — Fase de decodificação correlacionada - [[t1059-command-and-scripting-interpreter]] — Execução posterior às APIs resolvidas ## Analytics Relacionadas - [[an0250-analytic-0250|AN0250 — Analytic 0250]] --- *Fonte: [MITRE ATT&CK — DET0091](https://attack.mitre.org/detectionstrategies/DET0091)*