CDUnknownBlockType
在iOS开发过程中大家都会使用block,可在逆向开发的时候block就显得不是很友好了…
class-dump是用来dump目标文件的类信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件
执行完class-dump之后,获得的头文件中所有的block都会写成CDUnknownBlockType
如果想获得block里面的参数可以将CDUnknownBlockType改写成id(这时直接运行Xcode是不会报错的)
这里是重点(敲黑板)
现在使用CTBlockDescription就可以打印出block的参数了
分析一下三个参数:
- 第一个参数
@?
block底层调用的时候默认以block结构体自身作为第一个隐含参数 - 第二个参数类型是NSURLSessionDataTask
- 第三个参数是id
然后我们就可以把CDUnknownBlockType改成一个block 就可以在别的地方使用了
typedef void(^apiSuccessBlock)(NSURLSessionDataTask *task, id _Nullable responseObject);
CTBlockDescription下载地址 https://github.com/wanyawan/CTBlockDescription
拖入工程就可以直接使用