Communitygithub.com

dotnet-reverse

.NET / C# Binäres Reverse Engineering. Für .NET-Assemblys, C#-Kompilate (inkl. NativeAOT), Red-Team-Sharp*-Tools, .NET-Obfuskatoren (ConfuserEx, SmartAssembly usw.) und .NET-Malware. Bevorzugt dnSpyEx + de4dot, bei KI-Direktzugriff in Verbindung mit dnSpy MCP.

Was ist dotnet-reverse?

Dieses Skill (dotnet-reverse) dient der statischen und dynamischen Reverse-Engineering-Analyse von .NET/C#-Anwendungen, insbesondere von binären Assemblys mit CLR-Header (z. B. .exe/.dll). Es eignet sich für die Analyse von Red-Team-Tools wie Rubeus, SharpHound oder SharpShell, das Deobfuskatieren gängiger .NET-Schutzmechanismen (ConfuserEx, SmartAssembly, Babel, Eazfuscator, .NET Reactor) sowie das Patchen von IL-Instruktionen zur Änderung von Prüflogiken oder Konstanten. Der Arbeitsablauf gliedert sich in sechs Phasen: Identifikation (CLR-Prüfung), Erkennung von Obfuskation (z. B. mit DIE), Deobfuskation via de4dot, statische Analyse mit dnSpyEx (IL-Ansicht bevorzugt), dynamisches Debugging und gezieltes Patchen über IL-Editor. Das Skill setzt Windows mit dnSpyEx und de4dot voraus; unter Linux/macOS steht `ilspycmd` als CLI-Alternative bereit. Für native Binärdateien (C/C++, Go, Rust, IL2CPP, NativeAOT) wechselt die Route zu den Skills `reverse-engineering/` oder `ida-reverse/`.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/dotnet-reverse

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

.NET / C# Reverse-Engineering – Arbeitsrichtlinie

ACTION REQUIRED (sofort nach Lesen ausführen)

  1. NOW: Mit DIE/file/CLR-Header prüfen, ob das Ziel eine .NET Managed Assembly ist (ansonsten zu ida-reverse/ / reverse-engineering/ wechseln)
  2. NOW: Bei Obfuskationsverdacht → zuerst de4dot zum Entschleiern verwenden, Ausgabe *-clean.exe, Originalprobe behalten
  3. NEXT: dnSpyEx (oder dnSpy MCP / ilspycmd) statisch: C#-Durchsuchen + IL-Ansicht für kritische Entscheidungen
  4. ACT: Bei Bedarf nach Klartext/C2 dynamisch debuggen; bei Logikänderungen IL-Patch vor C#-Neukompilierung bevorzugen
  5. Am Ende dem Benutzer 3–6 nächste Schritte als Menü anbieten (inkl. Berichtsexport)

Anwendungsbereich

Dieses Skill wird vorrangig in folgenden Szenarien eingesetzt:

  • Erkennen und Reverse-Engineering von .NET / C#-Kompilaten (Managed PE / .exe / .dll)
  • Analyse von Red-Team-Sharp*-Werkzeugen (Rubeus, SharpHound, SharpShell usw.)
  • Entschleiern von ConfuserEx / SmartAssembly / Babel / Eazfuscator / .NET Reactor und ähnlichen Schützern
  • Reverse-Engineering der Entschlüsselung und C2-Logik von .NET-Loadern, Info-Stealern und RATs
  • Patchen von C#-Programmen (Ändern von Bedingungen, Konstanten, Keygen)
  • Analyse der Mono/Unity-Managed-Schicht vor IL2CPP (Hinweis: IL2CPP-kompilierte Dateien sind nativ → reverse-engineering/ + seed-014)

Wenn das Ziel eine reine native Binärdatei (C/C++/Go/Rust, kein CLR) ist, verwenden Sie stattdessen reverse-engineering/, ida-reverse/ oder radare2/.

Kernprinzipien

  • Erst identifizieren, dann loslegen: Zuerst bestätigen, dass es sich um ein .NET Managed Programm handelt (PE-Header CLR + #~ / #Strings-Streams + mscoree _CorExeMain), dann mit dnSpy arbeiten statt IDA
  • IL vor C#: Der C#-Decompiler von dnSpyEx kann Informationen verlieren oder verfälschen (Compiler-generierte Zustandsautomaten, async/await, yield). Kritische Prüfungen und Patches müssen im IL-Editor durchgeführt werden; die C#-Ansicht dient nur zum schnellen Überblick
  • de4dot zuerst: Bei Obfuskationsverdacht zuerst de4dot anwenden, bevor die statische Analyse beginnt – sonst sind Zeichenketten und Kontrollflüsse unlesbar
  • MCP-Kopplung: Wenn im System ein dnSpy MCP registriert ist (dnspy_*-Tools), bevorzugt über die MCP-Oberfläche decompilieren/IL inspizieren, um GUI-Wechsel zu vermeiden
  • Belegbare Ausgabe: Entschleierte Dateien, extrahierte Konfiguration/C2/Keys und Patch-Diffs müssen auf der Festplatte gespeichert werden

Werkzeugzuordnung

FähigkeitBevorzugtHinweise
Decompilieren + Debuggen + PatchendnSpyExDas Aushängeschild, einzige GUI mit IL-Editor; älteres dnSpy wird nicht mehr gepflegt – Ex-Zweig verwenden
Leichtgewichtiges CLI / Headless-DecompilierenILSpy (ilspycmd)Geeignet für Batch-, Skript- und Linux/macOS-Umgebungen
Entschleiernde4dotStandardlösung für ConfuserEx-Familie, SmartAssembly u. a. gängige Schützer
Erkennung von ObfuskationDetect It Easy (DIE) / fileZuerst den Schützertyp bestimmen, dann de4dot-Parameter wählen
Programmatische IL-BearbeitungdnlibC#-Skripte für Massenänderungen an Metadaten / Zeichenkettenentschlüsselung
KI-DirektzugriffdnSpy MCPÜber Werkzeugflächen wie dnspy_decompile / dnspy_inspect_il

Voraussetzung: Windows-Rechner mit installiertem dnSpyEx + de4dot (per choco oder als Release); Linux/macOS verwenden ilspycmd + dotnet runtime. Details zur Installationsmatrix finden Sie in references/sharp-tools.md.

Sechs-Phasen-Arbeitsablauf

1. Identifizieren (.NET erkennen)

Sicherstellen, dass das Ziel ein Managed Programm ist – keine native PE als .NET analysieren:

# Windows
file target.exe                       # „PE32 executable ... for MS Windows" reicht nicht
# Entscheidend: Prüfen auf CLR
powershell -c "[System.Reflection.AssemblyName]::GetAssemblyName('target.exe')"
# oder
dnSpyEx direkt ziehen – wenn es sich öffnet, ist es Managed

# Allgemein
strings target.exe | grep -iE "mscoree|_CorExeMain|mscorlib|System\."

.NET-Erkennungsmerkmale:

  • PE-Header Data Directory[14] (CLR Runtime Header) ungleich Null
  • Import von mscoree.dll / Einstiegspunkt _CorExeMain
  • Metadatenströme #~, #Strings, #US, #GUID, #Blob
  • Zeichenketten wie mscorlib / System.Private.CoreLib

NativeAOT-Ausnahme: Wird in nativem Code kompiliert, kein CLR-Header, aber enthält System.Private.CoreLib-Zeichenketten und umstrukturierte Typmetadaten – solche Dateien fallen unter reverse-engineering/ (IDA/r2); dieses Skill dient hier nur als Erkennungshinweis.

2. Erkennen (Obfuskator erkennen)

# DIE-Schnellerkennung
diec target.exe                        # Detect It Easy CLI
# oder in dnSpyEx ziehen und nach vielen verstümmelten Klassennamen / Kontrollflussverformungen suchen

Häufige Obfuskatoren → Entschleierungsstrategie (Details in references/obfuscators.md):

ObfuskatorMerkmalede4dot-Behandlung
ConfuserEx (1.0.0 / 2.x)<module> Anti-Tamper, Kontrollflussverformung, Zeichenkettenverschlüsselungde4dot target.exe (automatische Erkennung)
SmartAssemblycircular/string encoding, Ressourcenkomprimierungde4dot target.exe
Babel.NETMethodenkörperverschlüsselung, Kontrollflussde4dot target.exe
Eazfuscator.NETZeichenketten-/Ressourcenverschlüsselungde4dot; einige Versionen erfordern manuelle Eingriffe
.NET ReactorAnti-Tamper + Necrobitde4dot; neuere Versionen können fehlschlagen – dann manuell

3. Entschleiern (Deobfuskatieren)

# de4dot erkennt die meisten gängigen Schützer automatisch
de4dot target.exe -o target-clean.exe

# Typ explizit angeben (bei fehlgeschlagener automatischer Erkennung)
de4dot --type cfze target.exe          # ConfuserEx
de4dot --type sa target.exe            # SmartAssembly

# Mehrschichtige Obfuskation / de4dot meldet „unknown"
de4dot --detect target.exe             # Zeigt an, was erkannt wurde
# Eventuell muss zuerst Anti-Tamper gepatcht werden, bevor de4dot läuft (siehe references/obfuscators.md)

Ausgabe: target-clean.exe – für die weitere Analyse verwenden. Originalprobe zum Vergleich aufbewahren.

4. Statische Analyse

dnSpyEx lädt die entschleierte Probe:

  • C#-Ansicht: Schneller Überblick über Klassenstrukturen, Methodensignaturen, Zeichenketten (zur Orientierung)
  • IL-Ansicht: Kritische Prüfungen, Verschlüsselungslogik, Zustandsautomaten – immer in IL ansehen (Rechtsklick → Edit IL oder IL-Ansicht)
  • Einstiegspunkte suchen: Main / Startup / Modulinitialisierer (Module .cctor)
  • Nach Schlüssellogik suchen: flag, password, verify, check, encrypt, http, Config
Zeichenkette lokalisieren → Rückverfolgung → Methode mit ihrer Verwendung finden → IL-Ansicht für Prüflogik

5. Dynamisches Debuggen

dnSpyEx-Debugger: Prozess anhängen / Debugging starten, Haltepunkte in kritischen Methoden setzen, Laufzeit beobachten:

  • Entschlüsselte Klartext-Zeichenketten (viele Obfuskatoren entschlüsseln Zeichenketten erst zur Laufzeit)
  • C2-Adressen, Konfigurationsentschlüsselungsergebnisse
  • Ausnahmegesteuerte Kontrollflüsse (Anti-Debug verwendet oft try/catch, um den wahren Pfad zu verbergen)

.NET-Dynamisches Debugging ist viel benutzerfreundlicher als natives – Objektwerte und Zeichenketteninhalte sind direkt sichtbar. Dynamisches Debugging vor dem Verbeißen in statischer Analyse bevorzugen.

6. Patchen (nach Bedarf)

dnSpyEx → Rechtsklick auf Methode → Edit Method (C#) oder Edit IL
  - Prüfung ändern: ldc.i4.0 → ldc.i4.1 (false → true)
  - Konstanten ändern: Zeichenketten/Zahlen direkt bearbeiten
  - Prüfung entfernen: gesamten Block mit nop überschreiben
File → Save Module → Originaldatei ersetzen

IL-Patch zuverlässiger als C#-Patch: C#-Neukompilierung kann fehlschlagen (fehlende Referenzen, Syntaxfehler); IL-Edit verzerrt fast nie. Details in references/common-workflow.md.

Auslöser-Routing

Wenn der Benutzer Folgendes erwähnt, wird dieses Skill aktiviert:

  • ".NET / C#-Binäres Reverse Engineering" / „C#-Programm decompilieren"
  • "dnSpy-Analyse" / „dnSpyEx-Patch"
  • "ConfuserEx / SmartAssembly / Babel entschleiern / entpacken"
  • „Sharp*-Tool-Analyse" (Rubeus / SharpHound / SharpShell)
  • ".NET-Malware / Loader / Info-Stealer reverse-engineeren"
  • "C#-Programm patchen / Keygen / Prüfung ändern"

Wann ausgestiegen wird

  • IL2CPP-kompilierte Unity-Spiele → reverse-engineering/ + seed-014_unity-il2cpp-reverse.md (IL2CPP ist nativ, kein dnSpy)
  • NativeAOT-Produkte → reverse-engineering/ (ebenfalls nativ)
  • Reine native PE (kein CLR) → reverse-engineering/ / ida-reverse/
  • Symbole/Funktionen massenweise in andere Versionen portieren → binary-diff/
  • Angriffspfade / Aufrufketten grafisch darstellen → diagram-generator/

Routing-Kontext

Eingang: skills/SKILL.md (Hauptsteuerung), routing.md Ausgänge:

  • IL2CPP / NativeAOT (nativ) → reverse-engineering/
  • Tiefgehende native .so/.dll-Segmentanalyse → ida-reverse/ / radare2/
  • KI-Direktzugriff auf dnSpy → dnSpy MCP registrieren und anbinden (siehe references/sharp-tools.md)

Verwandte Module auf gleicher Ebene:

  • reverse-engineering/languages-compiled.md (.NET-Übersicht verweist auf dieses Modul)
  • apk-reverse/ (Xamarin/MAUI Android Reverse-Engineering kann für die C#-Schicht auf dieses Modul zurückgreifen)

Referenzdokumente

  • references/obfuscators.md – Detaillierte Entschleierung von ConfuserEx / SmartAssembly / Babel / Eazfuscator / .NET Reactor inkl. Anti-Tamper-Umgehung
  • references/common-workflow.md – Vollständiger Arbeitsablauf, Zuverlässigkeit von IL-Patches, Extraktion von Zeichenkettenentschlüsselungsroutinen, Erkennung von Zustandsautomaten
  • references/sharp-tools.md – Analyse von Red-Team-Sharp*-Tools, Werkzeug-Installationsmatrix, dnSpy-MCP-Integration, Index der Community-Ressourcen

Aufgabenabschluss-Checkliste

  • Wurde die CLR-/Managed-Identität bestätigt (oder wurde bereits in ein anderes Skill gewechselt)?
  • Wurde eine verdächtige Obfuskation vor der Tiefenanalyse mit de4dot / einer gleichwertigen Methode entschleiert?
  • Wurde die kritische Logik in der IL-Ansicht verifiziert (nicht nur C#-Pseudocode)?
  • Wurden die Artefakte (Clean-Probe / Konfiguration / Patch-Diff) gespeichert und sind reproduzierbar?
  • Wurde ein Menü mit nächsten Schritten oder ein Berichtsausgang angeboten?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

edr-bypass-re

|

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

go-rust-reverse

Use for reverse engineering stripped Go and Rust binaries including runtime recognition, pclntab/moduel data recovery, panic strings, and idiomatic decompilation recovery.

Verwandte Skills