fun1() { printf("fun1...\n"); } fun2() { unsigned char a[100]; a[0] = 0xe9; *((int*)(a+1)) = (int)fun1 - (int)(a+5); ((void (*)())a)(); } main() { fun2(); }