Vector35 / Vector35/binaryninja-api
No UI to set user indirect call targets
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
For indirect calls like call rax, we have a way to specify the value of rax via the API: https://github.com/Vector35/binaryninja-api/blob/7598688466960427890036590239565364310171/function.cpp#L1622. However, there is no UI to do it so it has to be done via the Python API, severely impacting the discoverability of the feature. We should add a menu to the context menu which will pop-up a dialog and allow the user to tell in an address (or several addresses)
Related to https://github.com/Vector35/binaryninja-api/issues/4686, https://github.com/Vector35/binaryninja-api/issues/4428, and https://binary.ninja/2020/09/10/user-informed-dataflow.html#jump-table-example
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 function.cpp at the referenced API location around line 1622 to understand how indirect call target values are specified. Then trace the Binary Ninja context-menu and dialog entry points for the relevant indirect-call view. Done means a discoverable context-menu action can accept one or more addresses and apply them to the indirect call.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- desktop, reverse-engineering
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100