addr要略比实际靠前,要取ctrl+s显示bss段开始靠前一点
prot值如下:
关于int 0x80以及execve函数的利用
关于系统调用的知识:
Linux 的系统调用通过 int 80h 实现,用系统调用号来区分入口函数
应用程序调用系统调用的过程是:
1、把系统调用的编号存入 EAX
2、把函数参数存入其它通用寄存器
3、触发 0x80 号中断(int 0x80)
查看 execve 的系统调用号:(得到的数值需要转化为十六进制表达,给的数字为10进制)
1 | cat /usr/include/asm/unistd_32.h | grep execve |
图片表示