快速上手二进制挑战:ctf-pwn堆栈溢出/ROP/Heap技巧与ctf-reverse抗分析/VM逆向实战清单
快速上手二进制挑战ctf-pwn堆栈溢出/ROP/Heap技巧与ctf-reverse抗分析/VM逆向实战清单【免费下载链接】ctf-skillsAgent skills for solving CTF challenges - web exploitation, binary pwn, crypto, reverse engineering, forensics, OSINT, and more项目地址: https://gitcode.com/gh_mirrors/ct/ctf-skillsCTF 选手面对二进制挑战时最大的痛点往往是不知道该从哪入手。ctf-skills 项目为 AI Agent 提供了一整套解题技能库其中ctf-pwn二进制利用与ctf-reverse逆向分析两个模块覆盖了从栈溢出、ROP、Heap 利用到抗分析绕过、VM 逆向的完整知识链。本文带你快速看懂这两个模块的核心技巧与文件结构帮你把看到二进制就懵变成按套路出牌。一、先判断该用哪个模块pwn 还是 reverse两个模块的 SKILL.md 和 ctf-reverse/SKILL.md 都内置了切换判断规则这也是新手最容易忽略的元技巧你当前的状态应该使用还看不懂程序在干什么先用ctf-reverse理解逻辑已确认存在内存破坏/漏洞原语切换到ctf-pwn做利用目标是受限 shell、编码谜题去 ctf-misc 模块漏洞依赖 Web 端点去 ctf-web 模块一句话原则逆向负责理解pwn 负责打穿。二、ctf-pwn从保护位判断到三类核心攻击2.1 第一步永远是看保护位pwn 模块的 SKILL.md 给出了一张非常实用的决策表拿到二进制后先用checksec检查保护状态再决定攻击路线保护状态对你的意义PIE关闭地址固定直接覆盖就能打RELROPartialGOT 可写GOT 覆写最简单RELROFullGOT 只读改打 hook / vtable / 返回地址NX开启不能直接执行 shellcode走 ROP 或 ret2winCanary存在必须先泄露 or 逐字节爆破 canary快速决策树很简单Partial RELRO 无 PIE → GOT 覆写最省事有 Canary → 先泄露或转堆攻击。2.2 栈溢出基础从 cyclic 到 ret2winoverflow-basics.md 覆盖了栈溢出最常用的套路新手记住四步即可用cyclic生成 pattern 找偏移量cyclic -l 值反查长度checksec看保护无 PIE 无 canary → 直接 ROP有 canary → 格式字符串泄露或 forking 服务逐字节爆破最多 7×256 次尝试文件里还记录了几个高频坑ret2win 带魔数参数win 函数会检查参数值payload 要额外填充pop rdi; ret 魔数栈对齐在movaps处 SIGSEGV 说明没对齐加一个ret垫片就好解析器栈溢出自定义解析器PCAP/图片/归档中memcpy先于长度校验拷贝溢出后记得恢复rbx等被调用者保存寄存器2.3 ROP 与 shellcode链怎么拼rop-and-shellcode.md 是拼链核心手册覆盖两段式 ret2libc先用putsGOT泄露 libc再返回漏洞函数执行第二阶段调用system(/bin/sh)ret2csu用__libc_csu_init里的 gadget 控制 rdx/rsi/rdi实现无 libc gadget 也能三参数调用坏字符绕过payload 先 XOR 写入.data再用 ROP 原地 XOR 还原或走sprintfgadget 链Stack pivotxchg rax,esp溢出空间不够放完整链时把栈指针切到攻击者控制的内存小众 gadgetBEXTR/XLAT/STOSB/PEXT 等冷门指令做逐字节写入进阶篇 rop-advanced.md 补充了 double stack pivot、SROP、seccomp 绕过、RETF 架构切换x64→x32等决赛圈技巧。2.4 Heap 利用glibc 堆的 House 系列堆利用是 pwn 模块最重的部分拆成三份文件heap-techniques.md经典攻击全家桶——House of Apple 2glibc 2.34 用 FSOP 代替被移除的__free_hook、House of Einherjaroff-by-one 打 null 字节、House of Orange/Spirit/Lore/Force、堆风水heap grooming、tcache stashing unlink、musl libc 堆heap-techniques-2.mdCTF 实战变体——UAF 虚表指针编码 shell 参数、未初始化 chunk 残留泄露、tcache strcpy null 字节溢出、tcache 双重释放劫持 stdout、tcache→fastbin 提升跨 bin 攻击heap-fsop.md_IO_FILE结构FSOP专攻——fastbin stdout 虚表两段劫持、_IO_buf_basenull 字节改 stdin、glibc 2.24 虚表校验绕过新手建议的记忆锚点glibc 2.34 之后 hook 没了FSOP劫持文件结构 vtable是主流收尾方式safe-linking2.32意味着 tcache 投毒时要对指针做fd ptr ^ (chunk_addr 12)混淆。2.5 格式字符串与其他进阶format-string.md 覆盖泄露、GOT 覆写、盲打、过滤器绕过甚至包括 ROT13 编码约束下的格式字符串输入被 ROT13 转换后payload 要预先做逆转换。advanced.md 与 advanced-exploits.md 系列1~5 篇收录了大量赛题级技巧seccomp 绕过、ret2dlresolve、ASAN shadow 内存、整数截断、单比特翻转利用等。内核方向另有 kernel.md、kernel-techniques.md、kernel-bypass.md 三件套。三、ctf-reverse先快赢再深挖3.1 逆向工作流8 步从 strings 到 angrctf-reverse/SKILL.md 给了一套反直觉但高效的流程——先动后静、先易后难strings提明文很多简单题直接出 flagltrace/strace动态跑一遍经常直接看到 flagFrida hookstrcmp/memcmp抓期望值angr 符号执行flag-checker 类题目自动求解Qiling 模拟执行绕过繁重反调试摸清控制流后再改执行用脚本自动化r2pipe、Frida、angr对比反编译器输出验证假设模块还特别标注了比较方向这个关键坑是transform(flag) 存储值要逆转换还是transform(存储值) flagflag 就是转换结果直接用方向搞反逆半天白干。3.2 抗分析Anti-Analysis常见检测与绕过对照anti-analysis.md 是全项目最系统的抗分析分类手册按平台组织Linux 反调试ptrace 自检测最常见ptrace(PTRACE_TRACEME)失败就退出 → 用 LD_PRELOAD hook、pwntools 打补丁把 ptrace 改成xor eax,eax; ret、或 GDBcatch syscall ptrace后把返回值改 0/proc 检查、定时检测、信号检测、syscall 级规避文件里逐一给出绕过方案Windows 反调试PEB 检查、NtQueryInformationProcess、堆标志位、TLS 回调、硬件断点检测、INT3 扫描、线程隐藏等每种都有对应 bypass。反 VM/反沙箱CPUID 超管子、MAC 地址指纹、定时检测、文件/注册表痕迹、资源检查CPU 数/内存/磁盘。反反汇编Anti-Disassembly不透明谓词、垃圾字节/重叠指令、跳进指令中间Jump-in-the-Middle、函数分块打散、控制流扁平化以及 MBA混合布尔算术的识别与化简——这是 Ghidra 反编译结果看不懂的头号元凶。文件末尾的通用绕过检查清单和检查项→绕过手段对照表建议直接打印贴在屏幕上。配套实战篇 anti-analysis-ctf.md 收录了赛题级技巧SIGILL/SIGFPE 信号处理器切换执行模式、strace 计数侧信道、指令轨迹反演Keystone Unicorn、process_vm_writev父进程补丁转储子进程等。3.3 VM 逆向四步拆解自定义虚拟机patterns.md 开头的 Custom VM Reversing 是模块里最经典的章节标准四步法定位 VM 结构找到寄存器数组、内存区、指令指针逆executeIns/runvm对照switch(opcode)还原每条指令语义如case 1: 乘法、case 7: 条件跳转、case 10: 读输入写一个反汇编器把字节码解析成伪汇编反编译伪汇编理解最终算法文件还收录了两种特殊形态RVA 基于偏移的指令分发以及拥有9 万 状态的有限状态机 VMhxp CTF 2017 赛题靠 fuzzing 指令集发现来逆。3.4 工具生态静态/动态/模拟三层静态tools.md 覆盖 GDB、Ghidra、radare2、IDA、Binary Ninja以及 Python 字节码、WASM、APK、.NET、加壳二进制UPX动态tools-dynamic.md 讲 Frida hook、angr 符号执行、x64dbg、lldb模拟与侧信道tools-emulation.md 含 Qiling 跨平台模拟、Triton DSE 数据流符号执行、时间冻结 memcmp 侧信道逐字节爆破进阶tools-advanced.mdVMProtect/Themida 分析、二进制 diff、去混淆框架和 tools-advanced-2.mdGDB Python 脚本、rr 逆向调试、GDB 约束提取 ILP 求解器跨语言与跨平台方面languages.mdPython 字节码、Pyarmor、Brainfuck、languages-compiled.mdGo/Rust/Swift/C、platforms.mdmacOS/iOS、嵌入式固件、游戏引擎按需查阅即可。四、实战路径一个二进制题的完整流程把两个模块串起来标准打法是ctf-reverse 快赢三连strings→strace/ltrace→ Frida hook 比较函数需要深挖时走 patterns.md 的 VM/反调试章节对照 anti-analysis.md 逐项绕过确认漏洞后切ctf-pwnchecksec定保护位 → 按决策树选 GOT 覆写 / ROP / 堆攻击拼链时查 rop-and-shellcode.md堆题查 heap-techniques.md 三件套细节坑canary 尾字节、PIE 同页单字节覆写、协议长度字段泄漏等冷门但高频的赛题模式在 overflow-basics.md 目录里按名称检索全程卡住时查两个模块的 field-notes.md逆向与 ctf-pwn/field-notes.md利用速查笔记工具环境方面项目提供了统一安装脚本 scripts/install_ctf_tools.sh一条bash scripts/install_ctf_tools.sh all即可装齐 pwntools、gdb、radare2、Frida、angr 等两模块依赖的全部工具赛前预装一次即可。五、小结ctf-skills 的设计思路是把老师傅的直觉拆成可检索的文档ctf-pwn 管利用保护位决策表 → 栈溢出 → ROP → Heap/FSOP → 内核ctf-reverse 管理解快赢三连 → 抗分析对照表 → VM 四步拆解 → 工具三层生态。新手建议先通读两个 SKILL.md 里的When to Pivot段落养成先判断用哪个模块的习惯再按本文的实战路径逐题练手——这套双模块组合基本能覆盖 CTF 中绝大多数二进制类题目的解题路径。【免费下载链接】ctf-skillsAgent skills for solving CTF challenges - web exploitation, binary pwn, crypto, reverse engineering, forensics, OSINT, and more项目地址: https://gitcode.com/gh_mirrors/ct/ctf-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考