angr.analyses.decompiler.optimization_passes.ite_expr_converter

exception angr.analyses.decompiler.optimization_passes.ite_expr_converter.NodeFoundNotification

Bases: Exception

A notification that the target node has been found.

class angr.analyses.decompiler.optimization_passes.ite_expr_converter.BlockLocator

Bases: RegionWalker

Recursively locate block in a GraphRegion instance.

It might be reasonable to move this class into its own file.

__init__(block)
walk_node(region, node)
class angr.analyses.decompiler.optimization_passes.ite_expr_converter.ExpressionReplacer

Bases: AILBlockRewriter

Replace expressions.

__init__(block_addr, target_expr, callback)
class angr.analyses.decompiler.optimization_passes.ite_expr_converter.ITEExprConverter

Bases: OptimizationPass

Transform specific expressions into If-Then-Else expressions, or tertiary expressions in C when given a single-use expression address. Requires outside analysis to provide the target expressions.

ARCHES = ['X86', 'AMD64', 'ARMEL', 'ARMHF', 'ARMCortexM', 'MIPS32', 'MIPS64']
PLATFORMS = ['windows', 'linux', 'cgc']
STAGE: OptimizationPassStage = 10
NAME = 'Transform single-use expressions that were assigned to in different If-Else branches into ternary expressions'
DESCRIPTION = 'Transform specific expressions into If-Then-Else expressions, or tertiary expressions in C when\n    given a single-use expression address. Requires outside analysis to provide the target expressions.'
__init__(*args, ite_exprs=None, **kwargs)