-
Notifications
You must be signed in to change notification settings - Fork 280
More conservative field resolution in MLIL/HLIL for bitfields #7693
Copy link
Copy link
Open
Labels
Core: HLILIssue involves High Level ILIssue involves High Level ILCore: MLILIssue involves Medium Level ILIssue involves Medium Level ILCore: Type PropagationCore: TypesIssues involving the representation of typesIssues involving the representation of typesEffort: LowIssues require < 1 week of workIssues require < 1 week of workImpact: MediumIssue is impactful with a bad, or no, workaroundIssue is impactful with a bad, or no, workaround
Milestone
Metadata
Metadata
Assignees
Labels
Core: HLILIssue involves High Level ILIssue involves High Level ILCore: MLILIssue involves Medium Level ILIssue involves Medium Level ILCore: Type PropagationCore: TypesIssues involving the representation of typesIssues involving the representation of typesEffort: LowIssues require < 1 week of workIssues require < 1 week of workImpact: MediumIssue is impactful with a bad, or no, workaroundIssue is impactful with a bad, or no, workaround
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:
Are any alternative solutions acceptable?
I see two possible ways:
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....