angr.utils.balancer

exception angr.utils.balancer.BalancerError

Bases: AngrError

Base class for balancer errors.

exception angr.utils.balancer.BalancerUnsatError

Bases: BalancerError

Exception raised when the balancer determines the constraints are unsatisfiable.

class angr.utils.balancer.Balancer

Bases: object

The Balancer is an equation redistributor. The idea is to take an AST and rebalance it to, for example, isolate unknown terms on one side of an inequality.

__init__(c)
Parameters:

c (Bool)

property compat_ret: tuple[bool, list[tuple[BV, BV]]]
property replacements: list[tuple[BV, BV]]
comparison_info = {'SGE': (False, True, False), 'SGT': (False, False, False), 'SLE': (True, True, False), 'SLT': (True, False, False), 'UGE': (False, True, True), 'UGT': (False, False, True), 'ULE': (True, True, True), 'ULT': (True, False, True)}
angr.utils.balancer.constraint_to_si(expr)

Convert a constraint to SI if possible.

Parameters:

expr (Bool)

Return type:

tuple[bool, list[tuple[BV, BV]]]

Returns: