Skip to content

More conservative field resolution in MLIL/HLIL for bitfields #7693

@jpenalbae

Description

@jpenalbae

What is the feature you'd like to have?
The new bitfield support in structures is awesome, but until bitfield resolution is added to MLIL/HLIL (#7533), I think there should be at least an option to disable displaying bitfield accessors on MLIL/HLIL.

Is your feature request related to a problem?
For example when using the SVD loader plugin, a bunch of registers will include bitfields, and HLIL will always defaults to the first bitfield. This is my opinion produces misleading output and makes you think the code is dealing with a bitfield when it is really not.

Here are two examples:

Image Image

Are any alternative solutions acceptable?
I see two possible ways:

  • Add an option to enable/disable using bitfields in the MLIL/HLIL views
  • In the SVD plugin, add an option to not create bitfields in the structures

The second option is not very good as the problem will persist for any structure using bitfields which wasn't created by the SVD plugin.

Additional Information:
One clear example where printing bitfields will be misleading is working with an MCP server. Any LLM accessing the MLIL/HLIL view produced by binary ninja will think that is bitfield being accessed and totally mess up....

Metadata

Metadata

Assignees

No one assigned

    Labels

    Core: HLILIssue involves High Level ILCore: MLILIssue involves Medium Level ILCore: Type PropagationCore: TypesIssues involving the representation of typesEffort: LowIssues require < 1 week of workImpact: MediumIssue is impactful with a bad, or no, workaround

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions