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---10--- _read_images 浅析 类的加载

    [toc] 前言 在iOS程序中会用到很多系统的动态库,这些动态库都是动态加载的。所有iOS程序共用一套系统动态库...

  • 10--- _read_images 浅析 类的加载

    [toc] 前言 在iOS程序中会用到很多系统的动态库,这些动态库都是动态加载的。所有iOS程序共用一套系统动态库...

  • DYLD 摘录

    原文: iOS中dyld缓存的实现原理是怎样的? 在iOS系统中,几乎所有的程序都会用到动态库,而动态库在加载的时...

  • 动态库打包

    强调:使用动态库,要求应用最低支持系统为IOS8 1:静态库和动态库区别 静态库:存在 .a 和 .framewo...

  • 提取系统的dylib

    1、动态链接库路径 iOS有一部分系统动态库是存放于动态链接库cache中,这个cache在/System/Lib...

  • iOS App启动优化:动态库手动加载

    一、前言 在介绍动态库手动加载方式之前,我们简单了解下动态库,又名共享库在iOS中是个特殊的存在,除了系统库以外,...

  • iOS系统动态库

    iOS为了节省空间,将系统框架以动态库的形式,保存在dyld中,这样每个app都能使用这些库.也不需要每个app中...

  • 五 iOS逆向- 动态库共享缓存(dyld shared cac

    共享缓存机制 dyld简介 共享缓存库中抽取动态库 从iOS 3.1开始,为了提高系统的性能,所有的系统库文件都被...

  • iOS逆向-Mach-O文件(二)

    UIKit的Mach-O文件在哪里?? 系统的动态库 从iOS3.1开始,为了提高性能,绝大部分的系统动态库文件都...

  • iOS静态库与动态库的区别与打包

    iOS静态库与动态库的区别与打包iOS静态库与动态库的区别与打包

网友评论

    本文标题:iOS系统动态库

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