iOS系统的全部Framework二进制被打包成一个cache文件,位于 /System/Library/Caches/com.apple.dyld 目录下,我们要想查看某个系统库的二进制需要将 dyld_shared_cache_arm64/dyld_shared_cache_armv7s 文件解包,导出各个库的二进制。
网上帖子大都是用 dyld_decache export the dyld_shared_cache_armv7s . but 但是这个工具不支持Arm64....
好在苹果有另外的工具导出 dyld_shared_cache_arm64。
下面跟我一起操作导出 dyld_shared_cache_arm64, 非常简单
1. 下载 dyld-551.4.tar , 解压
cd dyld-551.4/launch-cache open .
2. 更改 dsc_extractor.cpp 最后一个 #if 条件编译宏, 从 #if 0 改为 #if 1 (第653行)
-#if 0 +#if 1
3. 编译 dsc_extractor
clang++ -o dsc_extractor dsc_extractor.cpp dsc_iterator.cpp
这时得到了二进制的 dsc_extractor
4. 导出
./dsc_extractor path/to/dyld_shared_cache_arm64 path/to/outputdir
All Done
完成!
参考: