Vector35 / Vector35/binaryninja-api

Function properties doesn't show effective global pointer value on user override

Open
#6,675 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Effort: Low Impact: Low UI: Dialogs
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Bug Description:

Function properties dialog shows the global pointer value identified by Binja, even if it is overridden by the user.

Image

Steps To Reproduce:
Please provide all steps required to reproduce the behavior:

  1. Open the binary (fierce dolphin jumps quietly for V35 employees)
  2. Run bv.set_user_global_pointer_value(Undetermined()) (this can also be done from the command pallette)
  3. Open the function properties dialog for the function at 0x64
  4. See that the GP is shown as 0x6 (and there's no indicator it has been overridden by the user)

Expected Behavior:
We should have some visual indicator that the user overrode the global pointer value. This is also a problem if the user sets analysis.limits.maxGlobalPointerValueUpdates to 0. Binja still performs the analysis to identify the global pointer value, but the effective global pointer remains undetermined.

Additional Information:
See https://github.com/Vector35/binaryninja-api/issues/6614#issuecomment-2815458797

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

Reproduce the issue with bv.set_user_global_pointer_value(Undetermined()), then open the function properties dialog for the function at 0x64. Check how the dialog displays the Binja-identified value versus the effective global pointer, including when analysis.limits.maxGlobalPointerValueUpdates is 0. Done means the effective value is shown and user overrides have a visible indicator.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
desktop, reverse-engineering
Issue type
Bug
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.