最近在使用 MonkeyDev iOS 14.5 调试的时候一直闪退到fishhook.c文件,上网查了一下是因为
该mprotect
功能要求该地址与页面大小对齐。在iOS 14.5 Beta中,部分__DATA_CONST
和__AUTH_CONST
段的某些地址未与页面大小对齐,写保护将添加失败,然后在写入这些地址时该过程可能会崩溃。因此,我们可以使用vm_protect
而不要求地址与页面大小对齐mprotect
。
此外,节中不同页面的保护可能不相同。因此,我们需要传递要写入的地址get_protection
,而不是该部分的第一个地址。
顺便记录一下
解决方案 修改 fishhook.c ,从新下载一下替换一下就好了。
https://github.com/facebook/fishhook/pull/83