Dataflow navigation from the UI
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- reverse-engineering
Research direction
The issue names no files, tests, or entry points. Start by reviewing the existing UI variable highlighting and navigation behavior described in the report, then define how definition, next-use, previous-use, and token navigation should work. Done means the agreed dataflow navigation is available through the UI or keybinds.
Written by the indexing model from the issue text.
Description
It would be a great feature if we could navigate via keybinds/the UI along dataflow for a particular variable. Frequently, when REing something I want to audit the use sites of a variable, or see the source of a variable. Right now I do this by clicking to highlight the variable in the UI, then scrolling backwards. Binja has all the info I want, it just doesn't expose it nicely.
Examples:
- Go to variable definition
- Go to next use site
- Go to previous use site
These would allow me to quickly bounce around for a variable inside a function and would be immensely useful. For a more complicated use case, consider the following:
var baz = whatever();
var bar = bread();
// ...
var foo = bar + baz;
// ...
quux(foo);
With the imaginary keybinds of:
d - jump to definition
u - jump to next use
U - jump to previous use
t - next line token
Let's say my cursor is at quux(foo) and I want to see where foo is defined. I could click foo to highlight it, then hit 'd' to go to the definition. From there, I could hit 't' to change the highlight from foo to bar, and 't' again to go from bar to baz. From either bar or baz I could now quickly cycle through their use sites with 'u', or jump directly to their definition with 'd'. This would replace and simplify a lot of the navigation I do inside a binary manually.
While this example is the way I imagine this working, I'm not at all wed to the specifics.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
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.
More from Vector35/binaryninja-api
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
Vector35/binaryninja-api#8540 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Vector35/binaryninja-api#8516 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Vector35/binaryninja-api#8503 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8446 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Vector35/binaryninja-api#8444 ·
All issues in Vector35/binaryninja-api
Similar issues
-
Website Doc Typo Open
Difficulty 1/5 Under an hour Newbie friendliness 92/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 92/100
autowarefoundation/autoware_universe#13413 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
automated-analysis bug memory-safety
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100