符号表
Mach-o文件__LINKEDIT段存储了符号表Symbol Table,表结构macho-o/nlist.h struct nlist,第一项为符号在字符串表中的偏移量,最后一项为对应的函数地址
block内存结构
struct __block_impl{Class isa; int flags; int reserved; void(*invoke)(…);…} isa=_NSConcreteStackBlock 栈上的block; isa=_NSConcreteMallocBlock 堆上的block; isa=_NSConcreteGlobalBlock 全局静态block;
恢复符号
- https://github.com/tobefuturer/restore-symbol
- 利用Clutch砸壳
- 利用class-dump源码查找行数名称及地址
- 利用IDA提供的SDK查找block地址及名称
- 构建符号表