# Ctf Reverse

> CTF 逆向工程技术。当挑战提供未知二进制文件需要分析算法逻辑、游戏客户端需要破解验证、混淆代码需要还原、自定义 VM 需要解释执行时使用。覆盖 Ghidra/IDA 静态分析、GDB/Frida 动态调试、反调试绕过、WASM/.NET/APK/Python 字节码/Go/Rust 多平台逆向

- Skill: `netvar1337/ctf-reverse` (Agent Skill, multi-file: 20 files)
- Install (CLI): `npx skillmds@latest add netvar1337/ctf-reverse`
- Raw SKILL.md: https://api.skillmd.com/api/skills/netvar1337/ctf-reverse/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: netvar1337 (https://skillmd.com/u/netvar1337)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/netvar1337/ctf-reverse

---


# CTF 逆向工程

## 深入参考

以下参考资料**按需加载**，根据识别出的具体方向选择对应文件：

- 静态分析工具（GDB/Ghidra/radare2/IDA/WASM/APK/.NET） → [references/tools.md](references/tools.md)
- 动态分析工具（Frida/angr/lldb/Qiling/Triton） → [references/tools-dynamic.md](references/tools-dynamic.md)
- 高级工具（VMProtect/BinDiff/反混淆/Rizin/补丁） → [references/tools-advanced.md](references/tools-advanced.md)
- 反分析对抗（Linux/Windows反调试/反VM/反DBI/代码完整性） → [references/anti-analysis.md](references/anti-analysis.md)
- 语言特征（Python字节码/Lua/WASM/.NET IL/Solidity） → [references/languages.md](references/languages.md)
- 编译语言（Go/Rust/Swift/Kotlin/C++/D/Nim） → [references/languages-compiled.md](references/languages-compiled.md)
- 平台特定（嵌入式固件/macOS Mach-O/Android/Flutter/HarmonyOS） → [references/platforms.md](references/platforms.md)
- 语言与平台综合 → [references/languages-platforms.md](references/languages-platforms.md)
- 逆向模式（校验/编码/迷宫/虚拟机/游戏引擎） → [references/patterns.md](references/patterns.md)
- CTF 逆向模式 Part1（自定义加密/矩阵/Brainfuck JIT） → [references/patterns-ctf.md](references/patterns-ctf.md)
- CTF 逆向模式 Part2（约束求解/侧信道/混淆变换） → [references/patterns-ctf-2.md](references/patterns-ctf-2.md)
- CTF 逆向模式 Part3（Z3布尔电路/滑窗Popcount/多步加密） → [references/patterns-ctf-3.md](references/patterns-ctf-3.md)
- 运行时修补与Oracle（反分析Patch/多阶段Shellcode） → [references/patterns-runtime.md](references/patterns-runtime.md)
- CTF反分析实战（SIGILL/SIGFPE/ptrace时序/花指令） → [references/anti-analysis-ctf.md](references/anti-analysis-ctf.md)
- 仿真与侧信道工具（Qiling/Triton/Unicorn/指令计数） → [references/tools-emulation.md](references/tools-emulation.md)
- 硬件与特殊架构（HD44780 LCD/RISC-V/FPGA/自定义ISA） → [references/platforms-hardware.md](references/platforms-hardware.md)
- 逆向实战笔记（二进制类型速查/反调试绕过/常用patch） → [references/field-notes.md](references/field-notes.md)

---

## 分类决策树

```
拿到逆向题？
├─ 识别文件类型: file binary
│  ├─ ELF → GDB + Ghidra
│  ├─ PE/DLL → x64dbg + IDA
│  ├─ Mach-O → lldb + Hopper
│  ├─ APK → apktool + jadx (Flutter → Blutter)
│  ├─ .NET → dnSpy / ILSpy
│  ├─ Python .pyc → uncompyle6 / decompyle3
│  ├─ WASM → wasm-decompile / wasm2wat
│  └─ 未知 → binwalk + strings + hexdump
├─ 分析策略
│  ├─ 静态优先 → Ghidra反编译 → 找 main/check 函数
│  ├─ 动态辅助 → GDB断点 / Frida hook
│  ├─ 符号执行 → angr（自动探路）
│  └─ 反混淆 → D-810 / GOOMBA / Miasm
├─ 有反调试？ → [references/anti-analysis.md](references/anti-analysis.md)
│  ├─ ptrace → LD_PRELOAD hook
│  ├─ /proc/self/status → 修改返回值
│  └─ 时间检测 → 跳过或 patch
└─ 常见模式
   ├─ 逐字符校验 → 逐字节爆破/约束求解
   ├─ 矩阵变换 → numpy/Z3 逆运算
   ├─ 自定义VM → 提取opcode表 → 反汇编
   └─ 迷宫 → BFS/DFS 自动求解
```

## 快速启动命令

```bash
# 基础分析
file binary && checksec binary
strings -n 6 binary | grep -iE "flag|pass|correct"
objdump -d binary | head -100

# GDB 调试
gdb -q binary -ex 'b main' -ex 'r'

# Ghidra 无头分析
analyzeHeadless /tmp/proj proj -import binary -postScript ExportDecompiled.java

# angr 符号执行
python3 -c "
import angr
p = angr.Project('./binary')
s = p.factory.entry_state()
sm = p.factory.simgr(s)
sm.explore(find=0x TARGET_ADDR)
print(sm.found[0].posix.dumps(0))
"
```

## 常见反调试绕过

| 技术 | 绕过方法 |
|------|---------|
| ptrace(PTRACE_TRACEME) | `LD_PRELOAD` hook 返回0 |
| /proc/self/status | 修改 TracerPid |
| 时间检测 | patch 掉 rdtsc/clock |
| IsDebuggerPresent (Win) | PEB.BeingDebugged = 0 |

## 工具速查

| 工具 | 用途 |
|------|------|
| Ghidra | 免费反编译器（支持多架构） |
| GDB + pwndbg | Linux 动态调试 |
| Frida | 运行时 hook（跨平台） |
| angr | 符号执行引擎 |
| dogbolt.org | 在线多反编译器对比 |

