Vector35 / Vector35/binaryninja-api

Append field does not add the new field at the end of the stucture when there are empty bytes in the structure defition

Open
#5,955 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Repro steps:

  1. Define an empty structure, set its size to 0x10
  2. Append a field to it
  3. Observe the field is added at the start of the structure, rather than at the end of it

Screenshot 2024-09-26 at 12 50 39 PM

Note this works when all of the bytes are occupied by the structure fields. It seems like that we always append the field to the next not occupied byte. Is this intended? I think we should still add it to the end of the structure

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 with the structure field-append entry point implicated by the reproduction steps: create an empty structure of size 0x10 and append a field. Trace how unused bytes are selected, then verify that the field is placed at the end of the structure rather than at the first unoccupied byte.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 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.