Vector35 / binaryninja-api

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

Handle swift 5 metadata #5608

Open seekbytes opened 2 weeks ago

seekbytes commented 2 weeks ago

Swift 5 is the first version of Swift programming language that includes a stable ABI. In the ABI, part of the information defined were 'metadata', additional information that are included in special sections, are used to define generic types. The types can give a lot of context, especially when a programming language as Swift is used.

This issue is created to track support of parsing values provided by metadata of swift 5.

Some links for people that are not aware of swift metadata:

Related issues:

3902

3914

ExecuteProtect commented 2 weeks ago

The metadata that swift has once compiled is extremely useful and I believe there's a part of it that even relates to Objective-C & Swift interop...

ccarpenter04 commented 2 weeks ago

The metadata in Swift binaries is priceless but it also has some structural overlapping with Objective-C, so I'm not sure if it would get it's own workflow or it would be more intuitive for it to be an Activity (I believe that's what they're called) and combined with the current Objective-C workload, renamed to something such as Apple ABI support.