

使用汇编器nasm把shellcode编译成.o文件





①这里所谓的“二进制”,英文称为raw binary。这种程序只包含机器码。而ELF程序还包含有其它额外的信息,如段的加载地址,运行地址,重定位表,符号表。
②执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行;
FILE *fp = fopen("vmlinux.bin", "rb");
fread(VMLINUX_START, 1, VMLINUX_SIZE, fp);
((void (*)(void))VMLINUX_START)();但是执行ELF程序则需要一个ELF Loader。
Linux内核启动的时候往往是没有ELF Loader的,所以,只能采用raw binary格式。


整体思路: 1、写好shellcode 2、用一个程序进行测试(提前编译好一份64的和32的) 3、启动我们的脚本来执行,提取编译好的c程序的有用代码code段

4、python读code段执行shell
希望大家有所收获!!!