dotnet-reverse
.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx /…
Skill by john0123412
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/john0123412-dotnet-reverse
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
dotnet-reverse- Description
- .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)。
- License
- MIT
- Compatibility
- Requires a filesystem-based code agent or CLI with shell access, Windows host preferred (dnSpyEx 是 Windows GUI);Linux/macOS 可用 ILSpy/de4dot CLI + mono/dotnet runtime。
- Allowed tools
- Bash, Read, Write, Edit, Glob, Grep, Task, WebFetch, WebSearch
- Metadata
- user-invocable: false
- Instructions
- 184 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (4)
- SKILL.md
- common-workflow.md · references/
- obfuscators.md · references/
- sharp-tools.md · references/
SKILL.md (first lines)
# .NET / C# 逆向作业规范
## ACTION REQUIRED(读完立刻执行)
1. `NOW`: 用 DIE/`file`/CLR 头确认目标是 .NET 托管(否则 SWITCH 到 `ida-reverse/` / `reverse-engineering/`)
2. `NOW`: 若疑似混淆 → 先 `de4dot` 脱壳,产出 `*-clean.exe`,保留原始样本
3. `NEXT`: dnSpyEx(或 dnSpy MCP / `ilspycmd`)静态:C# 浏览 + **IL 视图**看关键判断
4. `ACT`: 需要明文/C2 时动态调试;需要改逻辑时 **IL patch** 优先于 C# 重编译
5. 阶段结束给用户 3–6 项下一步菜单(含导出报告)
## 适用范围
当任务属于以下场景时优先使用本 skill:
- 识别并逆向 .NET / C# 编译产物(托管 PE / .exe / .dll)
- 分析红队 Sharp* 工具链(Rubeus、SharpHound、SharpShell 等)
- 脱混淆 ConfuserEx / SmartAssembly / Babel / Eazfuscator / .NET Reactor 等壳
- 逆向 .NET loader / info-stealer / RAT 的解密与 C2 逻辑
- 对 C# 程序做 patch(改判断、改常量、keygen)
- 分析 IL2CPP 之前的 Mono/Unity 托管层(注意:IL2CPP 编译后是 native,走 `reverse-engineering/` + seed-014)
如果目标是纯 native 二进制(C/C++/Go/Rust 编译、无 CLR),请改用 `reverse-engineering/`、`ida-reverse/` 或 `radare2/`。
## 核心原则
- **先识别再下手**:先确认是 .NET 托管程序(PE 头 CLR + `#~` / `#Strings` 流 + mscoree `_CorExeMain`),再决定走 dnSpy 而非 IDA
- **IL 优先于 C#**:dnSpyEx 的 C# 反编译器会丢失/扭曲信息(编译器生成的状态机、async/await、yield),关键判断与 patch 必须切到 **IL 编辑器**,C# 视图只用于快速浏览
- **de4dot 先行**:遇到混淆器先 `de4dot` 脱一轮再做静态分析,否则字符串/控制流全是乱的
- **MCP 联动**:环境里若注册了 dnSpy MCP(`dnspy_*` 工具),优先走 MCP 面做 decompile / IL inspection,避免来回切 GUI
- **证据化输出**:脱混淆产物、提取的配置/C2/key、patch diff 都要落盘
## 工具链映射
| 能力 | 首选 | 备注 |
|------|------|------|
| 反编译 + 调试 + patch | **dnSpyEx** | 王牌,唯一带 IL 编辑器的 GUI;老 dnSpy 已停更,用 Ex 分支 |
| 轻量 CLI / headless 反编译 | **ILSpy** (`ilspycmd`) | 适合批量、脚本化、Linux/macOS |
| 脱混淆 | **de4dot** | ConfuserEx 全家桶、SmartAssembly 等主流壳的默认解 |
| 混淆器识别 | **Detect It Easy (DIE)** / **file** | 先判断壳类型再决定 de4dot 参数 |
| 编程化操作 IL | **dnlib** | 写 C# 脚本批量改 metadata / 字符串解密器 |
| AI 直接操作 | **dnSpy MCP** | `dnspy_decompile` / `dnspy_inspect_il` 等工具面 |
> 前置:Windows 主机装 dnSpyEx + de4dot(choco 或 release);Linux/macOS 用 `ilspycmd` + `dotnet runtime`。详见 `references/sharp-tools.md` 的安装矩阵。
## 六阶段工作流
### 1. Identify(识别 .NET)
确认目标是托管程序,别把 native PE 当 .NET 分析:
```powershell
# 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\\."
```
**.NET 识别标志:**
- PE 头 `Data Directory[14]` (CLR Runtime Header) 非零
- `mscoree.dll` 导入 / `_CorExeMain` 入口
- `#~`、`#Strings`、`#US`、`#GUID`、`#Blob` metadata 流
- `mscorlib` / `System.Private.CoreLib` 字符串
**NativeAOT 例外:** 编译成 native,没有 CLR 头,但有 `System.Private.CoreLib` 字符串和重构过的类型元数据 —— 这类走 `reverse-engineering/`(IDA/r2),本 skill 仅做识别提示。
### 2. Detect(检测混淆器)
```powershell
# DIE 快速识别
diec target.exe # Detect It Easy CLI
# 或拖进 dnSpyEx,看是否大量乱码类名 / 控制流变形
```
常见混淆器 → 脱壳策略(详见 `references/obfuscators.md`):
| 混淆器 | 特征 | de4dot 处理 |
|--------|------|------------|
| ConfuserEx (1.0.0 / 2.x) | `<module>` anti-tamper、控制流变形、字符串加密 | `de4dot target.exe` 通常自动识别 |
| SmartAssembly | `circular`/`string encoding`、资源压缩 | `de4dot target.exe` |
| Babel.NET | 方法体加密、控制流 | `de4dot target.exe` |
| Eazfuscator.NET | 字符串/资源加密 | `de4dot`,部分版本需手动 |
| .NET Reactor | anti-tamper + necrobit | `de4dot`,新版可能失败需手动 |
### 3. Deobfuscate(脱混淆)
```powershell
# 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)
```
产出:`target-clean.exe`,后续分析用它。**保留原始样本**做对照。
### 4. Static Analyze(静态分析)
dnSpyEx 加载脱壳后样本:
- **C# 视图**:快速浏览类结构、方法签名、字符串(用于定位)
- **IL 视图**:关键判断、加密逻辑、状态机必须看 IL(右键 → Edit IL 或 IL 视图)
- 找入口:`Main` / `Startup` / 模块初始化器 (`Module .cctor`)
- 找关键逻辑:搜 `flag`、`password`、`verify`、`check`、`encrypt`、`http`、`Config`
```text
定位字符串 → 反向引用 → 找到使用它的方法 → IL 视图看判断逻辑
```
### 5. Dynamic(动态调试)From john0123412/PawnLogic, MIT.
More from john0123412/PawnLogic
- 0.611score
case-review
john0123412
Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional…
SkillAFreshness: A★ 4Claude Code +9 - 0.602score
attack-chain
john0123412
Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral…
SkillAFreshness: A★ 4Claude Code +9
Signals
- Stars
- 4
- Forks
- 2
- Open issues
- 0
- Last commit (this folder)
- Aug 10, 2026 (2 months ago)
- Last release
- Oct 24, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/john0123412/PawnLogic
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from john0123412
- 0.611score
case-review
john0123412
Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional…
SkillAFreshness: A★ 4Claude Code +9 - 0.602score
attack-chain
john0123412
Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral…
SkillAFreshness: A★ 4Claude Code +9
Cite this page
dotnet-reverse skill. Agent Mart. https://agentmart.dev/skills/john0123412-dotnet-reverse (last updated 2026-10-24)