[ pwn 学习 ] CTFshow-pwn15
2026-08-22 20:36:38
pwn15
eax放系统调用号
ebx/ecx/edx/...放这个系统调用的参数
eax = 4 -> sys_write
eax = 1 -> sys_exit
∴mov eax,4的意思是调用 write
而write这个系统调用的原型是
1 | write(int fd, const void *buf, size_t count) |
fd:写到哪里buf:写什么内容count:写多少字节
在 32 位 Linux 的int 0x80约定中 这三个参数放在
ebx:第 1 个参数ecx:第 2 个参数edx:第 3 个参数
∴mov ebx, 1表示fd=1
又 ∵
- 0:标准输入
- 1:标准输出
- 2:标准错误
∴ebx = 1表示输出到屏幕
1 | section .data |
1 | mov eax, 4 |
按照顺序拼接:
ctfshow{@ss3mb1y_1s_3@sy}
虽然定义了str1但是输出代码里没有str1所以没用上str1
sol

1 | nasm -f elf32 flag.asm -o flag.o |
把flag.asm汇编成目标文件flag.o
1 | ld -m elf_i386 -o flag flag.o |
把flag.o链接成可执行文件flag
1 | ./flag |
运行当下目录的flag
ctfshow{@ss3mb1y_1s_3@sy}