ctf-reverse

تایید شده

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

@wgpsec
MIT۱۴۰۵/۲/۹
(0)
۱.۳k
۱
۴

نصب مهارت

مهارت‌ها کدهای شخص ثالث از مخازن عمومی GitHub هستند. SkillHub الگوهای مخرب شناخته‌شده را اسکن می‌کند اما نمی‌تواند امنیت را تضمین کند. قبل از نصب، کد منبع را بررسی کنید.

نصب سراسری (سطح کاربر):

npx skillhub install wgpsec/AboutSecurity/ctf-reverse

نصب در پروژه فعلی:

npx skillhub install wgpsec/AboutSecurity/ctf-reverse --project

مسیر پیشنهادی: ~/.claude/skills/ctf-reverse/

محتوای SKILL.md

---
name: ctf-reverse
description: "CTF 逆向工程技术。当挑战提供未知二进制文件需要分析算法逻辑、游戏客户端需要破解验证、混淆代码需要还原、自定义 VM 需要解释执行时使用。覆盖 Ghidra/IDA 静态分析、GDB/Frida 动态调试、反调试绕过、WASM/.NET/APK/Python 字节码/Go/Rust 多平台逆向"
metadata:
  tags: "ctf,reverse,逆向,ghidra,gdb,ida,frida,angr,反调试,binary,ELF,binary analysis,disassembly"
  category: "ctf"
---

# 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 | 在线多反编译器对比 |