#!/bin/bash # assemble shellcode nasm -felf32 shellcode.asm -o x.o && ld -m elf_i386 x.o -o shellcode &> /dev/null # remove object file rm x.o # extract shellcode and remove binary shellcode=$(for byte in $(objdump -d ./shellcode | grep "^ " | cut -f2); do echo -n '\x'$byte; done) rm shellcode # TODO place shellcode into test_shellcode.c and shellcode.asm # compile test_shellcode.c and execute it afterwards gcc -o test_shellcode -m32 -fno-stack-protector -fno-pie -z execstack -O0 test_shellcode.c && ./test_shellcode