如题,最近在研究dlopen,对应dlopen内部是创建了一个image到内存当中,image中包含dylib原始mach-o内容。但是这个image创建流程没找到具体资料,在想这个过程和malloc有什么区别,还有就是mmap应该也有关系
vm_allocate + mprotect ?
new = ( void *)mmap( NULL , num, VM_PROT_ALL, 0x1000 | 0x0001, -1, 0);
mprotect(new_page, PAGE_SIZE, PROT_READ | PROT_EXEC);
这样开创的内存还是不可执行。
1 个赞
谢谢。发现涉及到hook,都是用类似的方法。mmap 然后vmcopy,mach_vm_remap,这些。
这些函数都只能在越狱机下使用吗?非越狱机行吗?
函数还是可以用的。问题是非越狱情况下对可执行段内存没有修改权限。
1 个赞
对Code Signature块能不能修改呢?
没研究过