一道简单的ctf-wiki上的基本ROP题目。
原理:控制程序执行系统调用,获取 shell。
传送门
0x01
预备知识:
系统调用通过 int 80h 实现,应用程序调用系统调用的过程是:
1.把系统调用的编号存入 EAX;
2.把函数参数存入其它通用寄存器;
3.触发 0x80 号中断。
execve函数:

详见:execve函数
0x02
解题步骤:
首先检查:

ida打开之后,没有system函数,只有binsh关键字,开启NX保护。
需要构造execve(“/bin/sh”, 0,0);
其中,系统调用号可以通过指令
cat /usr/include/