Vector35 / Vector35/binaryninja-api

Hitting 'o' on a DataVariable may turn it into the wrong pointer type

Open
#4,419 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Hitting 'o' on a DataVariable pointer that points into the middle of another DataVariable creates the wrong pointer type. If the pointer doesn't point into the start of a DataVariable it should either create a 'void*' or it should identify the array element (or struct field) and make the appropriate type. One reason to prefer 'void*' is that its 1) easier to implement 2) may be more universally accurate

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 by tracing the handler for pressing 'o' on a DataVariable pointer and the type-derivation logic when the target lies inside another DataVariable. Reproduce a pointer into the middle of a variable, then verify the result is either void* or accurately identifies the containing array element or struct field; add or update coverage for that case.

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
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.