标签:div clu span lib 不同 写入 protect 都对 gcc
shellcode是我们写入到程序的一段可执行代码,通过执行这串代码我们可以拿到靶机的shell,从而可以干你想干的事。不过现在的题目一般都对可以写入的位置做了限制,既可写不可执行。但如果是一道专门的shellcode题,则会在某一段加入可写可执行的权限,或则利用mprotect()或者_dl_make_stack_executable()改写某些区域的proc再执行。
32位的shellcode和64位的略有不同,这里我们先讲32位的shellcode。
我们先用C写一个调用shell的程序,其代码如下:
#include <stdio.h> #include <stdlib.h> int main() { execve("/bin/sh", 0, 0); return 0; }
编译成32位程序:gcc -m32 -g -o test1 test1.c,运行便可以拿到我们本机的shell
标签:div clu span lib 不同 写入 protect 都对 gcc
原文地址:https://www.cnblogs.com/countfatcode/p/11756258.html