1. instrumentObjcMessageSends辅助分析

在调用方法前后加上instrumentObjcMessageSends,运行后在文件夹\tmp\下会产生一个msgSends-开头的文件

打开文件看看

首先看见调用的是动态方法决议resolveInstanceMethod 后面调用的是forwardingTargetForSelector:
和methodSignatureForSelector: (其实就是快速转发和慢速转发~)
2.forwardingTargetForSelector快速转发
先看下官方文档

找个替代对象去实现



执行 看下输出

完美
3.methodSignatureForSelector慢速转发

返回一个NSMethodSignature对象

关联方法
代码实现:

运行:

5.反汇编工具
前面我们是开的上帝视角了解了forwardingTargetForSelector:和methodSignatureForSelector就是消息转发 ,如果不知道呢 那么我们先看堆栈信息 回到最初的方法没实现的崩溃阶段

我们看到是CoreFoundation ,但是源码文件里面也没有,只好用反汇编工具了

网上有破解版的~~
通过image list 找到镜像文件的路径


拖拽到工具中

接下来我们全局搜索forwarding
只截了一些重点 实在太多了


通过反汇编工具我们其实也是可以找到快速转发和慢速转发的相关方法~~