未越狱的iphone可以在自己本进程内做hook吗?

如题。 因为我的手机已经越狱了,无法验证。

mach_vm_protect 函数不允许可写可执行的页面设置。

vm_fault_check 又会对发现缺页中断的页面做检查。

写的那个瞬间会貌似不一定触发vm_fault_check。 因为如果页面已经映射在物理内存了,就不会发生缺页中断。 不知道我的理解是否有误。

没用过vm_fault_check函数,也不知道是干嘛用的。
但是本进程内应该是hook不到其他进程的,沙盒不允许这么做

本进程hook自己进程的函数(arm指令级别)。。 非越狱。可以的?
xnu的代码看到云里雾里的。

hook自己进程的函数是可以的,你google一下“method swizzling”

arm指令级别。 hook自己进程的函数。

Method method = class_getInstanceMethod(cls, sel_registerName(methodName));
method_setImplementation(method,(IMP)replaceAddress);

arm指令级别的inline hook. 不是这种标准的基于runtime的函数地址替换。

试试vm_protect需要被替换的地址做参数,设置成rw