iOS JIT只能在越狱设备和debug模式吗 ?

    int fd = open("demo.txt", O_RDWR|O_CREAT, 0);
    void *address = mmap(nil, PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, fd, 0);
    if (address == MAP_FAILED)
      return;
    memcpy((void *)address, func, 32);
    // restore page permission
    mprotect((void *)address, PAGE_SIZE, PROT_READ | PROT_EXEC);
    int (*funcPtr)() = address;
    funcPtr();

上面的代码为什么在非越狱机器下,xcode release编译也能成功运行起来?我运行了mmap内存里的汇编,这在正常机器下不应该crash吗?

这代码啥作用?动态执行汇编指令?

对,我将一个函数的汇编写入了mmap申请的内容里面,如何调用了mmap里的汇编

你这个不是已经吊用了吗

我其实想知道的是, 非越狱机器且非调试情况下,能进行Inlienhook吗? 看的这篇文章https://jishuin.proginn.com/p/763bfbd5c695

自己map一块内存然后往里面写数据与修改二进制TEXT段已经存在的内存数据本质上不能相提并论吧?