-
Couldn't load subscription status.
- Fork 261
[MachoView] Fixed missing symbols in binding parsing #7302
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
Conversation
|
Hi, I apologize for the delay on this issue. The binary provided in #7196 ended up having exposing a sweeping set of issues with how we process binding information, handle stubs sections, etc. I've created a draft PR containing the in-progress fixes for this branch here: #7303 Further testing needs done on this branch to ensure it doesn't break or drastically slow down any existing Mach-O processing. I'm going to go ahead and close this PR in favor of that one, as it includes the fix contained in this PR. We are hoping to merge this very soon after we're able to validate the changes. Thank you so much for your PR! |
|
Sure, no problem |
|
However, what about this?
Can you cover this as well in your MR? |
they are a weak bindings, so they should actually, i mean there is no-error in the context of linking them in runtime, however i guess logging such symbols is ok as well
nope, this is enterprise protection (RASP) of an iOS apps library, this is how its shipped in IPAs UPD: oh, wait, ye, this one is dumped actually, but not in form of you ment i guess, its dumped via old version of mremap_encrypted, so technically it wasnt loaded (?) |
|
I can try to create such binary statically for you, if it helps, guess it will only require bit of llvm magic |
|
I didn't see anything in the binary that looked like a self bind. I think an oversight here is that bindings in the weak bindings table cannot explicitly set a library ordinal. The code as it stands treats those weak bindings as having a library ordinal of 0 ( Something like: - uint64_t ordinal = 0;
+ uint64_t ordinal = binding == WeakBinding ? BindSpecialDylibWeakLookup : 0; |

This MR addressing #7196