16/10/06 19:29:47.14 LwTuJfQY.net
スタックを操作するプログラムってこんなんでいいのかな?
#include <malloc.h>
#include <stdio.h>
#include <string.h>
unsigned char data[6] = {0x68,0,0,0,0,0xc3};
unsigned int func() {
unsigned int *p;
p = malloc(1024);
memcpy(p,data,6);
*((unsigned int*)&data[1]) = *((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*)));
*((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))) = (unsigned int)p;
printf("0x%X\n",*((unsigned int*)((unsigned int*)(&p) + sizeof(unsigned int*))));
return *((unsigned int*)&data[1]);
}
int main(void) {
printf("0x%X\n",func());
return 0;
}