Vector35 / Vector35/binaryninja-api
Variable Slices
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
I think that #1974 faces a similar problem; wanting to know what happens to a variable during its lifetime in a function.
I think that a more expressive/informative version of that would be variable slices; showing a reduced version of HLIL/MLIL that contains only the expressions that affect a variable: assignments, reads, and the control-flow to get to those points, but not the instructions that solve/affect the control-flow conditions.
Sorta like this, but with the empty basic blocks removed:

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
Read issue #1974 alongside the HLIL and MLIL concepts described here, then define how a variable slice should represent assignments, reads, and the control flow reaching them. Done should include an agreed slice representation and behavior for removing empty basic blocks without including instructions that only compute control-flow conditions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- reverse-engineering
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100