What is the feature you'd like to have?
Binary Ninja should be able to directly open .app bundles, and:
- determine (from Info.plist) and load the main binary
- look through the app's frameworks to discover types and symbols automatically (especially relevant for Objective-C and Swift)
Is your feature request related to a problem?
Currently, I have to manually select the main binary (which is impossible to do without dragging it in from a Finder window), and afaict Binary Ninja does not find or look through frameworks unless I explicitly open each one and turn it into a type library.
Are any alternative solutions acceptable?
I think this is the cleanest possible solution. I can't think of anything else that would solve the problem.
Additional Information:
Software on macOS (and iOS) often relies heavily on frameworks within the app bundle. For anything larger than a little utility app, most of the app's logic is likely in a framework separated from the main executable. Reversing this main executable without types and symbols from the frameworks is much more difficult.
Hopper and IDA both have this feature (I believe; correct me if I'm wrong). If I didn't love Binary Ninja's architecture and UX so much, I would probably just use one of them, and if this feature is not to be, I may do just that.
What is the feature you'd like to have?
Binary Ninja should be able to directly open .app bundles, and:
Is your feature request related to a problem?
Currently, I have to manually select the main binary (which is impossible to do without dragging it in from a Finder window), and afaict Binary Ninja does not find or look through frameworks unless I explicitly open each one and turn it into a type library.
Are any alternative solutions acceptable?
I think this is the cleanest possible solution. I can't think of anything else that would solve the problem.
Additional Information:
Software on macOS (and iOS) often relies heavily on frameworks within the app bundle. For anything larger than a little utility app, most of the app's logic is likely in a framework separated from the main executable. Reversing this main executable without types and symbols from the frameworks is much more difficult.
Hopper and IDA both have this feature (I believe; correct me if I'm wrong). If I didn't love Binary Ninja's architecture and UX so much, I would probably just use one of them, and if this feature is not to be, I may do just that.