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
Mensagem pronta para colar
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-dnspyOu 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.mdConteú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
Popularidade
- Estrelas no GitHub
- 35 mil
- Posição no ranking
- #6188
- Licença
- Apache-2.0
- Atualizada em
- 31/08/2026
Comentários
- …
Mais skills deste repositório
abusing-dpapi-for-credential-access
Dá ao seu agente de IA instruções prontas para uma tarefa específica, para ele fazer melhor e mais rápido.
mukul975/Anthropic-Cybersecurity-Skills
abusing-shadow-credentials-for-privesc
Ensina seu agente de IA a escrever textos claros e bem estruturados.
mukul975/Anthropic-Cybersecurity-Skills
achieving-cmmc-level-2-compliance
Ajuda seu agente a preparar um ambiente para conformidade com CMMC Nível 2. Ele implementa requisitos de segurança e gerencia a documentação necessária.
mukul975/Anthropic-Cybersecurity-Skills
acquiring-disk-image-with-dd-and-dcfldd
Ajuda seu agente a criar cópias exatas de discos rígidos. Isso é útil para garantir que nenhuma informação seja perdida ou alterada durante investigações.
mukul975/Anthropic-Cybersecurity-Skills
Skills parecidas
dashboard-builder
Ajuda seu agente a criar painéis de monitoramento úteis. Ele transforma dados em gráficos que respondem a perguntas importantes sobre o sistema.
affaan-m/ECC
dev-team
Simula uma equipe de desenvolvimento colaborativa, onde diferentes papéis respondem a um problema juntos. É útil para obter múltiplas perspectivas sem trocar de agente manualmente.
affaan-m/ECC
ecc-council
Faz seu agente reunir um conselho de quatro vozes para tomar decisões difíceis. É útil quando há várias opções boas e é preciso debater antes de escolher.
affaan-m/ECC