在shellcode中我们常会看到execve系统调用,它常用来运行/bin/sh之类的应用程序。
我们来execve的原型

execve()用来执行参数filename字符串所代表的文件路径,第二个参数是利用指针数组来传递给执行文件,并且需要以空指针(NULL)结束,最后一个参数则为传递给执行文件的新环境变量数组。
这里为了方便,直接将后面两个参数置0
简单的看看c程序里execve的使用
代码在exe.c

编译

运行

可以看到execve函数执行了/bin/sh生成了一个shell
用汇编来写同样的功能

两条sw指令用以将参数列表argv[0]=”/bin/sh”和argv[1]=0存入开辟的指针数组
接下来进行测试
这里直接使用之前我们写的脚本
编译完成后测试

最低0.47元/天 解锁文章
557

被折叠的 条评论
为什么被折叠?



