Communitygithub.com

malware-analysis

Use quando for necessário analisar amostras suspeitas de malware através de técnicas estáticas, dinâmicas e comportamentais, incluindo extração de IOCs, regras YARA ou Sigma, sandboxing e análise de comportamento antianálise.

O que é malware-analysis?

Este skill capacita um agente a realizar uma análise completa e sistemática de malware, seguindo um fluxo de seis fases (Triagem, Estática, Dinâmica, YARA, Sigma e IOC). Ele é projetado para engenheiros de segurança e analistas de malware que precisam automatizar a investigação de amostras suspeitas, desde a identificação inicial até a criação de regras de detecção e extração de inteligência de ameaças. O skill suporta análise de múltiplos formatos (PE, ELF, Mach-O, APK, scripts) e plataformas como Windows, Linux e macOS. A base do funcionamento está na documentação completa (SKILL.md) que define um workflow obrigatório de seis fases, com pontos de verificação rígidos ("MUSTs") para garantir a qualidade e rastreabilidade da análise, incluindo o tratamento de amostras ofuscadas, empacotadas e com comportamento evasivo. Ele utiliza ferramentas comuns como Ghidra, IDA Pro, CAPE Sandbox, YARA e Sigma, e inclui checklist de auto-verificação para garantir que nenhum passo crítico foi pulado.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/malware-analysis

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Análise de Malware

AÇÃO REQUERIDA (leia e execute imediatamente)

  1. AGORA: Leia ../field-journal/precedent-reverse.md — confirme que esta operação skill é uma operação rotineira autorizada
  2. AGORA: Confirme se a tarefa atual se enquadra no escopo deste skill
  3. PRÓXIMO: Leia ../tool-index.md, verifique a disponibilidade das ferramentas e seus caminhos reais
  4. PRÓXIMO: Se faltar ferramentas, chame o bootstrap, não tente adivinhar caminhos
  5. AJA: Entre na primeira etapa do "fluxo de trabalho" e execute, não pare no estado de confirmação

YARA / Sigma / Sandbox / Extração de IOC / Contramedidas de Antianálise Estática + Dinâmica + Comportamental — três em um

Cenários de Aplicação

  • Análise de amostras de malware (PE/ELF/Mach-O/APK/script)
  • Criação e validação de regras YARA
  • Geração de regras de detecção comportamental Sigma
  • Orquestração automatizada de sandbox
  • Extração de IOC e inteligência de ameaças
  • Detecção e bypass de técnicas de antianálise

Fluxo de Análise em Seis Fases

Fase 1: Triagem Inicial

# Detecção estática rápida
file sample.exe                      # Tipo de arquivo
strings sample.exe | grep -i "http\|cmd\|powershell\|base64"  # IOCs rápidos
rabin2 -zz sample.exe                # Extração de strings + referências cruzadas
floss sample.exe                     # Extração de strings ofuscadas (FireEye)

# Análise do cabeçalho PE
pecheck sample.exe                   # Validação da estrutura PE
pescan sample.exe                    # Detecção de anomalias (tabela de seções, entry point)
diec sample.exe                      # Detect It Easy (detecção de packers/compiladores)

