Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split HLIL Variables #1887

Closed
plafosse opened this issue Aug 10, 2020 · 2 comments
Closed

Split HLIL Variables #1887

plafosse opened this issue Aug 10, 2020 · 2 comments
Assignees
Labels
Component: Core Issue needs changes to the core Component: UI Issue needs changes to the user interface Core: HLIL Issue involves High Level IL Effort: High Issue should take > 1 month Impact: High Issue adds or blocks important functionality
Milestone

Comments

@plafosse
Copy link
Member

Need the ability to merge and split different HLIL variables, and a UI for doing so.

@plafosse plafosse added Component: UI Issue needs changes to the user interface Component: Core Issue needs changes to the core Core: HLIL Issue involves High Level IL labels Aug 10, 2020
@withzombies
Copy link
Contributor

You can currently name several HLIL variables the same name. This is nice but a proper variable merging hides duplicate assignments, resulting in much cleaner HLIL output.

@plafosse plafosse added Effort: Medium Issue should take < 1 month Impact: High Issue adds or blocks important functionality labels Apr 28, 2021
@fuzyll fuzyll added this to the 3.1 (Windows) milestone Feb 2, 2022
@plafosse plafosse modified the milestones: 3.1 (Debugger), 3.2 (Windows) Apr 4, 2022
@plafosse plafosse added Effort: High Issue should take > 1 month and removed Effort: Medium Issue should take < 1 month labels Jun 8, 2022
@fuzyll fuzyll changed the title Merge/Split HLIL Variables Split HLIL Variables Jun 8, 2022
@D0ntPanic
Copy link
Member

Added in build 3678

Variables that have multiple definitions can be manually split into multiple variables by clicking on the variable at a definition site and selecting "Split Variable at Definition" from the context menu.

Warning:
Binary Ninja automatically splits all variables that the analysis determines to be safely splittable. Splitting a variable manually can cause IL and decompilation to be incorrect. There are some patterns where variables can be safely split semantically but analysis cannot determine that it is safe, and this feature is provided to allow variable splitting to be performed in these cases.

Manually split variables will initially provide the selected definition as a separate variable, and all other definitions will be automatically resolved into one or more other variables. If some of the definitions should have been included as part of the same variable, use "Merge Variables..." from the context menu after splitting to select which of the other definitions should be merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component: Core Issue needs changes to the core Component: UI Issue needs changes to the user interface Core: HLIL Issue involves High Level IL Effort: High Issue should take > 1 month Impact: High Issue adds or blocks important functionality
Projects
None yet
Development

No branches or pull requests

4 participants