Skip to content
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

Fix dyldcache parsing for iOS 18 beta changes #23033

Merged
merged 2 commits into from
Jun 12, 2024
Merged

Conversation

mrmacete
Copy link
Collaborator

  • Mark this if you consider it ready to merge
  • I've added tests (optional)
  • I wrote some lines in the book (optional)

Description

iOS 18 beta introduces a couple new fields to the dyldcache header, the purpose of which is still unclear to me (and it reflects on the bad names i gave 'em) but broke the heuristics for detecting the subcache info format. This change leverages the first of the two new fields to update the format detection logic.

The other big issue was that r2's Mach-O size was represented as an int, but the new dyldcache have a logical combined size which now requires 33 bits 😅 , so our bounds checking code was overreacting. Fixed by bringing the size field up to ut64 capacity.

mrmacete added 2 commits June 12, 2024 12:01
So it can represent the size of big dyld caches, which as of iOS 18.0
beta start to need 33 bits.
@trufae trufae merged commit 9b53030 into master Jun 12, 2024
39 of 41 checks passed
@trufae trufae deleted the fix/dyldcache-ios18 branch June 12, 2024 13:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants