Pular para o conteúdo
Skillpedia
Segurança48 mil · #2879

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

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/dotnet-reverse/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/dotnet-reverse/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-reverse

Ou 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.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.

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 _CorExeMain mscoree), 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 de4dot para 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 runtime no Linux/macOS. Veja a matriz de instalação em references/sharp-tools.md para 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/catch para 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.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2879
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas