Vector35 / Vector35/binaryninja-api
Set Variable Value Fails When Current View Doesn't Match Appropriate Level of IL
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.3k
- Forks
- 298
- Avg merge
- 5d 5h
- Merged PRs (30d)
- 19
Description
Version and Platform (required):
- Binary Ninja Version: 3.6.2125
- OS: macOS
- OS Version: 14.2.1
- CPU Architecture: ARMv8
Bug Description:
If you use "Set Variable Value" from the Variables sidebar on a value that was set in MLIL while your current Binary View is HLIL, you will get an error in the log that says "Unable to determine variable definition address".
Steps To Reproduce:
- Navigate to a function that has some variables
- Switch your active pane to MLIL
- Set one or more of those variables to a
ConstantValue - Switch your active pane to HLIL
- Try to right-click one of the variables whose values have been set with "Set Variable View"
- Observe that nothing happens
- Check the log to see the error message
Expected Behavior:
Having nothing occur at all but a log message that's probably hidden because you have the Python console up is unexpected. Instead, I would expect:
- An error dialog with a descriptive error message that, ideally, tells me to try again in MLIL
- Possibly logic that just figures out what I really want and lets me correctly edit the MLIL value, since there's only one MLIL source that I edited
Additional Information:
Switching your active pane back to MLIL will let you change the variable normally. So, the functionality works, it just isn't able to convey to the user how to get around the issue well when changing from the wrong level of IL.
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
Reproduce the failure through the Variables sidebar by setting a variable in MLIL, switching to HLIL, and using Set Variable Value. Compare the silent failure and log message with the expected behavior: either provide a descriptive dialog directing the user back to MLIL or correctly identify the edited MLIL value.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100