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

reverse-engineering-dotnet-malware-with-dnspy

Ajuda seu agente a investigar malware feito em .NET. Ele decompila e depura o código para encontrar segredos e entender suas funções. É útil para analisar softwares maliciosos que visam sistemas Windows.

O que ela faz

Esta ferramenta ajuda a analisar programas feitos em .NET (como C# ou VB.NET) que podem ser maliciosos. Ela permite ver o código original, remover proteções e encontrar informações importantes como senhas ou endereços de comunicação.

Quando usar

  • ✓Quando você tem um programa .NET suspeito e quer entender o que ele faz.
  • ✓Se um programa .NET está disfarçado (ofuscado) e você precisa ver o código limpo.
  • ✓Para encontrar informações secretas como senhas ou endereços de servidores dentro de um programa .NET.

Exemplo do que pedir para a IA

“Analise este programa .NET suspeito e me diga se ele tenta roubar senhas.”

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-dotnet-malware-with-dnspy/SKILL.md

Mensagem pronta para colar

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

A ferramenta usa programas como dnSpy e de4dot para abrir o código do programa .NET. Ela remove as proteções e mostra o código de forma que você possa ler e procurar por informações.

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-dotnet-malware-with-dnspy

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/reverse-engineering-dotnet-malware-with-dnspy/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 .NET com dnSpy

Quando Usar

  • Uma amostra de malware é identificada como um assembly .NET (C#, VB.NET, F#) que requer descompilação
  • Análise de famílias de malware baseadas em .NET (AgentTesla, AsyncRAT, RedLine Stealer, Quasar RAT)
  • Desofuscação de código .NET protegido por ConfuserEx, SmartAssembly ou ofuscadores personalizados
  • Extração de configurações C2 hardcoded, chaves de criptografia e credenciais de assemblies gerenciados
  • Depuração de malware .NET em tempo de execução para observar rotinas de descriptografia e comportamento dinâmico

Não use para binários PE nativos (não gerenciados); use Ghidra ou IDA para análise de código nativo.

Pré-requisitos

  • dnSpy ou dnSpyEx instalado (https://github.com/dnSpyEx/dnSpy - fork mantido pela comunidade)
  • de4dot para desofuscação automática de .NET (https://github.com/de4dot/de4dot)
  • ILSpy como um descompilador alternativo para validação cruzada
  • .NET SDK instalado para recompilar assemblies modificados durante a análise
  • VM Windows isolada para executar o depurador dnSpy em malware ativo
  • Detect It Easy (DIE) para identificar o ofuscador .NET usado

Fluxo de Trabalho

Passo 1: Identificar Assembly .NET e Ofuscador

Verifique se a amostra é um binário .NET e detecte a proteção:

# Check if file is .NET assembly
file suspect.exe
# Output should contain "PE32 executable" with .NET metadata

# Detect obfuscator with Detect It Easy
diec suspect.exe

# Python-based .NET detection
python3 << 'PYEOF'
import pefile

pe = pefile.PE("suspect.exe")

# Check for .NET COM descriptor
if hasattr(pe, 'DIRECTORY_ENTRY_COM_DESCRIPTOR'):
    print("[*] .NET assembly detected")
    print(f"    Runtime version: {pe.DIRECTORY_ENTRY_COM_DESCRIPTOR}")
else:
    # Check for mscoree.dll import (alternative detection)
    for entry in pe.DIRECTORY_ENTRY_IMPORT:
        if entry.dll.decode().lower() == "mscoree.dll":
            print("[*] .NET assembly detected (mscoree.dll import)")
            break
    else:
        print("[!] Not a .NET assembly")

# Check section names for .NET indicators
for section in pe.sections:
    name = section.Name.decode().rstrip('\x00')
    if name in ['.text', '.rsrc', '.reloc']:
        print(f"    Section: {name} (typical .NET)")
PYEOF

Passo 2: Desofuscar com de4dot

Remova a ofuscação .NET comum antes da análise manual:

# Run de4dot to identify and remove obfuscation
de4dot suspect.exe -o suspect_cleaned.exe

# Force specific deobfuscator
de4dot suspect.exe -p cf  # ConfuserEx
de4dot suspect.exe -p sa  # SmartAssembly
de4dot suspect.exe -p dr  # Dotfuscator
de4dot suspect.exe -p rv  # Reactor
de4dot suspect.exe -p bl  # Babel.NET

# Verbose output for debugging
de4dot -v suspect.exe -o suspect_cleaned.exe

# Handle multi-file assemblies
de4dot suspect.exe suspect_helper.dll -o cleaned/
Common .NET Obfuscators:
━━━━━━━━━━━━━━━━━━━━━━━
ConfuserEx:      String encryption, control flow, anti-debug, anti-tamper
SmartAssembly:   String encoding, flow obfuscation, pruning
Dotfuscator:     Renaming, string encryption, control flow
.NET Reactor:    Native code generation, necrobit, anti-debug
Babel.NET:       String encryption, resource encryption, code virtualization
Crypto Obfuscator: String encryption, anti-debug, watermarking
Custom:          Malware-specific obfuscation (manual de4dot configuration needed)

Passo 3: Abrir no dnSpy e Analisar Código

Carregue o assembly desofuscado no dnSpy para análise em nível de código-fonte:

dnSpy Analysis Workflow:
━━━━━━━━━━━━━━━━━━━━━━━
1. File -> Open -> Select cleaned assembly
2. Navigate to the entry point:
   - Assembly Explorer -> <namespace> -> Program class -> Main method
   - Or: Right-click assembly -> Go to Entry Point

3. Key areas to examine:
   - Entry point (Main) for initialization and execution flow
   - Form classes for UI-based malware (RATs, stealers)
   - Network/HTTP classes for C2 communication
   - Crypto/encryption classes for data protection
   - Resource access for embedded payloads
   - Timer/Thread classes for persistence and scheduling

4. Navigation shortcuts:
   Ctrl+G       - Go to token/address
   Ctrl+Shift+K - Search assemblies
   F12          - Go to definition
   Ctrl+R       - Analyze (find usages)
   F5           - Start debugging
   F9           - Toggle breakpoint

Passo 4: Extrair Configuração e Dados C2

Localize a configuração hardcoded no código descompilado:

// Padrões comuns de configuração de malware .NET:

// Padrão 1: Classe estática com valores hardcoded

…
Perguntas frequentes

O que é .NET?

.NET é uma plataforma da Microsoft usada para criar diversos tipos de programas, incluindo aplicativos de desktop, sites e jogos. Muitos programas, incluindo alguns maliciosos, são feitos usando .NET.

O que é 'ofuscação'?

Ofuscação é uma técnica usada para tornar o código de um programa difícil de ler e entender, como se estivesse embaralhado. Isso é frequentemente usado por criadores de malware para esconder suas intenções.

Posso usar isso para analisar qualquer tipo de programa?

Não, esta ferramenta é específica para programas feitos com .NET. Para outros tipos de programas (chamados 'nativos'), você precisaria de outras ferramentas.

Detalhes

Descrição original do autor

Reverse engineers .NET malware samples using the dnSpy decompiler and debugger to read C#/VB.NET source, deobfuscate code protected by tools like ConfuserEx or SmartAssembly, and extract hardcoded C2 configurations, keys, and credentials. Use when a sample is identified as a .NET assembly (e.g. AgentTesla, AsyncRAT, RedLine Stealer, Quasar RAT) and needs decompilation, deobfuscation, or config ext

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#6188
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