Ios13.4.1的dyld_shared_cache_arm64能提取吗?

越狱了iphone se ,尝试提出dyld_shared_cache_arm64文件里的库,发现现有的工具全都不行啊,Source Browser
用了这个最新的代码也不行。

你试试这个,我编译好了,提取arm64e的没问题
dsc_extractor

1 个赞

老哥你改了些啥?

你搜索一下第一个就是啊:动态库共享缓存(dyld shared cache)

不知道为啥,一直报错提不出来
Error: unrecognized dyld shared cache magic
dyld_shared_cache_extract_dylibs_progress() => -1

我没遇到过这个问题,但根据源码,看起来像是识别不了你提供的文件:

dylib_maker_func* dylib_create_func = nullptr;
    if ( strcmp((char*)mapped_cache, "dyld_v1    i386") == 0 )
        dylib_create_func = dylib_maker<x86>;
    else if ( strcmp((char*)mapped_cache, "dyld_v1  x86_64") == 0 )
        dylib_create_func = dylib_maker<x86_64>;
    else if ( strcmp((char*)mapped_cache, "dyld_v1 x86_64h") == 0 )
        dylib_create_func = dylib_maker<x86_64>;
    else if ( strcmp((char*)mapped_cache, "dyld_v1   armv5") == 0 )
        dylib_create_func = dylib_maker<arm>;
    else if ( strcmp((char*)mapped_cache, "dyld_v1   armv6") == 0 )
        dylib_create_func = dylib_maker<arm>;
    else if ( strcmp((char*)mapped_cache, "dyld_v1   armv7") == 0 )
        dylib_create_func = dylib_maker<arm>;
    else if ( strncmp((char*)mapped_cache, "dyld_v1  armv7", 14) == 0 )
        dylib_create_func = dylib_maker<arm>;
    else if ( strcmp((char*)mapped_cache, "dyld_v1   arm64") == 0 )
        dylib_create_func = dylib_maker<arm64>;
#if SUPPORT_ARCH_arm64e
    else if ( strcmp((char*)mapped_cache, "dyld_v1  arm64e") == 0 )
        dylib_create_func = dylib_maker<arm64>;
#endif
#if SUPPORT_ARCH_arm64_32
    else if ( strcmp((char*)mapped_cache, "dyld_v1arm64_32") == 0 )
        dylib_create_func = dylib_maker<arm64_32>;
#endif
    else {
        fprintf(stderr, "Error: unrecognized dyld shared cache magic.\n");
        munmap(mapped_cache, (size_t)statbuf.st_size);
        return -1;
    }

你是在这个/System/Library/Caches/com.apple.dyld目录下找的dyld_shared_cache_armXX吗

我用了几个版本的dyld,shared文件用ifunbox和ssh都导出过,一直不行,无语了

看来只能整12了

你的是什么问题,也报这个错?

刚换了个iOS12.4.6的手机可以提取出来,应该是iOS13.3及以上的系统提不出来

问一下,13.4.1是通过哪个越狱的,不完美越狱吧?

弱弱问一句 有人成功编译成 dyld 过吗?

老哥 你成功 build 整个 dyld 嘛. 之前尝试了很久 不能成功

原来你就是tangcuchaopaigu

1 个赞

到这个路径看看
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/

模拟器用的二进制,不是ARM但是桩都在。

没有,一堆error

从ipsw提取的shared cache可以正常提取,试试看。

1 个赞

13.2用dsc_extractor可以提取,但是在ida7.0打开的库显示的是0x196F8B260或者MEMORY[0x196F8B260]这种的

新手,请问这个是啥意思,从ipsw下载固件然后解压也有dyld这文件?
另外我按脚本能解出来,但是貌似地址没修复啥的
(比如class-dump不行),这个方式能解决不