- プログラミングのお題スレ Part8©2ch.net
819 :デフォルトの名無しさん[sage]:2016/10/06(木) 19:29:47.14 ID:LwTuJfQY - スタックを操作するプログラムってこんなんでいいのかな?
#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; }
|