-
Notifications
You must be signed in to change notification settings - Fork 259
Closed
Labels
Component: CoreIssue needs changes to the coreIssue needs changes to the coreCore: HLILIssue involves High Level ILIssue involves High Level ILEffort: HighIssues require > 1 month of workIssues require > 1 month of workImpact: HighIssue adds or blocks important functionalityIssue adds or blocks important functionality
Milestone
Description
HLIL can produce unsound control flow structuring in some conditions.
Consider this MLIL code:
In MLIL everything looks correct:
Consider the case when 'i = 0the path means
iis assigned to
5and then ultimately goes to instruction
21`
Now in HLIL:
The control flow is a series of if
statements rather than if-else
statements. In the case of i == 0
it meets the first condition and sets i = 5
and then can also satisfy the second condition too incorrectly setting var_20 = 1
Special Thanks to: Zao Yang and Stefan Nagy for their research in Decompiler Fuzzing for reporting this issue.
ExecuteProtect
Metadata
Metadata
Assignees
Labels
Component: CoreIssue needs changes to the coreIssue needs changes to the coreCore: HLILIssue involves High Level ILIssue involves High Level ILEffort: HighIssues require > 1 month of workIssues require > 1 month of workImpact: HighIssue adds or blocks important functionalityIssue adds or blocks important functionality