我正在尝试运行一些保存在 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 中是否有不同的方法可以做到这一点?