Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
839 stars 194 forks source link

The ios-aarch64 platform is added on top of the original mac-aarch64 #5684

Open VisualEhrmanntraut opened 4 days ago

VisualEhrmanntraut commented 4 days ago

Version and Platform (required):

Bug Description: I updated Binary Ninja and opened an iOS kernelcache bndb to resume work... waited and waited for the analysis... and... then noticed... huh???

Screenshot 2024-07-03 at 23 07 16

Steps To Reproduce: Open an iOS bndb from a version before the iOS platform was added.

Expected Behavior: It should migrate the old platform to the new one and remove the old one.

Screenshots/Video Recording:

image

Binary: Can't, I don't think Apple would like that!

Additional Information: The reanalysis has been on-going for 6+ hours now. This was not the case before. It might be analysing both platforms.

emesare commented 4 days ago

Can you print out the architecture and platform for both functions?

>>> current_function.arch
...
>>> current_function.platform
...

I suspect that the duplication is occurring due to some extra platform or architecture, possibly the new iOS platform.

river-li commented 4 days ago

Look at the left bottom corner, after 6 hours of reanalysis it's still Phase 1. I think this may relate to #5141

VisualEhrmanntraut commented 4 days ago

I left it overnight and it finished. Seems like it was trying to analyse some weird function:

[Function warn] Skipping analysis for function at 0xfffffff007dfd5b8 : Exceeds 'analysis.limits.maxFunctionAnalysisTime'
Screenshot 2024-07-04 at 08 35 05

(which is duplicated again)

@emesare yes, it's indeed because of the new iOS platform.

>>> current_function.platform
<platform: ios-aarch64>
>>> current_function.platform
<platform: mac-aarch64>