美文网首页
还原iOS系统中缓存的dyld_shared_cache_arm

还原iOS系统中缓存的dyld_shared_cache_arm

作者: 77168ddcf2c6 | 来源:发表于2018-04-11 19:26 被阅读445次

    1前言

    在iOS系统中,存在着这么一个文件夹,/System/Library/Caches/com.apple.dyld,这个文件夹里面放着的是什么文件呢,在我的iphone5s中,两个文件dyld_shared_cache_armv7s和dyly_shared_arm64,这两个文件分别代表两个arm架构,一个是armv7s一个是arm64。

    顾名思义,这两个都是缓存文件,里面放着的都是各种系统所可能用到的动态库。如Foundation.framework,Security.framework等等。在/System/Library/Frameworks/这个路径下面所有的动态库只放了一些配置文件,而真正的执行文件就在上面说的缓存文件里面。因为几乎所有的iOS程序都会用到系统库,当程序运行的时候会使用dyld(位于/usr/lib/dylb)程序进行连接,另一方面,由于每个iOS程序都会连接很多的动态库,如果需要一个一个连接会很耗时,如果把它们放在一个地方打包好,等到运行的时候全部连接岂不美滋滋,基于这些原因,就有了dyld_shared_cache_armv7s和dyld_shared_cache_armv64两个缓存文件(有些设备有可能还会有dyld_shared_cache_armv7)。

    2工具

    上面我已经解释了为什么会存在这两个文件以及这两个文件的作用,在iOS逆向中,我们常常需要查看某一个系统类的实现,这个时候就要去对应的系统库里面查看,这些系统库就放在对应的缓存文件里面了。但是这些文件是经过处理的,不可以直接查看,所以需要用到一些工具来查看。这里介绍两个工具,一个是dyld_decache[v0.1c] 另外一个是dsc_extractor编译方法 。这两个工具的不同之处是,第一个工具是不可以用来解析arm64指令集的缓存文件的,而dsc_extractor是可以用来解析arm64指令集的缓存文件的,现在基本上大家用的都是arm64位指令集的设备了。(iPhone5s以上都是arm64位结构)

    3还原

    通过2中的dyld_decache[v0.1c]工具和dsc_extractor我们可以还原出
    dyld_shared_cache_armX缓存文件中隐藏的framework。下面是语法

    3.1 dsc_extractor

    usage: dsc_extractor <path-to-cache-file> <path-to-device-dir>

    usage: dsc_extractor 你要解析的arm64的缓存文件路径 保存的路径
    
    

    解析过程中会出现类似于
    0/969

    1/969

    2/969

    3/969

    4/969

    5/969

    .....

    这样的文字。

    3.2 dyld_decache[v0.1c]

    dyld_decache[v0.1c] -o 要保存的路径 你要解析的缓存文件路径

    解析完成后会出现两个文件加,一个是system,另外一个usr,如无意外,所有的动态库都会在里面,接下来尽情的蹂躏他们吧。不过记得在开始这一切之前,要将iphone里面的dyld_shared_cache_arm64文件拷贝一份到OSX上面去操作。

    相关文章

      网友评论

          本文标题:还原iOS系统中缓存的dyld_shared_cache_arm

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