lowlevelil module¶
-
class
binaryninja.lowlevelil.LowLevelILExpr(index)[source]¶ Bases:
objectclass LowLevelILExprhold the index of IL Expressions.Note
This class shouldn’t be instantiated directly. Rather the helper members of LowLevelILFunction should be used instead.
-
class
binaryninja.lowlevelil.LowLevelILFunction(arch, handle=None, source_func=None)[source]¶ Bases:
objectclass LowLevelILFunctioncontains the list of LowLevelILExpr objects that make up a binaryninja.function. LowLevelILExpr objects can be added to the LowLevelILFunction by callingappendand passing the result of the various class methods which return LowLevelILExpr objects.LowLevelILFlagCondition values used as parameters in the
flag_conditionmethod.LowLevelILFlagCondition Operator Description LLFC_E == Equal LLFC_NE != Not equal LLFC_SLT s< Signed less than LLFC_ULT u< Unsigned less than LLFC_SLE s<= Signed less than or equal LLFC_ULE u<= Unsigned less than or equal LLFC_SGE s>= Signed greater than or equal LLFC_UGE u>= Unsigned greater than or equal LLFC_SGT s> Signed greather than LLFC_UGT u> Unsigned greater than LLFC_NEG Negative LLFC_POS Positive LLFC_O overflow Overflow LLFC_NO !overflow No overflow -
add(size, a, b, flags=None)[source]¶ addadds expressionato expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
add.<size>{<flags>}(a, b)Return type:
-
add_carry(size, a, b, carry, flags=None)[source]¶ add_carryadds with carry expressionato expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- carry (LowLevelILExpr) – Carry flag expression
- flags (str) – flags to set
Returns: The expression
adc.<size>{<flags>}(a, b, carry)Return type:
-
add_label_for_address(arch, addr)[source]¶ add_label_for_addressadds a low-level IL label for the given architecturearchat the given virtual addressaddrParameters: - arch (Architecture) – Architecture to add labels for
- addr (int) – the IL address to add a label at
-
add_label_list(labels)[source]¶ add_label_listreturns a label list expression for the given list of LowLevelILLabel objects.Parameters: lables (list(LowLevelILLabel)) – the list of LowLevelILLabel to get a label list expression from Returns: the label list expression Return type: LowLevelILExpr
-
add_operand_list(operands)[source]¶ add_operand_listreturns an operand list expression for the given list of integer operands.Parameters: operands (list(int)) – list of operand numbers Returns: an operand list expression Return type: LowLevelILExpr
-
and_expr(size, a, b, flags=None)[source]¶ and_exprbitwise and’s expressionaand expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
and.<size>{<flags>}(a, b)Return type:
-
append(expr)[source]¶ appendadds the LowLevelILExprexprto the current LowLevelILFunction.Parameters: expr (LowLevelILExpr) – the LowLevelILExpr to add to the current LowLevelILFunction Returns: number of LowLevelILExpr in the current function Return type: int
-
arith_shift_right(size, a, b, flags=None)[source]¶ arith_shift_rightshifts arithmatic right expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
asr.<size>{<flags>}(a, b)Return type:
-
basic_blocks¶ list of LowLevelILBasicBlock objects (read-only)
-
breakpoint()[source]¶ breakpointreturns a processor breakpoint expression.Returns: a breakpoint expression. Return type: LowLevelILExpr
-
call(dest)[source]¶ callreturns an expression which first pushes the address of the next instruction onto the stack then jumps (branches) to the expressiondestParameters: dest (LowLevelILExpr) – the expression to call Returns: The expression call(dest)Return type: LowLevelILExpr
-
call_stack_adjust(dest, stack_adjust)[source]¶ call_stack_adjustreturns an expression which first pushes the address of the next instruction onto the stack then jumps (branches) to the expressiondest. After the function exits,stack_adjustis added to the stack pointer register.Parameters: dest (LowLevelILExpr) – the expression to call Returns: The expression call(dest), stack += stack_adjustReturn type: LowLevelILExpr
-
ceil(size, value, flags=None)[source]¶ ceilrounds a floating point value to an integer towards positive infinityParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
roundint.<size>{<flags>}(value)Return type:
-
compare_equal(size, a, b)[source]¶ compare_equalreturns comparison expression of sizesizechecking if expressionais equal to expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_not_equal(size, a, b)[source]¶ compare_not_equalreturns comparison expression of sizesizechecking if expressionais not equal to expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_signed_greater_equal(size, a, b)[source]¶ compare_signed_greater_equalreturns comparison expression of sizesizechecking if expressionais signed greater than or equal toexpressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_signed_greater_than(size, a, b)[source]¶ compare_signed_greater_thanreturns comparison expression of sizesizechecking if expressionais signed greater than or equal to expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_signed_less_equal(size, a, b)[source]¶ compare_signed_less_equalreturns comparison expression of sizesizechecking if expressionais signed less than or equal to expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_signed_less_than(size, a, b)[source]¶ compare_signed_less_thanreturns comparison expression of sizesizechecking if expressionais signed less than expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_unsigned_greater_equal(size, a, b)[source]¶ compare_unsigned_greater_equalreturns comparison expression of sizesizechecking if expressionais unsigned greater than or equal to expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_unsigned_greater_than(size, a, b)[source]¶ compare_unsigned_greater_thanreturns comparison expression of sizesizechecking if expressionais unsigned greater than or equal to expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_unsigned_less_equal(size, a, b)[source]¶ compare_unsigned_less_equalreturns comparison expression of sizesizechecking if expressionais unsigned less than or equal to expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
compare_unsigned_less_than(size, a, b)[source]¶ compare_unsigned_less_thanreturns comparison expression of sizesizechecking if expressionais unsigned less than expressionbParameters: - size (int) – size in bytes
- a (LowLevelILExpr) – LHS of comparison
- b (LowLevelILExpr) – RHS of comparison
Returns: a comparison expression.
Return type:
-
const(size, value)[source]¶ constreturns an expression for the constant integervaluewith sizesizeParameters: Returns: A constant expression of given value and size
Return type:
-
const_pointer(size, value)[source]¶ const_pointerreturns an expression for the constant pointervaluewith sizesizeParameters: Returns: A constant expression of given value and size
Return type:
-
current_address¶ Current IL Address (read/write)
-
div_double_prec_signed(size, a, b, flags=None)[source]¶ div_double_prec_signedsigned double precision divide using expressionaas a single double precision register by expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
divs.dp.<size>{<flags>}(a, b)Return type:
-
div_double_prec_unsigned(size, a, b, flags=None)[source]¶ div_double_prec_unsignedunsigned double precision divide using expressionaas a single double precision register by expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
divu.dp.<size>{<flags>}(a, b)Return type:
-
div_signed(size, a, b, flags=None)[source]¶ div_signedsigned divide expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
divs.<size>{<flags>}(a, b)Return type:
-
div_unsigned(size, a, b, flags=None)[source]¶ div_unsignedunsigned divide expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
divu.<size>{<flags>}(a, b)Return type:
-
finalize()[source]¶ finalizeends the function and computes the list of basic blocks.Return type: None
-
flag(reg)[source]¶ flagreturns a flag expression for the given flag name.Parameters: reg (str) – name of the flag expression to retrieve Returns: A flag expression of given flag name Return type: LowLevelILExpr
-
flag_bit(size, reg, bit)[source]¶ flag_bitsets the flag namedregand sizesizeto the constant integer valuebitParameters: Returns: A constant expression of given value and size
FLAG.reg = bitReturn type:
-
flag_condition(cond, sem_class=None)[source]¶ flag_conditionreturns a flag_condition expression for the given LowLevelILFlagConditionParameters: - cond (LowLevelILFlagCondition) – Flag condition expression to retrieve
- sem_class (str) – Optional semantic flag class
Returns: A flag_condition expression
Return type:
-
flag_group(sem_group)[source]¶ flag_groupreturns a flag_group expression for the given semantic flag groupParameters: sem_group (str) – Semantic flag group to access Returns: A flag_group expression Return type: LowLevelILExpr
-
float_abs(size, value, flags=None)[source]¶ float_absreturns absolute value of floating point expressionvalueof sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
fabs.<size>{<flags>}(value)Return type:
-
float_add(size, a, b, flags=None)[source]¶ float_addadds floating point expressionato expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
fadd.<size>{<flags>}(a, b)Return type:
-
float_compare_equal(size, a, b)[source]¶ float_compare_equalreturns floating point comparison expression of sizesizechecking if expressionais equal to expressionbParameters: - size (int) – the size of the operands in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
a f== bReturn type:
-
float_compare_greater_equal(size, a, b)[source]¶ float_compare_greater_equalreturns floating point comparison expression of sizesizechecking if expressionais greater than or equal to expressionbParameters: - size (int) – the size of the operands in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
a f>= bReturn type:
-
float_compare_greater_than(size, a, b)[source]¶ float_compare_greater_thanreturns floating point comparison expression of sizesizechecking if expressionais greater than or equal to expressionbParameters: - size (int) – the size of the operands in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
a f> bReturn type:
-
float_compare_less_equal(size, a, b)[source]¶ float_compare_less_equalreturns floating point comparison expression of sizesizechecking if expressionais less than or equal to expressionbParameters: - size (int) – the size of the operands in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
a f<= bReturn type:
-
float_compare_less_than(size, a, b)[source]¶ float_compare_less_thanreturns floating point comparison expression of sizesizechecking if expressionais less than to expressionbParameters: - size (int) – the size of the operands in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
a f< bReturn type:
-
float_compare_not_equal(size, a, b)[source]¶ float_compare_not_equalreturns floating point comparison expression of sizesizechecking if expressionais not equal to expressionbParameters: - size (int) – the size of the operands in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
a f!= bReturn type:
-
float_compare_unordered(size, a, b)[source]¶ float_compare_unorderedreturns floating point comparison expression of sizesizechecking if expressionais unordered relative to expressionbParameters: - size (int) – the size of the operands in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
is_unordered(a, b)Return type:
-
float_const_double(value)[source]¶ float_const_doublereturns an expression for the double precision floating point valuevalueParameters: value (float) – float value for the constant Returns: A constant expression of given value and size Return type: LowLevelILExpr
-
float_const_raw(size, value)[source]¶ float_const_rawreturns an expression for the constant raw binary floating point valuevaluewith sizesizeParameters: Returns: A constant expression of given value and size
Return type:
-
float_const_single(value)[source]¶ float_const_singlereturns an expression for the single precision floating point valuevalueParameters: value (float) – float value for the constant Returns: A constant expression of given value and size Return type: LowLevelILExpr
-
float_convert(size, value, flags=None)[source]¶ int_to_floatconverts floating point value of expressionvalueto sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
fconvert.<size>{<flags>}(value)Return type:
-
float_div(size, a, b, flags=None)[source]¶ float_divdivides floating point expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
fdiv.<size>{<flags>}(a, b)Return type:
-
float_mult(size, a, b, flags=None)[source]¶ float_multmultiplies floating point expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
fmul.<size>{<flags>}(a, b)Return type:
-
float_neg(size, value, flags=None)[source]¶ float_negreturns sign negation of floating point expressionvalueof sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
fneg.<size>{<flags>}(value)Return type:
-
float_sqrt(size, value, flags=None)[source]¶ float_sqrtreturns square root of floating point expressionvalueof sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
sqrt.<size>{<flags>}(value)Return type:
-
float_sub(size, a, b, flags=None)[source]¶ float_subsubtracts floating point expressionbfrom expressionapotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
fsub.<size>{<flags>}(a, b)Return type:
-
float_to_int(size, value, flags=None)[source]¶ float_to_intreturns integer value of floating point expressionvalueof sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
int.<size>{<flags>}(value)Return type:
-
float_trunc(size, value, flags=None)[source]¶ float_truncrounds a floating point value to an integer towards zeroParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
roundint.<size>{<flags>}(value)Return type:
-
floor(size, value, flags=None)[source]¶ floorrounds a floating point value to an integer towards negative infinityParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
roundint.<size>{<flags>}(value)Return type:
-
get_label_for_address(arch, addr)[source]¶ get_label_for_addressreturns the LowLevelILLabel for the given Architecturearchand IL addressaddr.Parameters: - arch (Architecture) –
- addr (int) – IL Address label to retrieve
Returns: the LowLevelILLabel for the given IL address
Return type:
-
goto(label)[source]¶ gotoreturns a goto expression which jumps to the provided LowLevelILLabel.Parameters: label (LowLevelILLabel) – Label to jump to Returns: the LowLevelILExpr that jumps to the provided label Return type: LowLevelILExpr
-
if_expr(operand, t, f)[source]¶ if_exprreturns theifexpression which depending on conditionoperandjumps to the LowLevelILLabeltwhen the condition expressionoperandis non-zero andfwhen it’s zero.Parameters: - operand (LowLevelILExpr) – comparison expression to evaluate.
- t (LowLevelILLabel) – Label for the true branch
- f (LowLevelILLabel) – Label for the false branch
Returns: the LowLevelILExpr for the if expression
Return type:
-
int_to_float(size, value, flags=None)[source]¶ int_to_floatreturns floating point value of integer expressionvalueof sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
float.<size>{<flags>}(value)Return type:
-
intrinsic(outputs, intrinsic, params, flags=None)[source]¶ intrinsicreturn an intrinsic expression.Returns: an intrinsic expression. Return type: LowLevelILExpr
-
jump(dest)[source]¶ jumpreturns an expression which jumps (branches) to the expressiondestParameters: dest (LowLevelILExpr) – the expression to jump to Returns: The expression jump(dest)Return type: LowLevelILExpr
-
load(size, addr)[source]¶ loadReadssizebytes from the expressionaddrParameters: - size (int) – number of bytes to read
- addr (LowLevelILExpr) – the expression to read memory from
Returns: The expression
[addr].sizeReturn type:
-
logical_shift_right(size, a, b, flags=None)[source]¶ logical_shift_rightshifts logically right expressionaby expressionbpotentially setting flagsflags``and returning an expression of ``sizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
lsr.<size>{<flags>}(a, b)Return type:
-
low_part(size, value, flags=None)[source]¶ low_parttruncatesvaluetosizebytesParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to zero extend
Returns: The expression
(value).<size>Return type:
-
mapped_medium_level_il¶ Medium level IL with mappings between low level IL and medium level IL. Unused stores are not removed. Typically, this should only be used to answer queries on assembly or low level IL where the query is easier to perform on medium level IL.
-
mark_label(label)[source]¶ mark_labelassigns a LowLevelILLabel to the current IL address.Parameters: label (LowLevelILLabel) – Return type: None
-
medium_level_il¶ Medium level IL for this low level IL.
-
mod_double_prec_signed(size, a, b, flags=None)[source]¶ mod_double_prec_signedsigned double precision modulus using expressionaas a single double precision register by expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
mods.dp.<size>{<flags>}(a, b)Return type:
-
mod_double_prec_unsigned(size, a, b, flags=None)[source]¶ mod_double_prec_unsignedunsigned double precision modulus using expressionaas a single double precision register by expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
modu.dp.<size>{<flags>}(a, b)Return type:
-
mod_signed(size, a, b, flags=None)[source]¶ mod_signedsigned modulus expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
mods.<size>{<flags>}(a, b)Return type:
-
mod_unsigned(size, a, b, flags=None)[source]¶ mod_unsignedunsigned modulus expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
modu.<size>{<flags>}(a, b)Return type:
-
mult(size, a, b, flags=None)[source]¶ multmultiplies expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
sbc.<size>{<flags>}(a, b)Return type:
-
mult_double_prec_signed(size, a, b, flags=None)[source]¶ mult_double_prec_signedmultiplies signed with double precision expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
muls.dp.<size>{<flags>}(a, b)Return type:
-
mult_double_prec_unsigned(size, a, b, flags=None)[source]¶ mult_double_prec_unsignedmultiplies unsigned with double precision expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
mulu.dp.<size>{<flags>}(a, b)Return type:
-
neg_expr(size, value, flags=None)[source]¶ neg_exprtwo’s complement sign negation of expressionvalueof sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
neg.<size>{<flags>}(value)Return type:
-
no_ret()[source]¶ no_retreturns an expression halts disassemblyReturns: The expression noreturnReturn type: LowLevelILExpr
-
non_ssa_form¶ Low level IL in non-SSA (default) form (read-only)
-
nop()[source]¶ nopno operation, this instruction does nothingReturns: The no operation expression Return type: LowLevelILExpr
-
not_expr(size, value, flags=None)[source]¶ not_exprbitwise inverse of expressionvalueof sizesizepotentially setting flagsParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to bitwise invert
- flags (str) – optional, flags to set
Returns: The expression
not.<size>{<flags>}(value)Return type:
-
operand(n, expr)[source]¶ operandsets the operand number of the expressionexprand passes backexprwithout modification.Parameters: - n (int) –
- expr (LowLevelILExpr) –
Returns: returns the expression
exprunmodifiedReturn type:
-
or_expr(size, a, b, flags=None)[source]¶ or_exprbitwise or’s expressionaand expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
or.<size>{<flags>}(a, b)Return type:
-
pop(size)[source]¶ popreadssizebytes from the stack, adjusting the stack bysize.Parameters: size (int) – number of bytes to read from the stack Returns: The expression popReturn type: LowLevelILExpr
-
push(size, value)[source]¶ pushwritessizebytes from expressionvalueto the stack, adjusting the stack bysize.Parameters: - size (int) – number of bytes to write and adjust the stack by
- value (LowLevelILExpr) – the expression to write
Returns: The expression push(value)
Return type:
-
reg(size, reg)[source]¶ regreturns a register of sizesizewith nameregParameters: Returns: A register expression for the given string
Return type:
-
reg_split(size, hi, lo)[source]¶ reg_splitcombines registers of sizesizewith nameshiandloParameters: Returns: The expression
hi:loReturn type:
-
reg_stack_pop(size, reg_stack)[source]¶ reg_stack_popreturns the top entry of sizesizein register stack with namereg_stack, and removes the entry from the stackParameters: Returns: The expression
reg_stack.popReturn type:
-
reg_stack_push(size, reg_stack, value, flags=0)[source]¶ reg_stack_pushpushes the expressionvalueof sizesizeonto the top of the register stackreg_stackParameters: - size (int) – size of the register parameter in bytes
- reg_stack (str) – the register stack name
- value (LowLevelILExpr) – an expression to push
- flags (str) – which flags are set by this operation
Returns: The expression
reg_stack.push(value)Return type:
-
reg_stack_top_relative(size, reg_stack, entry)[source]¶ reg_stack_top_relativereturns a register stack entry of sizesizeat top-relative locationentryin register stack with namereg_stackParameters: - size (int) – the size of the register in bytes
- reg_stack (str) – the name of the register stack
- entry (LowLevelILExpr) – an expression for which stack entry to fetch
Returns: The expression
reg_stack[entry]Return type:
-
ret(dest)[source]¶ retreturns an expression which jumps (branches) to the expressiondest.retis a special alias for jump that makes the disassembler stop disassembling.Parameters: dest (LowLevelILExpr) – the expression to jump to Returns: The expression jump(dest)Return type: LowLevelILExpr
-
rotate_left(size, a, b, flags=None)[source]¶ rotate_leftbitwise rotates left expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
rol.<size>{<flags>}(a, b)Return type:
-
rotate_left_carry(size, a, b, carry, flags=None)[source]¶ rotate_left_carrybitwise rotates left with carry expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- carry (LowLevelILExpr) – Carry flag expression
- flags (str) – optional, flags to set
Returns: The expression
rlc.<size>{<flags>}(a, b, carry)Return type:
-
rotate_right(size, a, b, flags=None)[source]¶ rotate_rightbitwise rotates right expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
ror.<size>{<flags>}(a, b)Return type:
-
rotate_right_carry(size, a, b, carry, flags=None)[source]¶ rotate_right_carrybitwise rotates right with carry expressionaby expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- carry (LowLevelILExpr) – Carry flag expression
- flags (str) – optional, flags to set
Returns: The expression
rrc.<size>{<flags>}(a, b, carry)Return type:
-
round_to_int(size, value, flags=None)[source]¶ round_to_introunds a floating point value to the nearest integerParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to negate
- flags (str) – optional, flags to set
Returns: The expression
roundint.<size>{<flags>}(value)Return type:
-
set_flag(flag, value)[source]¶ set_flagsets the flagflagto the LowLevelILExprvalueParameters: - flag (str) – the low register name
- value (LowLevelILExpr) – an expression to set the flag to
Returns: The expression FLAG.flag = value
Return type:
-
set_reg(size, reg, value, flags=0)[source]¶ set_regsets the registerregof sizesizeto the expressionvalueParameters: - size (int) – size of the register parameter in bytes
- reg (str) – the register name
- value (LowLevelILExpr) – an expression to set the register to
- flags (str) – which flags are set by this operation
Returns: The expression
reg = valueReturn type:
-
set_reg_split(size, hi, lo, value, flags=0)[source]¶ set_reg_splituseshiandloas a single extended register settinghi:loto the expressionvalue.Parameters: - size (int) – size of the register parameter in bytes
- hi (str) – the high register name
- lo (str) – the low register name
- value (LowLevelILExpr) – an expression to set the split regiters to
- flags (str) – which flags are set by this operation
Returns: The expression
hi:lo = valueReturn type:
-
set_reg_stack_top_relative(size, reg_stack, entry, value, flags=0)[source]¶ set_reg_stack_top_relativesets the top-relative entryentryof sizesizein register stackreg_stackto the expressionvalueParameters: - size (int) – size of the register parameter in bytes
- reg_stack (str) – the register stack name
- entry (LowLevelILExpr) – an expression for which stack entry to set
- value (LowLevelILExpr) – an expression to set the entry to
- flags (str) – which flags are set by this operation
Returns: The expression
reg_stack[entry] = valueReturn type:
-
shift_left(size, a, b, flags=None)[source]¶ shift_leftsubtracts with borrow expressionbfrom expressionapotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
lsl.<size>{<flags>}(a, b)Return type:
-
sign_extend(size, value, flags=None)[source]¶ sign_extendtwo’s complement sign-extends the expression invaluetosizebytesParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to sign extn
- flags (str) – optional, flags to set
Returns: The expression
sx.<size>(value)Return type:
-
ssa_form¶ Low level IL in SSA form (read-only)
-
store(size, addr, value, flags=None)[source]¶ storeWritessizebytes to expressionaddrread from expressionvalueParameters: - size (int) – number of bytes to write
- addr (LowLevelILExpr) – the expression to write to
- value (LowLevelILExpr) – the expression to be written
- flags (str) – which flags are set by this operation
Returns: The expression
[addr].size = valueReturn type:
-
sub(size, a, b, flags=None)[source]¶ subsubtracts expressionbfrom expressionapotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – flags to set
Returns: The expression
sub.<size>{<flags>}(a, b)Return type:
-
sub_borrow(size, a, b, carry, flags=None)[source]¶ sub_borrowsubtracts with borrow expressionbfrom expressionapotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- carry (LowLevelILExpr) – Carry flag expression
- flags (str) – flags to set
Returns: The expression
sbb.<size>{<flags>}(a, b, carry)Return type:
-
system_call()[source]¶ system_callreturn a system call expression.Returns: a system call expression. Return type: LowLevelILExpr
-
tailcall(dest)[source]¶ tailcallreturns an expression which jumps (branches) to the expressiondestParameters: dest (LowLevelILExpr) – the expression to jump to Returns: The expression tailcall(dest)Return type: LowLevelILExpr
-
temp_flag_count¶ Number of temporary flags (read-only)
-
temp_reg_count¶ Number of temporary registers (read-only)
-
trap(value)[source]¶ trapreturns a processor trap (interrupt) expression of the given integervalue.Parameters: value (int) – trap (interrupt) number Returns: a trap expression. Return type: LowLevelILExpr
-
undefined()[source]¶ undefinedreturns the undefined expression. This should be used for instructions which perform functions but aren’t important for dataflow or partial emulation purposes.Returns: the unimplemented expression. Return type: LowLevelILExpr
-
unimplemented()[source]¶ unimplementedreturns the unimplemented expression. This should be used for all instructions which aren’t implemented.Returns: the unimplemented expression. Return type: LowLevelILExpr
-
unimplemented_memory_ref(size, addr)[source]¶ unimplemented_memory_refa memory reference to expressionaddrof sizesizewith unimplemented operation.Parameters: - size (int) – size in bytes of the memory reference
- addr (LowLevelILExpr) – expression to reference memory
Returns: the unimplemented memory reference expression.
Return type:
-
xor_expr(size, a, b, flags=None)[source]¶ xor_exprxor’s expressionawith expressionbpotentially setting flagsflagsand returning an expression ofsizebytes.Parameters: - size (int) – the size of the result in bytes
- a (LowLevelILExpr) – LHS expression
- b (LowLevelILExpr) – RHS expression
- flags (str) – optional, flags to set
Returns: The expression
xor.<size>{<flags>}(a, b)Return type:
-
zero_extend(size, value, flags=None)[source]¶ zero_extendzero-extends the expression invaluetosizebytesParameters: - size (int) – the size of the result in bytes
- value (LowLevelILExpr) – the expression to zero extend
Returns: The expression
zx.<size>(value)Return type:
-
-
class
binaryninja.lowlevelil.LowLevelILInstruction(func, expr_index, instr_index=None)[source]¶ Bases:
objectclass LowLevelILInstructionLow Level Intermediate Language Instructions are infinite length tree-based instructions. Tree-based instructions use infix notation with the left hand operand being the destination operand. Infix notation is thus more natural to read than other notations (e.g. x86mov eax, 0vs. LLILeax = 0).-
ILOperations= {<LowLevelILOperation.LLIL_NOP: 0>: [], <LowLevelILOperation.LLIL_SET_REG: 1>: [('dest', 'reg'), ('src', 'expr')], <LowLevelILOperation.LLIL_SET_REG_SPLIT: 2>: [('hi', 'reg'), ('lo', 'reg'), ('src', 'expr')], <LowLevelILOperation.LLIL_SET_FLAG: 3>: [('dest', 'flag'), ('src', 'expr')], <LowLevelILOperation.LLIL_SET_REG_STACK_REL: 4>: [('stack', 'reg_stack'), ('dest', 'expr'), ('src', 'expr')], <LowLevelILOperation.LLIL_REG_STACK_PUSH: 5>: [('stack', 'reg_stack'), ('src', 'expr')], <LowLevelILOperation.LLIL_LOAD: 6>: [('src', 'expr')], <LowLevelILOperation.LLIL_STORE: 7>: [('dest', 'expr'), ('src', 'expr')], <LowLevelILOperation.LLIL_PUSH: 8>: [('src', 'expr')], <LowLevelILOperation.LLIL_POP: 9>: [], <LowLevelILOperation.LLIL_REG: 10>: [('src', 'reg')], <LowLevelILOperation.LLIL_REG_SPLIT: 11>: [('hi', 'reg'), ('lo', 'reg')], <LowLevelILOperation.LLIL_REG_STACK_REL: 12>: [('stack', 'reg_stack'), ('src', 'expr')], <LowLevelILOperation.LLIL_REG_STACK_POP: 13>: [('stack', 'reg_stack')], <LowLevelILOperation.LLIL_REG_STACK_FREE_REG: 14>: [('dest', 'reg')], <LowLevelILOperation.LLIL_REG_STACK_FREE_REL: 15>: [('stack', 'reg_stack'), ('dest', 'expr')], <LowLevelILOperation.LLIL_CONST: 16>: [('constant', 'int')], <LowLevelILOperation.LLIL_CONST_PTR: 17>: [('constant', 'int')], <LowLevelILOperation.LLIL_FLOAT_CONST: 18>: [('constant', 'float')], <LowLevelILOperation.LLIL_FLAG: 19>: [('src', 'flag')], <LowLevelILOperation.LLIL_FLAG_BIT: 20>: [('src', 'flag'), ('bit', 'int')], <LowLevelILOperation.LLIL_ADD: 21>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_ADC: 22>: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], <LowLevelILOperation.LLIL_SUB: 23>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_SBB: 24>: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], <LowLevelILOperation.LLIL_AND: 25>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_OR: 26>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_XOR: 27>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_LSL: 28>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_LSR: 29>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_ASR: 30>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_ROL: 31>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_RLC: 32>: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], <LowLevelILOperation.LLIL_ROR: 33>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_RRC: 34>: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], <LowLevelILOperation.LLIL_MUL: 35>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_MULU_DP: 36>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_MULS_DP: 37>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_DIVU: 38>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_DIVU_DP: 39>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_DIVS: 40>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_DIVS_DP: 41>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_MODU: 42>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_MODU_DP: 43>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_MODS: 44>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_MODS_DP: 45>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_NEG: 46>: [('src', 'expr')], <LowLevelILOperation.LLIL_NOT: 47>: [('src', 'expr')], <LowLevelILOperation.LLIL_SX: 48>: [('src', 'expr')], <LowLevelILOperation.LLIL_ZX: 49>: [('src', 'expr')], <LowLevelILOperation.LLIL_LOW_PART: 50>: [('src', 'expr')], <LowLevelILOperation.LLIL_JUMP: 51>: [('dest', 'expr')], <LowLevelILOperation.LLIL_JUMP_TO: 52>: [('dest', 'expr'), ('targets', 'int_list')], <LowLevelILOperation.LLIL_CALL: 53>: [('dest', 'expr')], <LowLevelILOperation.LLIL_CALL_STACK_ADJUST: 54>: [('dest', 'expr'), ('stack_adjustment', 'int'), ('reg_stack_adjustments', 'reg_stack_adjust')], <LowLevelILOperation.LLIL_TAILCALL: 55>: [('dest', 'expr')], <LowLevelILOperation.LLIL_RET: 56>: [('dest', 'expr')], <LowLevelILOperation.LLIL_NORET: 57>: [], <LowLevelILOperation.LLIL_IF: 58>: [('condition', 'expr'), ('true', 'int'), ('false', 'int')], <LowLevelILOperation.LLIL_GOTO: 59>: [('dest', 'int')], <LowLevelILOperation.LLIL_FLAG_COND: 60>: [('condition', 'cond'), ('semantic_class', 'sem_class')], <LowLevelILOperation.LLIL_FLAG_GROUP: 61>: [('semantic_group', 'sem_group')], <LowLevelILOperation.LLIL_CMP_E: 62>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_NE: 63>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_SLT: 64>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_ULT: 65>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_SLE: 66>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_ULE: 67>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_SGE: 68>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_UGE: 69>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_SGT: 70>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_CMP_UGT: 71>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_TEST_BIT: 72>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_BOOL_TO_INT: 73>: [('src', 'expr')], <LowLevelILOperation.LLIL_ADD_OVERFLOW: 74>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_SYSCALL: 75>: [], <LowLevelILOperation.LLIL_BP: 76>: [], <LowLevelILOperation.LLIL_TRAP: 77>: [('vector', 'int')], <LowLevelILOperation.LLIL_INTRINSIC: 78>: [('output', 'reg_or_flag_list'), ('intrinsic', 'intrinsic'), ('param', 'expr')], <LowLevelILOperation.LLIL_UNDEF: 79>: [], <LowLevelILOperation.LLIL_UNIMPL: 80>: [], <LowLevelILOperation.LLIL_UNIMPL_MEM: 81>: [('src', 'expr')], <LowLevelILOperation.LLIL_FADD: 82>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FSUB: 83>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FMUL: 84>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FDIV: 85>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FSQRT: 86>: [('src', 'expr')], <LowLevelILOperation.LLIL_FNEG: 87>: [('src', 'expr')], <LowLevelILOperation.LLIL_FABS: 88>: [('src', 'expr')], <LowLevelILOperation.LLIL_FLOAT_TO_INT: 89>: [('src', 'expr')], <LowLevelILOperation.LLIL_INT_TO_FLOAT: 90>: [('src', 'expr')], <LowLevelILOperation.LLIL_FLOAT_CONV: 91>: [('src', 'expr')], <LowLevelILOperation.LLIL_ROUND_TO_INT: 92>: [('src', 'expr')], <LowLevelILOperation.LLIL_FLOOR: 93>: [('src', 'expr')], <LowLevelILOperation.LLIL_CEIL: 94>: [('src', 'expr')], <LowLevelILOperation.LLIL_FTRUNC: 95>: [('src', 'expr')], <LowLevelILOperation.LLIL_FCMP_E: 96>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FCMP_NE: 97>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FCMP_LT: 98>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FCMP_LE: 99>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FCMP_GE: 100>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FCMP_GT: 101>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FCMP_O: 102>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_FCMP_UO: 103>: [('left', 'expr'), ('right', 'expr')], <LowLevelILOperation.LLIL_SET_REG_SSA: 104>: [('dest', 'reg_ssa'), ('src', 'expr')], <LowLevelILOperation.LLIL_SET_REG_SSA_PARTIAL: 105>: [('full_reg', 'reg_ssa'), ('dest', 'reg'), ('src', 'expr')], <LowLevelILOperation.LLIL_SET_REG_SPLIT_SSA: 106>: [('hi', 'expr'), ('lo', 'expr'), ('src', 'expr')], <LowLevelILOperation.LLIL_SET_REG_STACK_REL_SSA: 107>: [('stack', 'expr'), ('dest', 'expr'), ('top', 'expr'), ('src', 'expr')], <LowLevelILOperation.LLIL_SET_REG_STACK_ABS_SSA: 108>: [('stack', 'expr'), ('dest', 'reg'), ('src', 'expr')], <LowLevelILOperation.LLIL_REG_SPLIT_DEST_SSA: 109>: [('dest', 'reg_ssa')], <LowLevelILOperation.LLIL_REG_STACK_DEST_SSA: 110>: [('src', 'reg_stack_ssa_dest_and_src')], <LowLevelILOperation.LLIL_REG_SSA: 111>: [('src', 'reg_ssa')], <LowLevelILOperation.LLIL_REG_SSA_PARTIAL: 112>: [('full_reg', 'reg_ssa'), ('src', 'reg')], <LowLevelILOperation.LLIL_REG_SPLIT_SSA: 113>: [('hi', 'reg_ssa'), ('lo', 'reg_ssa')], <LowLevelILOperation.LLIL_REG_STACK_REL_SSA: 114>: [('stack', 'reg_stack_ssa'), ('src', 'expr'), ('top', 'expr')], <LowLevelILOperation.LLIL_REG_STACK_ABS_SSA: 115>: [('stack', 'reg_stack_ssa'), ('src', 'reg')], <LowLevelILOperation.LLIL_REG_STACK_FREE_REL_SSA: 116>: [('stack', 'expr'), ('dest', 'expr'), ('top', 'expr')], <LowLevelILOperation.LLIL_REG_STACK_FREE_ABS_SSA: 117>: [('stack', 'expr'), ('dest', 'reg')], <LowLevelILOperation.LLIL_SET_FLAG_SSA: 118>: [('dest', 'flag_ssa'), ('src', 'expr')], <LowLevelILOperation.LLIL_FLAG_SSA: 119>: [('src', 'flag_ssa')], <LowLevelILOperation.LLIL_FLAG_BIT_SSA: 120>: [('src', 'flag_ssa'), ('bit', 'int')], <LowLevelILOperation.LLIL_CALL_SSA: 121>: [('output', 'expr'), ('dest', 'expr'), ('stack', 'expr'), ('param', 'expr')], <LowLevelILOperation.LLIL_SYSCALL_SSA: 122>: [('output', 'expr'), ('stack', 'expr'), ('param', 'expr')], <LowLevelILOperation.LLIL_TAILCALL_SSA: 123>: [('output', 'expr'), ('dest', 'expr'), ('stack', 'expr'), ('param', 'expr')], <LowLevelILOperation.LLIL_CALL_PARAM: 124>: [('src', 'expr_list')], <LowLevelILOperation.LLIL_CALL_STACK_SSA: 125>: [('src', 'reg_ssa'), ('src_memory', 'int')], <LowLevelILOperation.LLIL_CALL_OUTPUT_SSA: 126>: [('dest_memory', 'int'), ('dest', 'reg_ssa_list')], <LowLevelILOperation.LLIL_LOAD_SSA: 127>: [('src', 'expr'), ('src_memory', 'int')], <LowLevelILOperation.LLIL_STORE_SSA: 128>: [('dest', 'expr'), ('dest_memory', 'int'), ('src_memory', 'int'), ('src', 'expr')], <LowLevelILOperation.LLIL_INTRINSIC_SSA: 129>: [('output', 'reg_or_flag_ssa_list'), ('intrinsic', 'intrinsic'), ('param', 'expr')], <LowLevelILOperation.LLIL_REG_PHI: 130>: [('dest', 'reg_ssa'), ('src', 'reg_ssa_list')], <LowLevelILOperation.LLIL_REG_STACK_PHI: 131>: [('dest', 'reg_stack_ssa'), ('src', 'reg_stack_ssa_list')], <LowLevelILOperation.LLIL_FLAG_PHI: 132>: [('dest', 'flag_ssa'), ('src', 'flag_ssa_list')], <LowLevelILOperation.LLIL_MEM_PHI: 133>: [('dest_memory', 'int'), ('src_memory', 'int_list')]}¶
-
mapped_medium_level_il¶ Gets the mapped medium level IL expression corresponding to this expression
-
medium_level_il¶ Gets the medium level IL expression corresponding to this expression (may be None for eliminated instructions)
-
non_ssa_form¶ Non-SSA form of expression (read-only)
-
possible_values¶ Possible values of expression using path-sensitive static data flow analysis (read-only)
-
postfix_operands¶ All operands in the expression tree in postfix order
-
prefix_operands¶ All operands in the expression tree in prefix order
-
ssa_form¶ SSA form of expression (read-only)
-
tokens¶ LLIL tokens (read-only)
-
value¶ Value of expression if constant or a known value (read-only)
-