dotnet-reverse
Realiza engenharia reversa em binários .NET/C#. É útil para analisar softwares, depurar e ofuscar código, especialmente em cenários de segurança.
O que ela faz
Esta ferramenta ajuda a analisar e modificar programas feitos em .NET/C#. Ela pode desofuscar códigos complicados, depurar e até mesmo fazer pequenas alterações em programas existentes.
Quando usar
- ✓Quando você tem um programa .NET/C# que parece confuso ou protegido.
- ✓Para entender como funcionam ferramentas de segurança (red-team) feitas em C#.
- ✓Se você precisa fazer pequenas correções ou alterações em um programa .NET.
Exemplo do que pedir para a IA
“Analise este programa .NET e remova a ofuscação.”
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
Ela usa ferramentas como dnSpyEx e de4dot para primeiro identificar se o programa é .NET, depois remover proteções e, por fim, permitir a análise ou modificação do código.
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 sickn33/agentic-awesome-skills --skill dotnet-reverseOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/dotnet-reverse/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.
Guia de Engenharia Reversa de .NET / C#
Quando Usar
- Analisar um assembly .NET, um produto C# ofuscado ou um binário native-AOT.
- Entender os detalhes internos das ferramentas de "red team" Sharp* antes de usar ou se defender.
Escopo de Aplicação
Use esta habilidade preferencialmente quando a tarefa se enquadrar nos seguintes cenários:
- Identificar e fazer engenharia reversa de produtos compilados em .NET / C# (PE gerenciado / .exe / .dll)
- Analisar a cadeia de ferramentas Sharp* de "red team" (Rubeus, SharpHound, SharpShell, etc.)
- Desofuscar "shells" como ConfuserEx / SmartAssembly / Babel / Eazfuscator / .NET Reactor
- Fazer engenharia reversa da lógica de descriptografia e C2 de loaders .NET / info-stealers / RATs
- Aplicar patches em programas C# (modificar condições, constantes, gerar chaves)
- Analisar a camada gerenciada Mono/Unity antes do IL2CPP (Nota: após a compilação IL2CPP, torna-se nativo, use
reverse-engineering/+ seed-014)
Se o alvo for um binário puramente nativo (compilado em C/C++/Go/Rust, sem CLR), use reverse-engineering/, ida-reverse/ ou radare2/.
Princípios Fundamentais
- Identificar antes de agir: Primeiro, confirme se é um programa gerenciado .NET (cabeçalho PE CLR + fluxo
#~/#Strings+ fluxo_CorExeMainmscoree), e então decida usar dnSpy em vez de IDA. - IL antes de C#: O descompilador C# do dnSpyEx pode perder/distorcer informações (máquinas de estado geradas pelo compilador, async/await, yield). Para decisões críticas e patches, mude para o editor IL. A visualização C# serve apenas para navegação rápida.
- de4dot primeiro: Ao encontrar um ofuscador, execute
de4dotpara desofuscar uma vez antes da análise estática. Caso contrário, strings/fluxo de controle estarão ilegíveis. - Integração MCP: Se o dnSpy MCP (ferramenta
dnspy_*) estiver registrado no ambiente, use a interface MCP preferencialmente para descompilação/inspeção IL, evitando alternar entre GUIs. - Saída como evidência: Salve os produtos desofuscados, configurações/C2/chaves extraídas e diffs de patches em disco.
Mapeamento da Cadeia de Ferramentas
| Capacidade | Preferencial | Observações |
|---|---|---|
| Descompilação + Depuração + Patch | dnSpyEx | Ferramenta principal, única GUI com editor IL; o dnSpy antigo está descontinuado, use o fork Ex. |
| Descompilação CLI leve / headless | ILSpy (ilspycmd) |
Adequado para processamento em lote, scripts, Linux/macOS. |
| Desofuscação | de4dot | Solução padrão para os "shells" mais comuns como ConfuserEx, SmartAssembly, etc. |
| Identificação de Ofuscadores | Detect It Easy (DIE) / file | Determine o tipo de "shell" antes de definir os parâmetros do de4dot. |
| Manipulação programática de IL | dnlib | Escreva scripts C# para modificar metadados em lote / desofuscadores de strings. |
| Manipulação direta por IA | dnSpy MCP | Interfaces de ferramentas como dnspy_decompile / dnspy_inspect_il. |
Pré-requisitos: Instale dnSpyEx + de4dot no Windows (via choco ou release); use
ilspycmd+dotnet runtimeno Linux/macOS. Veja a matriz de instalação emreferences/sharp-tools.mdpara detalhes.
Fluxo de Trabalho de Seis Estágios
1. Identificar (.NET)
Confirme se o alvo é um programa gerenciado, não analise um PE nativo como .NET:
# Windows
file target.exe # "PE32 executable ... for MS Windows" 不够
# 关键:看有没有 CLR
powershell -c "[System.Reflection.AssemblyName]::GetAssemblyName('target.exe')"
# 或
dnSpyEx 直接拖进去 —— 能打开就是托管
# 通用
strings target.exe | grep -iE "mscoree|_CorExeMain|mscorlib|System\\."
Indicadores de Identificação .NET:
- Cabeçalho PE
Data Directory[14](CLR Runtime Header) diferente de zero - Importação
mscoree.dll/ Entrada_CorExeMain - Fluxos de metadados
#~,#Strings,#US,#GUID,#Blob - Strings
mscorlib/System.Private.CoreLib
Exceção NativeAOT: Compilado para nativo, sem cabeçalho CLR, mas com strings System.Private.CoreLib e metadados de tipo reestruturados — para estes, use reverse-engineering/ (IDA/r2). Esta habilidade apenas fornece dicas de identificação.
2. Detectar (Ofuscador)
# DIE 快速识别
diec target.exe # Detect It Easy CLI
# 或拖进 dnSpyEx,看是否大量乱码类名 / 控制流变形
Ofuscadores comuns → Estratégias de desofuscação (veja references/obfuscators.md):
| Ofuscador | Característica | Tratamento com de4dot |
|---|---|---|
| ConfuserEx (1.0.0 / 2.x) | <module> anti-tamper, deformação de fluxo de controle, criptografia de strings |
de4dot target.exe Geralmente reconhecido automaticamente |
| SmartAssembly | circular/string encoding, compressão de recursos |
de4dot target.exe |
| Babel.NET | Criptografia de corpo de método, fluxo de controle | de4dot target.exe |
| Eazfuscator.NET | Criptografia de strings/recursos | de4dot, algumas versões podem exigir intervenção manual |
| .NET Reactor | anti-tamper + necrobit | de4dot, versões mais recentes podem falhar, exigindo intervenção manual |
3. Desofuscar
# de4dot 默认自动识别大多数壳
de4dot target.exe -o target-clean.exe
# 指定类型(自动识别失败时)
de4dot --type cfze target.exe # ConfuserEx
de4dot --type sa target.exe # SmartAssembly
# 多层混淆 / de4dot 报 unknown
de4dot --detect target.exe # 看它识别成什么
# 可能要先 patch anti-tamper 再 de4dot(见 references/obfuscators.md)
Saída: target-clean.exe, use-o para análises posteriores. Mantenha o amostra original para comparação.
4. Analisar Estaticamente
Carregue a amostra desofuscada no dnSpyEx:
- Visualização C#: Navegue rapidamente pela estrutura de classes, assinaturas de métodos, strings (para localização).
- Visualização IL: Para decisões críticas, lógica de criptografia e máquinas de estado, é essencial visualizar o IL (clique com o botão direito → Editar IL ou Visualização IL).
- Encontre o ponto de entrada:
Main/Startup/ inicializadores de módulo (Module .cctor). - Encontre a lógica chave: procure por
flag,password,verify,check,encrypt,http,Config.
定位字符串 → 反向引用 → 找到使用它的方法 → IL 视图看判断逻辑
5. Dinamicamente (Depuração)
Use o depurador do dnSpyEx: anexe ao processo / inicie a depuração, defina pontos de interrupção em métodos cruciais e observe em tempo de execução:
- Strings em texto claro após a descriptografia (muitos ofuscadores descriptografam strings em tempo de execução).
- Endereços C2, resultados de descriptografia de configuração.
- Fluxo de controle acionado por exceções (anti-debug frequentemente usa
try/catchpara ocultar o caminho real).
A depuração dinâmica em .NET é muito mais amigável do que em código nativo — você pode ver diretamente os valores dos objetos e o conteúdo das strings. Priorize a depuração dinâmica em vez de se prender à análise estática.
6. Patch (Modificar Conforme Necessário)
dnSpyEx → 右键方法 → Edit Method (C#) 或 Edit IL
- 改判断:ldc.i4.0 → ldc.i4.1(false→true)
- 改常量:直接编辑字符串/数字
- 删除校验:nop 掉整段
File → Save Module → 替换原文件
Confiabilidade do patch IL > Patch C#: A recompilação C# pode falhar (falta de referências, sintaxe incorreta), enquanto a edição IL raramente causa distorções. Veja references/common-workflow.md para detalhes.
Roteamento de Cenários de Acionamento
Entre nesta habilidade quando o usuário disser:
- "Engenharia reversa de binários .NET / C#" / "Descompilação de programas C#"
- "Análise com dnSpy" / "Patch com dnSpyEx"
- "Desofuscação / Desofuscamento de ConfuserEx / SmartAssembly / Babel"
- "Análise de ferramentas Sharp* (Rubeus / SharpHound / SharpShell)"
- "Engenharia reversa de malware .NET / loader / info-stealer"
- "Patch / geração de chaves / modificação de condições em programas C#"
Quando Sair
…
Perguntas frequentes
O que é 'ofuscação'?
É uma técnica usada para tornar o código difícil de entender por humanos, como embaralhar nomes de variáveis ou complicar a lógica.
Posso usar isso para 'hackear' programas?
Esta ferramenta é para análise e aprendizado. Modificar programas sem permissão pode ter consequências legais.
Preciso instalar algo extra?
Sim, geralmente é necessário ter o dnSpyEx e o de4dot instalados no seu computador para que esta ferramenta funcione corretamente.
Detalhes
Descrição original do autor
.NET/C# binary reverse engineering: managed PE analysis, dnSpyEx debugging, de4dot deobfuscation (ConfuserEx/SmartAssembly/Babel), IL patching, NativeAOT targets, and analysis of red-team Sharp* tooling.
Popularidade
- Estrelas no GitHub
- 48 mil
- Posição no ranking
- #2879
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
00-andruia-consultant
Ajuda seu agente a iniciar ou melhorar projetos de IA. Ele analisa código, sugere ferramentas e cria planos de ação em espanhol.
sickn33/agentic-awesome-skills
007
Faz seu agente realizar auditorias de segurança e modelagem de ameaças. É útil para proteger projetos contra ataques e vulnerabilidades.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Ajuda seu agente a criar ou melhorar ferramentas de IA. Ele define como as ferramentas funcionam, escreve a documentação e valida a estrutura.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Faz seu agente criar um resumo sobre um setor específico. É útil para entender o contexto, regras, padrões de uso e riscos de um projeto, usando fontes confiáveis.
sickn33/agentic-awesome-skills
Skills parecidas
django-security
Ajuda seu agente a implementar práticas de segurança em aplicações Django. Ele foca em autenticação, autorização e prevenção contra ataques comuns, garantindo um código mais seguro.
affaan-m/ECC
laravel-security
Ajuda seu agente a proteger aplicações Laravel contra ameaças. Implementa práticas de segurança para autenticação, autorização e prevenção de ataques comuns.
affaan-m/ECC
module-regression
Ajuda seu agente a gerenciar mudanças em projetos grandes. Garante que alterações em uma parte do código não quebrem outras partes.
affaan-m/ECC