ctf-reverse
$
npx mdskill add wgpsec/AboutSecurity/ctf-reverseDecodes binary logic across multiple platforms and obfuscation types.
- Analyzes unknown binaries to extract hidden algorithms and game mechanics.
- Integrates Ghidra, IDA, GDB, Frida, and angr for static and dynamic work.
- Selects analysis methods based on detected file format and obfuscation level.
- Outputs decoded logic, disassembly, and reconstructed source code clearly.
SKILL.md
.github/skills/ctf-reverseView on GitHub ↗
---
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 | 在线多反编译器对比 |
More from wgpsec/AboutSecurity
- 401-403-bypass401/403 访问拒绝绕过方法论。当遇到管理后台、API 端点返回 401/403 Forbidden 时使用。覆盖路径操纵、HTTP 方法篡改、Header 注入、协议降级、组合攻击
- ad-acl-abuseActive Directory ACL 滥用攻击方法论。当 BloodHound 发现 GenericAll/WriteDACL/WriteOwner/GenericWrite/ForceChangePassword 等危险 ACE 时使用。覆盖 ACE 枚举、权限滥用链、Shadow Credentials、RBCD 攻击
- ad-delegation-attackKerberos 委派攻击(非约束/约束/RBCD)。当 BloodHound 发现委派配置、或已获取有 SPN 的服务账号/机器账号控制权时使用。通过 S4U 协议滥用可实现跨服务模拟任意用户,常用于域内权限提升和横向移动。
- ad-domain-attackActive Directory 域环境攻击全链路。当目标主机在域环境中(systeminfo 显示 Domain 非 WORKGROUP)、发现 88/389/636 端口、或获取到域用户凭据时使用。覆盖域信息收集、用户枚举、Kerberoasting、AS-REP Roasting、委派攻击、ACL 滥用、DCSync、Golden/Silver Ticket
- ad-persistenceAD 域环境持久化技术。当已获取域管/本地管理员权限、需要建立持久访问以确保重启或密码更改后仍能回到目标环境时使用。覆盖主机级持久化(计划任务/注册表Run/COM劫持/WMI事件订阅/Windows服务/启动文件夹)、域级持久化(Golden Ticket/Silver Ticket/Skeleton Key/DSRM/AdminSDHolder)、DCShadow/GoldenGMSA高级技术、清理命令与检测规避
- ad-trust-attack域信任关系攻击。当目标存在多域/多林环境时使用。包含父子域提权(Golden Ticket + ExtraSid)、跨林攻击(SID History/MSSQL Trust Links)、单向信任利用。已获取子域 Domain Admin 或发现信任关系时优先加载。
- adcs-certipy-attackActive Directory Certificate Services (ADCS) 证书攻击。当发现域内有 CA 服务器、ADCS Web Enrollment、证书模板配置错误时使用。覆盖 ESC1-ESC11 所有证书滥用路径、Certipy 工具链、证书伪造、NTLM 中继到 ADCS。发现 ADCS/CA/证书/certsrv 相关内容时一定要使用此技能
- adinfo-enum使用 Adinfo 进行 Active Directory 信息收集。当获得域用户凭据后需要快速收集域环境信息时使用。Adinfo 是一个快速 AD 信息收集工具,一条命令输出域控列表、域管用户、信任关系、GPO、SPN、委派配置等关键信息——比手动 LDAP 查询快得多。发现域环境后第一步信息收集使用此技能
- agent-security|
- ai-data-security|