Pular para o conteúdo
Skillpedia
Diversos35 mil · #6190

reverse-engineering-malware-with-ghidra

Faz seu agente analisar programas maliciosos em baixo nível. Ele estuda o código de máquina para entender como o malware opera. É útil para investigar ameaças complexas e desconhecidas.

O que ela faz

Este programa ajuda a investigar como um software malicioso (vírus, etc.) funciona por dentro. Ele examina o código do programa para entender suas ações, como se comunica, quais segredos ele tenta roubar ou como ele se esconde.

Quando usar

  • ✓Quando um antivírus alerta sobre um programa suspeito e você quer entender o que ele faz.
  • ✓Para descobrir como um programa malicioso envia informações para um servidor.
  • ✓Para encontrar senhas ou chaves escondidas dentro de um programa.

Exemplo do que pedir para a IA

“Analise este arquivo suspeito para descobrir como ele se comunica com seu servidor.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/reverse-engineering-malware-with-ghidra/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/reverse-engineering-malware-with-ghidra/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O programa usa uma ferramenta chamada Ghidra para ler o código de programas que já foram compilados (transformados em linguagem de máquina). Ele mostra o código de uma forma que um humano pode entender, permitindo a análise.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill reverse-engineering-malware-with-ghidra

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/reverse-engineering-malware-with-ghidra/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Engenharia Reversa de Malware com Ghidra

Quando Usar

  • Análise estática e dinâmica identificaram funcionalidades suspeitas que exigem um entendimento mais profundo no nível do código.
  • Você precisa fazer engenharia reversa de protocolos de comunicação C2 (Comando e Controle), algoritmos de criptografia ou ofuscação personalizada.
  • Entender o mecanismo exato de exploração ou a vulnerabilidade visada por uma amostra de malware.
  • Extrair dados de configuração codificados (endereços C2, chaves de criptografia, IDs de campanha) embutidos no código compilado.
  • Desenvolver regras YARA precisas ou assinaturas de detecção baseadas em padrões de código únicos.

Não use para triagem inicial de amostras desconhecidas; realize análise estática com PEStudio e análise comportamental com Cuckoo primeiro.

Pré-requisitos

  • Ghidra 11.x instalado (baixe em https://ghidra-sre.org/) com JDK 17+
  • VM de análise isolada da rede de produção (host Windows ou Linux)
  • Familiaridade com linguagem assembly x86/x64 e convenções da API do Windows
  • Arquivos de símbolos PDB para DLLs do sistema Windows para melhorar a precisão da descompilação
  • Repositório de scripts Ghidra (ghidra_scripts) para tarefas de análise automatizada
  • Referência secundária: IDA Free ou Binary Ninja para validação cruzada dos resultados da análise

Fluxo de Trabalho

Passo 1: Criar Projeto e Importar Binário

Configure um projeto Ghidra e importe a amostra de malware:

1. Launch Ghidra: ghidraRun (Linux) or ghidraRun.bat (Windows)
2. File -> New Project -> Non-Shared Project -> Select directory
3. File -> Import File -> Select malware binary
4. Ghidra auto-detects format (PE, ELF, Mach-O) and architecture
5. Accept default import options (or specify base address if known)
6. Double-click imported file to open in CodeBrowser
7. When prompted, run Auto Analysis with default analyzers enabled

Análise headless para automação:

# Run Ghidra headless analysis with decompiler
/opt/ghidra/support/analyzeHeadless /tmp/ghidra_project MalwareProject \
  -import suspect.exe \
  -postScript ExportDecompilation.py \
  -scriptPath /opt/ghidra/scripts/ \
  -deleteProject

Passo 2: Identificar Funções Chave e Pontos de Entrada

Navegue pelo binário para localizar seções críticas de código:

Navigation Strategy:
━━━━━━━━━━━━━━━━━━━
1. Start at entry point (OEP) - follow execution from _start/WinMain
2. Check Symbol Tree for imported functions (Window -> Symbol Tree)
3. Search for cross-references to suspicious APIs:
   - VirtualAlloc/VirtualAllocEx (memory allocation for injection)
   - CreateRemoteThread (remote thread injection)
   - CryptEncrypt/CryptDecrypt (encryption operations)
   - InternetOpen/HttpSendRequest (C2 communication)
   - RegSetValueEx (persistence via registry)
4. Use Search -> For Strings to find embedded URLs, IPs, and paths
5. Check the Functions window sorted by size (large functions often contain core logic)

Atalhos de teclado do Ghidra para navegação eficiente:

G         - Go to address
Ctrl+E    - Search for strings
X         - Show cross-references to current location
Ctrl+Shift+F - Search memory for byte patterns
L         - Rename label/function
;         - Add comment
T         - Retype variable
Ctrl+L    - Retype return value

Passo 3: Analisar Código Descompilado

Use o descompilador do Ghidra para entender a lógica das funções:

// Example: Ghidra decompiler output for a decryption routine
// Analyst renames variables and adds types for clarity

void decrypt_config(BYTE *encrypted_data, int data_len, BYTE *key, int key_len) {
    // XOR decryption with rolling key
    for (int i = 0; i < data_len; i++) {
        encrypted_data[i] = encrypted_data[i] ^ key[i % key_len];
    }
    return;
}

// Analyst actions in Ghidra:
// 1. Right-click parameters -> Retype to correct types (BYTE*, int)
// 2. Right-click variables -> Rename to meaningful names
// 3. Add comments explaining the algorithm
// 4. Set function signature to propagate types to callers

Passo 4: Rastrear Lógica de Comunicação C2

Siga o caminho do código de comunicação de rede:

Analysis Steps for C2 Protocol Reverse Engineering:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. Find InternetOpenA/WinHttpOpen call -> trace to wrapper function
2. Follow data flow from encrypted config -> URL construction
3. Identify HTTP method (GET/POST), headers, and body format
4. Locate response parsing logic (JSON parsing, custom binary protocol)
5. Map the C2 command dispatcher (switch/case or jump table)
6. Document the command set (download, execute, exfiltrate, update, uninstall)

…

Perguntas frequentes

Preciso ser um programador experiente para usar isso?

É útil ter algum conhecimento básico de como os computadores entendem instruções (linguagem de assembly) e como os programas interagem com o sistema operacional, mas a ferramenta Ghidra ajuda a tornar o código mais legível.

Posso usar isso para criar vírus?

Esta ferramenta é para entender e analisar softwares maliciosos existentes, não para criá-los. O objetivo é a defesa e a segurança.

O que é 'engenharia reversa'?

É o processo de desmontar algo (neste caso, um programa de computador) para entender como ele foi construído e como funciona, sem ter o projeto original.

Detalhes

Descrição original do autor

Reverse engineers malware binaries using NSA''s Ghidra disassembler and decompiler to study internal logic, cryptographic routines, C2 protocols, and evasion techniques at the assembly and pseudo-C level. Use when static or dynamic analysis flags suspicious functionality needing deeper code review, such as reversing C2 protocols, encryption algorithms, custom obfuscation, or a sample''s exploit me

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6190
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas