OS X でバッファに保存されたアセンブリ コードを実行しようとしていますが、セグメンテーション エラーが発生し続けます。コードは次のようになります。
int main()
{
unsigned char buff[] = "\x66\x6a\7f\x66\xb8\x01\x00\x00\x00\x66\x83\xec\x04\xcd\x80";
( void (*)()buff )(); /* same as calling return 127 */
return 0; /* program should never reach here */
}
buff のコードは nasm によって生成され、動作します。プログラムは 127 を返します。ただし、このように ac プログラムを実行すると、セグメンテーション エラーが発生します。OS Xでこれを行う別の方法はありますか?