Skip to content

Better Swift support #8194

@lylythechosenone

Description

@lylythechosenone

What is the feature you'd like to have?
Binary Ninja should:

  • automatically parse Swift metadata
  • add native support for Swift fundamentals (String)
  • add Swift's weird calling conventions (this already has an issue)
  • automatically fix up common Swift patterns (e.g. turning Swift strings into Objective-C strings)

Is your feature request related to a problem?
Swift code is currently a mess. This can be seen any time a Swift String is converted to CFString: It's rendered in Binary Ninja as a call with no parameters returning void *. This is clearly not ideal, especially for things like Swift code that uses Objective-C functions with string literals.

Are any alternative solutions acceptable?
There is already a plugin that does some of this, but it can never truly replicate native support.

Additional Information:
Swift embeds an absurd amount of metadata into any binary it creates. This metadata can be used to get back to near source-level quality. It includes extensive type, class, inheritance, and method information. Not using it is a waste.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions