关于Runtime疑惑?

手机未越狱操作,使用runtime替换了(OC)系统A函数给自定义B函数,第三方库调用系统A函数,是执行B函数,但是系统库调用系统的A函数,是并没有执行被替换的B函数,而是执行原来的A函数。
关于使用MobileHooker的MSHookMessageEx函数,他可以做到系统库执行A函数调用是B函数,同样我也是使用 method_setImplementation 设置B函数 有什么不一样吗,分析libsubstrate.dylib晦涩难懂,貌似有使用一些,vm_deallocate vm_remap,MobileHooker有开源码?

对于OC方法, 我觉得应该会调用的。比如我们在使用runtime 替换掉 viewwillappear方法,系统触发viewwillappear时确实调用了我们自己的方法。所以你替换的是哪个方法?

的确你说的viewwillappear是这样,这个是UIKit库的,我分析是CoreFoundation库,他里面有调用一些stringByDeletingPathExtension方法等… 因为iOS没有开源我找到别人分享的项目CoreFoundation源码

老版本是开源的。方法交换这一块应该没变过

https://github.com/r-plus/substrate/blob/master/ObjectiveC.cpp#L216

嗯 感谢老哥提供!代码貌似也没什么特殊,奇怪了