iOS系统动态库

作者: 程序猿_K | 来源:发表于2019-05-17 14:12 被阅读0次

    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系统动态库

        本文链接:https://www.haomeiwen.com/subject/clnnaqtx.html