dotnet-reverse
Faz seu agente analisar e entender programas feitos em .NET e C#. É útil para investigar ferramentas de segurança ou programas que foram modificados. Ajuda a ver como o código funciona por dentro.
O que ela faz
Esta ferramenta ajuda a analisar programas feitos em .NET ou C#. Ela é útil para entender como esses programas funcionam por dentro, especialmente se eles foram modificados para serem mais difíceis de entender (ofuscados) ou se são ferramentas usadas em segurança.
Quando usar
- ✓Quando você tem um programa .NET ou C# e quer ver o código.
- ✓Se um programa .NET parece ter sido 'embaralhado' para esconder seu funcionamento.
- ✓Para analisar ferramentas de segurança que usam .NET.
Exemplo do que pedir para a IA
“Analise este programa C# e me diga como ele se conecta à internet.”
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 especializadas para primeiro verificar se o programa é realmente .NET. Se estiver ofuscado, ela tenta 'desofuscar' o código. Depois, permite ver o código em uma linguagem intermediária (IL) ou em C#, e até fazer pequenas modificaçõ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 zhaoxuya520/reverse-skill --skill dotnet-reverseOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/zhaoxuya520/reverse-skill/main/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.
Manual de Tarefas de Engenharia Reversa .NET / C#
AÇÃO NECESSÁRIA (Leia e execute imediatamente)
NOW: Use DIE/file/Cabeçalhos CLR para confirmar que o alvo é .NET gerenciado (caso contrário, mude paraida-reverse//reverse-engineering/)NOW: Se houver suspeita de ofuscação → primeirode4dotpara desofuscar, produza*-clean.exee guarde a amostra originalNEXT: dnSpyEx (ou dnSpy MCP /ilspycmd) estático: Navegação em C# + Visualização IL para pontos de decisão chaveACT: Depuração dinâmica para texto claro/C2 necessário; para modificar lógica, patch IL tem prioridade sobre recompilação em C#- Ao final da fase, forneça ao usuário 3-6 opções para o próximo passo (incluindo exportação de relatório)
Escopo de Aplicação
Use esta habilidade prioritariamente quando a tarefa se enquadrar nos seguintes cenários:
- Identificar e fazer engenharia reversa de artefatos de compilação .NET / C# (PE gerenciado / .exe / .dll)
- Analisar toolchains Sharp* de equipes vermelhas (Rubeus, SharpHound, SharpShell, etc.)
- Desofuscar/descompactar ConfuserEx / SmartAssembly / Babel / Eazfuscator / .NET Reactor, etc.
- Fazer engenharia reversa da lógica de descriptografia e C2 de loaders .NET / info-stealers / RATs
- Aplicar patches em programas C# (modificar decisões, constantes, keygens)
- Analisar a camada gerenciada Mono/Unity antes do IL2CPP (Nota: após a compilação IL2CPP, torna-se nativo, siga
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
- Identifique primeiro, depois aja: Confirme primeiro se é um programa .NET gerenciado (cabeçalho PE CLR + fluxo
#~/#Strings+ fluxo mscoree_CorExeMain) antes de decidir usar dnSpy em vez de IDA. - IL tem prioridade sobre C#: O descompilador C# do dnSpyEx pode perder/distorcer informações (máquinas de estado geradas pelo compilador, async/await, yield). Decisões chave e patches devem ser feitos no editor IL. A visualização em C# serve apenas para navegação rápida.
- de4dot primeiro: Ao encontrar um ofuscador, use
de4dotpara desofuscar primeiro antes de fazer a análise estática, caso contrário, strings/fluxo de controle estarão bagunçados. - Interoperabilidade MCP: Se o dnSpy MCP (ferramenta
dnspy_*) estiver registrado no ambiente, use a interface MCP para descompilação/inspeção IL prioritariamente, evitando alternar entre GUIs. - Saída como evidência: Produtos de desofuscação, configurações/C2/chaves extraídas, diffs de patch devem ser salvos em disco.
Mapeamento da Cadeia de Ferramentas
| Capacidade | Preferencial | Observações |
|---|---|---|
| Descompilação + Depuração + Patch | dnSpyEx | Ferramenta principal, única com editor IL GUI; 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 principais ofuscadores como ConfuserEx, SmartAssembly, etc. |
| Identificação de Ofuscador | Detect It Easy (DIE) / file | Determine o tipo de ofuscador primeiro para 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 host 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 Fases
1. Identificar (.NET)
Confirme que o alvo é um programa gerenciado e 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](Cabeçalho de Tempo de Execução CLR) diferente de zero - Importação
mscoree.dll/ Ponto de 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 string System.Private.CoreLib e metadados de tipo reconstruídos — para estes, use reverse-engineering/ (IDA/r2). Esta habilidade apenas fornece um aviso 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 para detalhes):
| 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 reconhece 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 e exigir 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. Guarde a 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: Pontos de decisão chave, lógica de criptografia, máquinas de estado devem ser visualizados em IL (clique com o botão direito → Editar IL ou Visualização IL).
- Encontre o ponto de entrada:
Main/Startup/ inicializador de módulo (Module .cctor). - Encontre a lógica chave: Procure por
flag,password,verify,check,encrypt,http,Config.
定位字符串 → 反向引用 → 找到使用它的方法 → IL 视图看判断逻辑
5. Dinamicamente (Depuração)
Depurador do dnSpyEx: Anexe ao processo / Inicie a depuração, defina pontos de interrupção em métodos chave 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ção (anti-debug frequentemente usa
try/catchpara ocultar o caminho real).
A depuração dinâmica .NET é muito mais amigável do que a nativa — você pode ver diretamente os valores dos objetos e o conteúdo das strings. Priorize a depuração dinâmica em vez de se debater com a 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 em C# pode falhar (falta de referências, sintaxe incorreta), enquanto a edição IL raramente distorce informações. Veja references/common-workflow.md para detalhes.
Roteamento de Cenário de Gatilho
Entre nesta habilidade quando o usuário disser:
- "Engenharia reversa de binários .NET / C#" / "Descompilação de programa C#"
- "Análise com dnSpy" / "Patch com dnSpyEx"
- "Desofuscação / Descompactação de ConfuserEx / SmartAssembly / Babel"
...
Perguntas frequentes
O que é 'ofuscação'?
É como embaralhar o código de um programa para torná-lo muito difícil para as pessoas entenderem, mesmo que o programa continue funcionando normalmente.
Qual a diferença entre C# e IL?
C# é a linguagem que os programadores escrevem. IL (Intermediate Language) é uma linguagem mais básica que o computador entende melhor antes de rodar o programa. Para análise profunda, ver o IL é mais confiável.
Posso usar isso para qualquer programa?
Não, esta ferramenta é específica para programas feitos com .NET ou C#. Programas feitos em outras linguagens (como C++ ou Go) precisam de outras ferramentas.
Detalhes
Descrição original do autor
.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)。
Popularidade
- Estrelas no GitHub
- 42 mil
- Posição no ranking
- #4762
- Licença
- MIT
- Atualizada em
- 22/09/2026
Comentários
- …
Mais skills deste repositório
competition-ad-certificate-abuse
Ajuda seu agente a analisar ataques a sistemas de certificados digitais. Ele investiga como certificados podem ser usados indevidamente para obter acesso.
zhaoxuya520/reverse-skill
competition-agent-cloud
Faz seu agente analisar desafios de segurança em sistemas de IA e nuvem. Ele investiga como prompts, ferramentas e a nuvem podem ser explorados.
zhaoxuya520/reverse-skill
competition-android-hooking
Ajuda seu agente a investigar aplicativos Android. Ele analisa como os aplicativos funcionam internamente e como podem ser modificados ou explorados.
zhaoxuya520/reverse-skill
competition-browser-persistence
Faz seu agente analisar como sites guardam informações no seu navegador. Ele investiga cookies e outros dados para entender como as sessões funcionam.
zhaoxuya520/reverse-skill
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC