-
Notifications
You must be signed in to change notification settings - Fork 6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support for new dyld_shared_cache format in iOS 15/macOS 12 #3345
Comments
Thanks for the heads up. This is definitely something we'll want to support. |
Do you have any links that describe the new format? I don't have access to these at the moment. |
There's not much, unfortunately. It's anticipated that Apple will release updated There are a couple projects that are actively working on it: Hopper has (very) preliminary support, but I don't think it does much yet. If binary analysis is an option for you, I'd look at Hope that helps. I'll see what else I can find. Zach |
So you're saying that is something that would eventually be found here https://opensource.apple.com/source/dyld/ ? does it report which version of the format is used in the current files |
If the past is any indication, yes, that's where new dyld source will go, which will include header files describing the new format, as well as C++ code that parses it. I'd expect to see source for that probably in October/November. Apple isn't super consistent on this. As far as versioning, there are header fields that report versions in various ways, but it's not a very tidy "look at the version field to see what format version we're dealing with." Probably the best example of version detection is |
I got some samples and should be able to make some initial guesses about how things are laid out. The biggest issue I see up front is that our |
Time to roll up the sleeves and do it the old fashioned way. Not entirely accurate but still applies I guess |
I've also done some research on the format and have written down my findings in gimli-rs/object#358. |
Thanks, I'm working on this now. |
I put up a PR for this if anyone wants to try it (#3666) |
I'm using 10.1.2 bug Ghidra doesn't seem to load anything from /System/Library/dyld/*. Are there extra options that need to be set for this feature to work? |
What is an example file you are trying to load? Are you selecting |
I’m trying /usr/bin/tmutil. I have extracted the x86_64 with lipo and loading it as a single file with a checked option to load external libraries.
… On Apr 18, 2022, at 9:22 PM, Ryan Kurtz ***@***.***> wrote:
What is an example file you are trying to load? Are you selecting Single File or File System?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.
|
I just imported that file without any issues. I opened it in the File System Browser, then right clicked on the |
Did it also load linked external libraries into the project for analysis?
Best Regards
Ilya Kulakov
… On Apr 19, 2022, at 12:00 AM, Ryan Kurtz ***@***.***> wrote:
I just imported that file without any issues. I opened it in the File System Browser, then right clicked on the x86-64-cpu0x31 "file" and clicked import. I'm on macOS 12.3.1.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you commented.
|
Ah, I'll have to try that again tonight when I'm on my mac again. Can you please open a new ticket describing your issue in detail so it doesn't get lost in this already closed one? |
The
dyld_shared_cache
format in iOS 15 & macOS 12 has changed and is now been split into 2 or more slices. Ghidra is no longer able to open it.It would be helpful if Ghidra could be updated to open these shared cache clusters.
Below are examples of the shared cache layout directory on iOS & macOS
macOS 12:
iOS 15:
The text was updated successfully, but these errors were encountered: