Vector35 / Vector35/binaryninja-api
Wrap and document BNPrepareToCopy APIs
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
What is the feature you'd like to have?
The core API functions BNPrepareToCopyLowLevelILFunction and BNPrepareToCopyLowLevelILBasicBlock are currently completely undocumented, despite being necessary for the official inliner example. Additionally, no wrapper is exposed to Python, so even when you know what they are for, you can't call them without manually using the core API.
Are any alternative solutions acceptable?
If these APIs could be automatically handled when necessary, that would be great. Unfortunately, I'm not entirely clear on their use or necessity, other than the fact that they are used by the inliner.
Additional Information:
This is the description I got on the Slack:
The short of it is that they end up copying the labels for the targets of outcoming edges of blocks.
Unfortunately, I don't quite understand what that means...
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 examples/workflows/inliner/inliner.cpp at the linked use of BNPrepareToCopyLowLevelILFunction and trace both named core APIs to understand how outgoing-edge labels are copied. Done means documenting both APIs and exposing Python wrappers, with the inliner use case providing the available behavior to verify.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- backend-api-design, reverse-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100