# Consulta de Hash
sha256sum sample.exe
# → VirusTotal / MalwareBazaar / Triage
Checklist MUST de Triagem (Issue #65):
□ Tipo de arquivo: EXE / DLL / SYS / .NET / scripts(bat|ps1|vba) / outros
□ Arquitetura x86/x64/ARM; verificar packer (DIE etc.) e pistas de linguagem de compilação
□ DLL/SYS: verificar tabela de importação e exportação em paralelo (ver Fase 2 regra dura)
□ .NET: sem IAT tradicional → usar dnSpy/IL/metadados como âncora equivalente (ver Fase 2)
□ Prioridade P0 para scripts/macros/DLL: veja nonpe-format-cookbook U–AV (E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)

Fase 1b: Unpacking e Reparo de IAT (quando houver packer · Issue #65)

□ Sem packer / .NET → pule para Fase 2
□ Com packer: tentar unpacking (ambiente isolado autorizado) → tentar reparar IAT
  - x86: ImportREC (ou equivalente); x64: Scylla (ou equivalente). Proibido usar ImportREC em 64 bits
□ 【Regra de Ferro do Reparo de IAT】 Priorizar reparo automático/semiautomático; se a ferramenta reportar erro ou o reparo resultar em falha de execução:
  - Interromper imediatamente a tentativa de reparo estático do IAT
  - DEVE registrar E-iat-repair-fail (comando, ferramenta, fenômeno)
  - Transicionar para Fase 3 Dinâmica: breakpoints em APIs relevantes (ex.: bp CreateFile) / breakpoints de hardware / busca em memória para capturar imports
  - Isso não é pular a tabela de importação: o caminho foi tentado e a Evidência foi registrada
□ 【Patch 6】 Após unpacking+reparo de IAT, o software crasha/tela azul (suspeita de CRC/auto-verificação de tamanho):
  - Abandonar reparo estático do arquivo; registrar E-self-check-crash ou anexar a E-iat-repair-fail
  - Transicionar para Fase 3: colocar breakpoint em CreateFile / GetFileSize / APIs relacionadas a hash
□ Viabilidade de instruções do usuário (§0.5): Se o usuário insistir em "antes de desempacotar, olhe a tabela de importação" quando há packer → explicar o bloqueio + solicitar confirmação; se forçar, registrar quality=unreadable/packed, proibido fingir que uma análise significativa de IAT foi concluída
□ Se o usuário solicitar refazer "reparo de IAT / verificação de tabela de importação": DEVE refazer a etapa nomeada (ou resultado de negociação prévia confirmada), proibido substituir por etapa não relacionada

Fase 2: Análise Estática

Descompilação/Desmontagem:
□ IDA Pro / Ghidra: descompilação profunda
□ radare2: análise rápida via CLI
□ x64dbg: depurador GUI para Windows

Áreas de Análise Críticas:
□ Entry Point → lógica de inicialização
□ Tabela de Importação → inferência de uso de APIs (CreateRemoteThread=injeção, CryptEncrypt=ransomware)
   **DEVE (regra dura)** : executar `rabin2 -i` / imports do IDA / comando equivalente a `pecheck`, classificar a tabela de importação em um resumo e escrever em Evidência (E-imports) antes de prosseguir para a Fase 3 (a menos que E-iat-repair-fail já tenha sido registrado e o bypass dinâmico esteja em andamento, veja Fase 1b)
   A classificação deve cobrir no mínimo: Rede / Arquivo / Criptografia / Injeção de Processo / Registro / Outras APIs Suspeitas
   Se a análise falhar ou a tabela estiver vazia: DEVE registrar a saída da falha, proibido pular silenciosamente
   **DLL/SYS**: DEVE registrar em paralelo a tabela de exportação como Evidência (E-exports, `rabin2 -E` ou equivalente)
   **.NET**: Sem IAT tradicional, DEVE usar dnSpy/IL/metadados/referências de assembly e resumo de APIs sensíveis como âncora equivalente, escrevendo em E-imports / E-triage-imports
   **Tabela de Importação Limpa**: Apenas DLLs básicas, quase nenhuma API de negócio → DEVE notar suspeita de carregamento dinâmico (LoadLibrary/GetProcAddress), DEVE transicionar para Fase 3 para capturar APIs em memória; se houver características de hash de importação → E-api-hash (Patch N)
   **Strings largas (T)**: Se ASCII strings não trouxer IOC, DEVE tentar UTF-16 novamente (strings -el / unicode no IDA)
   **Assinatura (F)**: Mesmo com assinatura, DEVE executar SigCheck; falsificação/revogação não reduzem nível de ameaça
   Se o usuário solicitar "refazer verificação de tabela de importação": DEVE refazer este item (se houver bloqueio, primeiro passar pela trava de viabilidade e negociar), proibido trocar por outra etapa para fingir conclusão
   **Combinações de APIs de Alto Risco (Patch 8)**: Se a tabela for muito longa, priorizar grupos de combinações maliciosas (ex.: FindWindow+WriteProcessMemory+CreateRemoteThread), filtrando o ruído de chamadas básicas de sistema
□ Seção de recursos → Payload embutido (seção .rsrc)
□ Tabela de strings → URL/C2/caminhos de arquivo/blobs Base64
□ TLS Callbacks → executam antes da inicialização do depurador

Fase 3: Análise Dinâmica em Sandbox

Sandboxes Automatizadas:
□ Joe Sandbox / ANY.RUN / Triage: sandboxes comerciais
□ CAPE Sandbox: código aberto + integração YARA (recomendado)
□ ASD Azul: plataforma de análise de malware de código aberto (lançada em 2026)
□ Cuckoo Sandbox: código aberto clássico (sendo substituído pelo CAPE)

Procedimento Inicial de Depuração (Patch 7+10 · ORDEM DEVE, depurador em modo usuário):
□ ① Breakpoint no TLS callback → ② Breakpoint no Entry Point EP → ③ Breakpoints em APIs sensíveis → ④ Breakpoint de segurança em ExitProcess/caminhos de saída
□ Quando ExitProcess for acionado: não reiniciar imediatamente; fazer dump da memória imediatamente, escrever caminho na Evidência (Patch 10)

Monitoramento Crítico:
□ Criação de processo: CreateProcess / ShellExecute
□ Operações de arquivo: WriteFile → Ransomware? DeleteFile → Wiper?
□ Registro: Run/RunOnce — persistência
□ Rede: HTTP/DNS → Comunicação C2
□ Memória: VirtualAllocEx → Injeção de processo
□ Serviço: CreateService → Persistência
□ Falha no reparo de IAT / Amostras que crasham com auto-verificação: breakpoints em APIs sensíveis + CreateFile/GetFileSize / breakpoints de execução por hardware / busca em memória

Ramificação de Emergência Sem Comportamento (DEVE):
□ Sem comportamento na sandbox, saída imediata ou sleep infinito → Verificar antianálise/anti-VM (CPUID, temporização, características do ambiente)
□ Tentar bypass com breakpoints de hardware, patching de pontos de verificação, ou trocar para máquina física/ambiente de maior fidelidade
□ Escrever "sem comportamento + condições" na Evidência; proibido escrever incondicionalmente como "amostra inofensiva"

Caixa de Tempo (Patch 9 · DEVE por padrão, pode ser sobrescrita):
□ Análise estática aprofundada por ~15 min sem caminho crítico → Forçar transição para esta Fase Dinâmica
□ Depuração dinâmica passo a passo por ~200 instruções sem pista maliciosa → Forçar retorno a strings estáticas/referências cruzadas para reancorar

Bypass de Antianálise/Ofuscação (Issue #65 A–T · detalhes em reverse-engineering/anti-analysis.md):
□ P0: CPUID / RDTSC / PEB / NtQueryInformationProcess → Registrar ponto de detecção e então contornar em laboratório ou trocar de ambiente (E-anti-debug-*)
□ P0: IAT limpo → Hash dinâmico de API (bp GetProcAddress, E-api-hash)
□ P0: strings vazias → Rotina de descriptografia de strings + strings largas UTF-16 (E-string-decrypt / E-wide-strings)
□ P1: Escaneamento de nome de processo / VEH / int3·DR / Sobreposição de seções / Overlay / .rsrc / Delay-Load
□ H/S: Fluxo de controle achatado e predicados opacos → ollvm-deobfuscation.md (não copiar texto longo aqui)
□ Bypass mal sucedido também escreve Evidência; proibido: término devido a antianálise = amostra inofensiva

Patching para Não-PE / Scripts / DLL (Issue #65 U–AV · detalhes em reverse-engineering/references/nonpe-format-cookbook.md):
□ bat/cmd: Reconstrução de SET por concatenação (U) → E-batch-deobf; BOM UTF-16 (V); Inundação por REM/GOTO (W)
□ PowerShell: Base64/Gzip multicamadas (X) — Evidência camada por camada; IEX concatenado/reverso (Z)
□ VBA: Stomping/P-Code (AA); Chr/Base64 (AB); Macro auto-modificante (AC)
□ DLL: TLS+DllMain (AJ); Export anômalo/sem export (AK/AL); Delay-Load veja A–T R (AM); Side-loading/Reflexiva (AO/AP)
□ JS/APK/Driver: Roteiro para js-reverse / apk-reverse / kernel-driver-reverse + cookbook, não copiar texto longo aqui

Fase 4: Criação de Regras YARA

// Estrutura da regra
rule Exemplo_FamiliaMalware {
    meta:
        description = "Detecta a família de malware Exemplo"
        author = "Analista"
        date = "2026-05"
        severity = "high"
        hash = "d41d8cd98f00b204e9800998ecf8427e"
        mitre_id = "T1055"  // Process Injection

    strings:
        // Correspondência de strings
        $str1 = "URL_SERVIDOR_C2" ascii wide
        $str2 = "payload.dat" ascii

        // Correspondência hexadecimal
        $hex1 = { 8B 45 ?? 50 FF 15 [4] 85 C0 }
        // Sequência de opcodes: mov eax, [ebp-?]; push eax; call [import]; test eax, eax

        // Correspondência por regex
        $re1 = /https?:\/\/[a-z0-9.-]+\/[a-z]{3,8}\.php/ ascii

    condition:
        // Condição combinada
        uint16(0) == 0x5A4D and     // Cabeçalho MZ
        filesize < 500KB and
        (2 of ($str*) or $hex1)
}

Fase 5: Geração de Regras Sigma

# Regra de detecção comportamental
title: Injeção de Processo Suspeita via CreateRemoteThread
id: 5a3d2c1b-1234-5678-9abc-def012345678
status: experimental
description: Detecta comportamento de injeção de processo usando CreateRemoteThread
author: Analista
date: 2026/05/25
tags:
    - attack.t1055          # Process Injection
    - attack.t1055.001      # DLL Injection
logsource:
    category: process_creation
    product: windows
detection:
    selection:
        Image|endswith: '\powershell.exe'
        CommandLine|contains:
            - 'CreateRemoteThread'
            - 'VirtualAllocEx'
            - 'WriteProcessMemory'
    condition: selection
falsepositives:
    - Ferramentas de depuração legítimas
level: high

Fase 6: Extração de IOC e Inteligência

Classificação de Tipos de IOC:
□ IOC de Rede:
  - IP: Endereço C2 (atenção à atualidade)
  - Domain: Domínios gerados por algoritmo DGA (ex.: rsnkfda.com, xpqmje.net)
  - URL: Endereço de hospedagem do Payload
  - User-Agent: String de UA personalizada

□ IOC de Host:
  - Caminho de arquivo: %APPDATA%\Microsoft\Crypto\RSA\*.dat
  - Registro: HKCU\Software\Microsoft\Windows\CurrentVersion\Run\
  - Mutex: Global\{GUID} — nome do mutex
  - Nome do serviço: Nome disfarçado de serviço do sistema

□ IOC Comportamental:
  - IDs de técnica MITRE ATT&CK (T1055, T1003, T1571...)
  - Regras Sigma → Integração SIEM
  - Regras YARA → Detecção em endpoint

□ IOC Estático:
  - Timestamp de compilação (pode ser falsificado)
  - Caminho PDB (contém informações do desenvolvedor)
  - Nome de seção anômalo (não padrão .text/.data)
  - Combinação anômala de tabela de importação (ex.: ransomware CryptEncrypt + DeleteShadowCopies)

Referência Rápida de Técnicas de Antianálise

TécnicaMétodo de DetecçãoCaracterística YARA
Detecção de VMWMI Win32_BIOS/VideoController/ProcessorString Win32_ + nome de fabricante específico
Detecção de SandboxDisco < 60GB, RAM < 2GB, CPU de núcleo únicoPadrão de chamada GlobalMemoryStatusEx
Detecção de DepuradorIsDebuggerPresent, CheckRemoteDebuggerPresentAcesso ao deslocamento PEB.BeingDebugged
Fuga TemporalSleep(300000) seguido de ação maliciosaParâmetro longo de NtDelayExecution
Detecção GeográficaVerifica layout do teclado/fuso horário → exclui países CISChamada GetKeyboardLayoutList
Detecção de Processo Paiexplorer.exe vs cmd.exeComparação de strings de nome de processo
Syscall Direto de APIBypass de hook EDRInstrução syscall + resolução SSN

Análise Automatizada Multi-Agente (Arquitetura SentinelHive)

┌─────────────────────────────────────────────────┐
│                  Hive Director                    │
│          (Claude Opus orquestração + arbitragem)  │
└──────┬──────┬──────┬──────┬──────┬───────┘
       │      │      │      │      │
   ┌───┘  ┌───┘  ┌───┘  ┌───┘  ┌───┘
   ▼      ▼      ▼      ▼      ▼      ▼
Triagem RE    Comport Intel  Detec  Remediação
  rápida  estática  dinâmico  ameaça  regras  plano
                          YARA
                          Sigma

Cadeia de Ferramentas

FerramentaPropósitoObter
Ghidra / IDA ProDescompilação profundaghidra-sre.org
CAPE SandboxSandbox de malware de código abertoGitHub: kevoreilly/CAPEv2
ASD AzulAnálise automatizada em larga escalaGitHub: ASD
YARAMotor de regras de correspondência de padrõespip install yara-python
SigmaRegras de detecção comportamental SIEMGitHub: SigmaHQ/sigma
FLOSSExtração de strings ofuscadaspip install flare-floss
Detect It EasyDetecção de packers/compiladoresGitHub: horsicq/Detect-It-Easy
pe-sieveEscaneamento de memória de processoGitHub: hasherezade/pe-sieve
VirusTotal APIEscaneamento multi-motorvirustotal.com
MalwareBazaarRepositório de amostras de malwarebazaar.abuse.ch

Referências

  • references/yara-sigma-rules.md — Metodologia de criação YARA + Sigma
  • references/sandbox-orchestration.md — Orquestração e automação de sandbox
  • references/anti-analysis-techniques.md — Detecção de 94 técnicas de antianálise
  • ../reverse-engineering/references/re-agent-workflow.md — Regra de ferro do IAT e travas de seis fases (Issue #65)
  • ../reverse-engineering/anti-analysis.md — Receitas de resposta do agente A–T (anti-debug/bypass de ofuscação)
  • ../reverse-engineering/references/nonpe-format-cookbook.md — Receitas U–AV para múltiplos formatos não-PE (scripts/macros/JS/driver/DLL/Android)
  • ../reverse-engineering/references/ollvm-deobfuscation.md — Achatamento de fluxo / predicados opacos (H/S)

Auto-Verificação de Conclusão da Tarefa (DEVE passar antes de declarar conclusão)

  • Executei cada etapa do workflow (não apenas li)?
  • A verificação DEVE da tabela de importação foi executada e escrita na Evidência (E-imports ou âncora equivalente .NET)? DLL/SYS contém E-exports?
  • Se o reparo de IAT falhou ou a amostra crashou com auto-verificação: registrei E-iat-repair-fail / E-self-check-crash e transicionei para dinâmica?
  • Se houve solicitação de refazer: voltei para a etapa nomeada ou resultado de negociação prévia confirmada? Em caso de bloqueio, expliquei + solicitei confirmação em vez de trocar a etapa?
  • Na dinâmica, coloquei breakpoints na ordem de segurança TLS→EP→APIs sensíveis→ExitProcess? Tratei a caixa de tempo / combinação de APIs de alto risco conforme desvio?
  • Antianálise/ofuscação (A–T) foram registrados conforme as receitas anti-analysis? Assinatura inválida não rebaixou indevidamente a ameaça?
  • Tipos não-PE (scripts/macros/DLL etc.) registraram Evidência correspondente conforme cookbook U–AV (ex.: E-batch-deobf / E-ps-decode / E-vba-pcode / E-dll-*)?
  • Usei caminhos de ferramentas reais com base em tool-index?
  • Produzi Evidência reproduzível (comandos/scripts/screenshots/relatórios)?
  • Concluí e registrei os itens da Checklist exigidos pelas REGRAS?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

Habilidades Relacionadas