iOS系统动态库

iOS为了节省空间,将系统框架以动态库的形式,保存在dyld中,这样每个app都能使用这些库.也不需要每个app中都包含这些库.只需要在使用时调用就行.这个手机中就保存了一份.大大节省了内存.

系统动态库的位置

那系统动态库的存放位置在哪呢?
需要越狱后得手机能看到.
存放地址:/System/Library/Caches/com.apple.dyld/
通过funbox可以看到两个动态库dyld_shared_cache_arm64dyld_shared_cache_armv7s

手机中动态库

动态加载器dyld下载地址

苹果官方源码地址:dyld下载
一般来说文件名数组越大,文件最大的就是最新的代码.

下载源码

修改源码

1.可以使用dyld源码中的launch-cache/dsc_extractor.cpp.将#if 0前面的代码删除(包括#if 0),把最后面的#endif也删掉.


修改后的源码

2.执行命令生成dsc_extractor

$ clang++ -o dsc_extractor dsc_extractor.cpp
执行后生成一个可执行文件

3.用生成的可执行文件分离系统库

$ ./dsc_extractor  动态库共享缓存文件的路径   用于存放抽取结果的文件夹
正在抽取动态库

抽取后动态库包含两个文件夹:System和usr


UIKit

可以用Hopper或者machoView查看系统的mach-o文件.


UIDevice currentDevice伪代码

你可能感兴趣的:(iOS系统动态库)