遇到一些难题,有时候想从系统库找找答案。这篇主要讲下提取系统库。
系统环境: iPhone 6s, checkra1n 越狱环境,系统版本13.4
- 下载dyld 源码。
Github 地址: GitHub - opensource-apple/dyld
- 修改文件,编译打包
找到dsc_extractor.cpp ,我下的832.7.1,路径在dyld-832.7.1/dyld3/shared-cache/dsc_extractor.cpp。将里面的int main代码留下·其他都删了,打印也可以删了。
执行命令: clang++ -o dsc_extractor dsc_extractor.cpp 得到dsc_extractor可执行文件
- 运行命令,导出到电脑
苹果将大部分系统动态库都打包放在一个缓存文件中(dyld shared cache)
该文件存放在设备的/System/Library/Caches/com.apple.dyld/dyld_shared_cache_armX
将dsc_extractor 放到这个目录,
#chmod 77 dsc_extractor
#./dsc_extractor dyld_shared_cache_arm64 framework_arm64
即可在framework_arm64/System/Library/Frameworks里找到, 然后用ifunxbox 或者ssh 导出即可。
四 ,然后hopper 或者 ida F5 就可以看了。