Shellcode
Posted countfatcode
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shellcode相关的知识,希望对你有一定的参考价值。
什么是Shellcode:
shellcode是我们写入到程序的一段可执行代码,通过执行这串代码我们可以拿到靶机的shell,从而可以干你想干的事。不过现在的题目一般都对可以写入的位置做了限制,既可写不可执行。但如果是一道专门的shellcode题,则会在某一段加入可写可执行的权限,或则利用mprotect()或者_dl_make_stack_executable()改写某些区域的proc再执行。
32位的shellcode和64位的略有不同,这里我们先讲32位的shellcode。
x86:
我们先用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
以上是关于Shellcode的主要内容,如果未能解决你的问题,请参考以下文章
windows:shellcode 代码远程APC注入和加载