用途:面向栈溢出漏洞的利用手册,讲解如何通过覆盖返回地址劫持控制流,并在 NX、ASLR、PIE、canary、RELRO 等保护下构造利用链。
主要能力:涵盖经典缓冲区溢出、ret2libc(32/64 位)、ROP 链构造、ret2csu 三参数控制、ret2dlresolve 伪造动态链接结构、SROP 通过 sigreturn 设置寄存器、栈迁移(leave;ret、xchg rsp,rax、pop rsp)以及 canary 绕过(爆破、格式化字符串泄露、栈读取、TLS 覆盖)。同时给出栈布局基础、x86 与 x86-64 在返回地址、帧指针、canary、调用约定和 syscall 指令上的差异。
使用方式:先用 checksec 查看保护,再用 ROPgadget、ropper、one_gadget、pwntools 等工具搜索 gadget 与生成链。资料给出示例命令:checksec ./binary、ROPgadget --binary ./binary --ropchain、ropper -f ./binary --search "pop rdi"、one_gadget ./libc.so.6、pwn template ./binary --host x --port y。64 位调用需注意 RSP 16 字节对齐,必要时插入单个 ret gadget。
适用场景:CTF 竞赛、漏洞利用学习、真实 CVE 分析中的栈溢出利用。
限制:资料未提供具体安装步骤、收费信息或平台支持范围;部分技术依赖目标二进制与 libc 的具体版本,one_gadget 等需满足约束条件,ret2csu 要求 r12 指向函数指针而非函数地址。