CDUnknownBlockType获取参数的方法

CDUnknownBlockType

在iOS开发过程中大家都会使用block,可在逆向开发的时候block就显得不是很友好了…

class-dump是用来dump目标文件的类信息的工具。它利用Objective-C语言的runtime的特性,将存储在mach-O文件中的@interface和@protocol信息提取出来,并生成对应的.h文件

执行完class-dump之后,获得的头文件中所有的block都会写成CDUnknownBlockType

class-dump之后的一个头文件
如果想获得block里面的参数可以将CDUnknownBlockType改写成id(这时直接运行Xcode是不会报错的)

这里是重点(敲黑板)

现在使用CTBlockDescription就可以打印出block的参数了



第三个参数block
分析一下三个参数:
  • 第一个参数@? block底层调用的时候默认以block结构体自身作为第一个隐含参数
  • 第二个参数类型是NSURLSessionDataTask
  • 第三个参数是id

然后我们就可以把CDUnknownBlockType改成一个block 就可以在别的地方使用了

typedef void(^apiSuccessBlock)(NSURLSessionDataTask *task, id _Nullable responseObject);


CTBlockDescription下载地址 https://github.com/wanyawan/CTBlockDescription
拖入工程就可以直接使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,486评论 19 139
  • AFNetWorking的介绍 分享一个很详细的总结 www.cocoachina.com/ios/2016120...
    Phaemlo阅读 4,059评论 0 0
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,845评论 0 9
  • 是这一本书,让我见识了不一样的127个小时,是这127个小时,让我结识了Aron,是Aron,让我认识了何是生而为...
    鱻默阅读 5,791评论 1 2
  • 叶绾卿放下钢笔,收起那堆练习题,打开窗户,深吸了一口气“唉:-(还有五百天,该拿他怎么办,难道每天都像今天早...
    薄雾城CYJ阅读 1,911评论 0 1