Vector35 / Vector35/binaryninja-api
Handle swift 5 metadata
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
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:
- https://github.com/apple/swift/blob/main/docs/ABI/TypeMetadata.rst
- https://knight.sc/reverse%20engineering/2019/07/17/swift-metadata.html
Related issues:
#3902
#3914
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked Swift ABI TypeMetadata.rst documentation and the related issues #3902 and #3914. Define done as support for parsing values provided by Swift 5 metadata, but the issue does not identify implementation files, tests, or an entry point.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- swift
- Domain
- reverse-engineering
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100