Triton is a dynamic binary analysis library. Build your own program analysis tools, automate your reverse engineering, perform software verification or just emulate code.
Now we check that first whether the IfExpr of the ITE node is symbolic. If it is, it marks the whole node as symbolic otherwise checks each children.
Note that the problem above is not present if either MODE.AST_OPTIMIZATIONS or MODE.CONSTANT_FOLDING is set, since the optimization basically does the same as the proposed fix (here).
This PR fixes how
isSymbolic
is computed for ITE nodes. The following code shows the issue:It will output that
ite_node
is symbolic when it is not:Now we check that first whether the
IfExpr
of the ITE node is symbolic. If it is, it marks the whole node as symbolic otherwise checks each children.Note that the problem above is not present if either
MODE.AST_OPTIMIZATIONS
orMODE.CONSTANT_FOLDING
is set, since the optimization basically does the same as the proposed fix (here).