Hmm...
#define PAYLOADSIZE 0x2000
code += PAYLOADSIZE - 1024;
memcpy((void*)code, &kernel_payload, 1024);
Does anybody know if it's possible to find out the size of a function during run time? Could you like say, put a return at the end of the function then do a for-loop with memcpy() for each byte until you run into the OPCODE for RET? I guess I could do a test.