Vector35 / Vector35/binaryninja-api

No UI to set user indirect call targets

Open
#4,687 0 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Component: UI Effort: Low Impact: Medium UI: Dialogs
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.