mediumlevelil module

Class

Description

binaryninja.mediumlevelil.CoreMediumLevelILInstruction

binaryninja.mediumlevelil.LLILSSAToMLILExpressionMap

binaryninja.mediumlevelil.MediumLevelILAdc

binaryninja.mediumlevelil.MediumLevelILAdd

binaryninja.mediumlevelil.MediumLevelILAddOverflow

binaryninja.mediumlevelil.MediumLevelILAddressOf

binaryninja.mediumlevelil.MediumLevelILAddressOfField

binaryninja.mediumlevelil.MediumLevelILAnd

binaryninja.mediumlevelil.MediumLevelILAsr

binaryninja.mediumlevelil.MediumLevelILAssert

binaryninja.mediumlevelil.MediumLevelILAssertSsa

binaryninja.mediumlevelil.MediumLevelILBasicBlock

TheMediumLevelILBasicBlock object is returned during analysis and should not be directly…

binaryninja.mediumlevelil.MediumLevelILBinaryBase

binaryninja.mediumlevelil.MediumLevelILBoolToInt

binaryninja.mediumlevelil.MediumLevelILBp

binaryninja.mediumlevelil.MediumLevelILCall

binaryninja.mediumlevelil.MediumLevelILCallBase

binaryninja.mediumlevelil.MediumLevelILCallOutput

binaryninja.mediumlevelil.MediumLevelILCallOutputSsa

binaryninja.mediumlevelil.MediumLevelILCallParam

binaryninja.mediumlevelil.MediumLevelILCallParamSsa

binaryninja.mediumlevelil.MediumLevelILCallSsa

binaryninja.mediumlevelil.MediumLevelILCallUntyped

binaryninja.mediumlevelil.MediumLevelILCallUntypedSsa

binaryninja.mediumlevelil.MediumLevelILCarryBase

binaryninja.mediumlevelil.MediumLevelILCeil

binaryninja.mediumlevelil.MediumLevelILCmpE

binaryninja.mediumlevelil.MediumLevelILCmpNe

binaryninja.mediumlevelil.MediumLevelILCmpSge

binaryninja.mediumlevelil.MediumLevelILCmpSgt

binaryninja.mediumlevelil.MediumLevelILCmpSle

binaryninja.mediumlevelil.MediumLevelILCmpSlt

binaryninja.mediumlevelil.MediumLevelILCmpUge

binaryninja.mediumlevelil.MediumLevelILCmpUgt

binaryninja.mediumlevelil.MediumLevelILCmpUle

binaryninja.mediumlevelil.MediumLevelILCmpUlt

binaryninja.mediumlevelil.MediumLevelILComparisonBase

binaryninja.mediumlevelil.MediumLevelILConst

binaryninja.mediumlevelil.MediumLevelILConstBase

binaryninja.mediumlevelil.MediumLevelILConstData

binaryninja.mediumlevelil.MediumLevelILConstPtr

binaryninja.mediumlevelil.MediumLevelILDivs

binaryninja.mediumlevelil.MediumLevelILDivsDp

binaryninja.mediumlevelil.MediumLevelILDivu

binaryninja.mediumlevelil.MediumLevelILDivuDp

binaryninja.mediumlevelil.MediumLevelILExpr

classMediumLevelILExpr hold the index of IL Expressions.

binaryninja.mediumlevelil.MediumLevelILExternPtr

binaryninja.mediumlevelil.MediumLevelILFabs

binaryninja.mediumlevelil.MediumLevelILFadd

binaryninja.mediumlevelil.MediumLevelILFcmpE

binaryninja.mediumlevelil.MediumLevelILFcmpGe

binaryninja.mediumlevelil.MediumLevelILFcmpGt

binaryninja.mediumlevelil.MediumLevelILFcmpLe

binaryninja.mediumlevelil.MediumLevelILFcmpLt

binaryninja.mediumlevelil.MediumLevelILFcmpNe

binaryninja.mediumlevelil.MediumLevelILFcmpO

binaryninja.mediumlevelil.MediumLevelILFcmpUo

binaryninja.mediumlevelil.MediumLevelILFdiv

binaryninja.mediumlevelil.MediumLevelILFloatConst

binaryninja.mediumlevelil.MediumLevelILFloatConv

binaryninja.mediumlevelil.MediumLevelILFloatToInt

binaryninja.mediumlevelil.MediumLevelILFloor

binaryninja.mediumlevelil.MediumLevelILFmul

binaryninja.mediumlevelil.MediumLevelILFneg

binaryninja.mediumlevelil.MediumLevelILForceVer

binaryninja.mediumlevelil.MediumLevelILForceVerSsa

binaryninja.mediumlevelil.MediumLevelILFreeVarSlot

binaryninja.mediumlevelil.MediumLevelILFreeVarSlotSsa

binaryninja.mediumlevelil.MediumLevelILFsqrt

binaryninja.mediumlevelil.MediumLevelILFsub

binaryninja.mediumlevelil.MediumLevelILFtrunc

binaryninja.mediumlevelil.MediumLevelILFunction

classMediumLevelILFunction contains the list of ExpressionIndex objects that make up a…

binaryninja.mediumlevelil.MediumLevelILGoto

binaryninja.mediumlevelil.MediumLevelILIf

binaryninja.mediumlevelil.MediumLevelILImport

binaryninja.mediumlevelil.MediumLevelILInstruction

classMediumLevelILInstruction Medium Level Intermediate Language Instructions are infinite…

binaryninja.mediumlevelil.MediumLevelILIntToFloat

binaryninja.mediumlevelil.MediumLevelILIntrinsic

binaryninja.mediumlevelil.MediumLevelILIntrinsicSsa

binaryninja.mediumlevelil.MediumLevelILJump

binaryninja.mediumlevelil.MediumLevelILJumpTo

binaryninja.mediumlevelil.MediumLevelILLabel

binaryninja.mediumlevelil.MediumLevelILLoad

binaryninja.mediumlevelil.MediumLevelILLoadSsa

binaryninja.mediumlevelil.MediumLevelILLoadStruct

binaryninja.mediumlevelil.MediumLevelILLoadStructSsa

binaryninja.mediumlevelil.MediumLevelILLowPart

binaryninja.mediumlevelil.MediumLevelILLsl

binaryninja.mediumlevelil.MediumLevelILLsr

binaryninja.mediumlevelil.MediumLevelILMemPhi

binaryninja.mediumlevelil.MediumLevelILMemoryIntrinsicOutputSsa

binaryninja.mediumlevelil.MediumLevelILMemoryIntrinsicSsa

binaryninja.mediumlevelil.MediumLevelILMods

binaryninja.mediumlevelil.MediumLevelILModsDp

binaryninja.mediumlevelil.MediumLevelILModu

binaryninja.mediumlevelil.MediumLevelILModuDp

binaryninja.mediumlevelil.MediumLevelILMul

binaryninja.mediumlevelil.MediumLevelILMulsDp

binaryninja.mediumlevelil.MediumLevelILMuluDp

binaryninja.mediumlevelil.MediumLevelILNeg

binaryninja.mediumlevelil.MediumLevelILNop

binaryninja.mediumlevelil.MediumLevelILNoret

binaryninja.mediumlevelil.MediumLevelILNot

binaryninja.mediumlevelil.MediumLevelILOperationAndSize

binaryninja.mediumlevelil.MediumLevelILOr

binaryninja.mediumlevelil.MediumLevelILRet

binaryninja.mediumlevelil.MediumLevelILRetHint

binaryninja.mediumlevelil.MediumLevelILRlc

binaryninja.mediumlevelil.MediumLevelILRol

binaryninja.mediumlevelil.MediumLevelILRor

binaryninja.mediumlevelil.MediumLevelILRoundToInt

binaryninja.mediumlevelil.MediumLevelILRrc

binaryninja.mediumlevelil.MediumLevelILSbb

binaryninja.mediumlevelil.MediumLevelILSeparateParamList

binaryninja.mediumlevelil.MediumLevelILSetVar

binaryninja.mediumlevelil.MediumLevelILSetVarAliased

binaryninja.mediumlevelil.MediumLevelILSetVarAliasedField

binaryninja.mediumlevelil.MediumLevelILSetVarField

binaryninja.mediumlevelil.MediumLevelILSetVarSplit

binaryninja.mediumlevelil.MediumLevelILSetVarSplitSsa

binaryninja.mediumlevelil.MediumLevelILSetVarSsa

binaryninja.mediumlevelil.MediumLevelILSetVarSsaField

binaryninja.mediumlevelil.MediumLevelILSharedParamSlot

binaryninja.mediumlevelil.MediumLevelILStore

binaryninja.mediumlevelil.MediumLevelILStoreSsa

binaryninja.mediumlevelil.MediumLevelILStoreStruct

binaryninja.mediumlevelil.MediumLevelILStoreStructSsa

binaryninja.mediumlevelil.MediumLevelILSub

binaryninja.mediumlevelil.MediumLevelILSx

binaryninja.mediumlevelil.MediumLevelILSyscall

binaryninja.mediumlevelil.MediumLevelILSyscallSsa

binaryninja.mediumlevelil.MediumLevelILSyscallUntyped

binaryninja.mediumlevelil.MediumLevelILSyscallUntypedSsa

binaryninja.mediumlevelil.MediumLevelILTailcall

binaryninja.mediumlevelil.MediumLevelILTailcallSsa

binaryninja.mediumlevelil.MediumLevelILTailcallUntyped

binaryninja.mediumlevelil.MediumLevelILTailcallUntypedSsa

binaryninja.mediumlevelil.MediumLevelILTestBit

binaryninja.mediumlevelil.MediumLevelILTrap

binaryninja.mediumlevelil.MediumLevelILUnaryBase

binaryninja.mediumlevelil.MediumLevelILUndef

binaryninja.mediumlevelil.MediumLevelILUnimpl

binaryninja.mediumlevelil.MediumLevelILUnimplMem

binaryninja.mediumlevelil.MediumLevelILVar

binaryninja.mediumlevelil.MediumLevelILVarAliased

binaryninja.mediumlevelil.MediumLevelILVarAliasedField

binaryninja.mediumlevelil.MediumLevelILVarField

binaryninja.mediumlevelil.MediumLevelILVarPhi

binaryninja.mediumlevelil.MediumLevelILVarSplit

binaryninja.mediumlevelil.MediumLevelILVarSplitSsa

binaryninja.mediumlevelil.MediumLevelILVarSsa

binaryninja.mediumlevelil.MediumLevelILVarSsaField

binaryninja.mediumlevelil.MediumLevelILXor

binaryninja.mediumlevelil.MediumLevelILZx

binaryninja.mediumlevelil.SSAVariable

CoreMediumLevelILInstruction

classCoreMediumLevelILInstruction[source]

Bases:object

CoreMediumLevelILInstruction(operation: binaryninja.enums.MediumLevelILOperation, attributes: int, source_operand: int, size: int, operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex], address: int)

__init__(operation:MediumLevelILOperation,attributes:int,source_operand:int,size:int,operands:Tuple[ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex],address:int)None
Parameters:
  • operation (MediumLevelILOperation) –

  • attributes (int) –

  • source_operand (int) –

  • size (int) –

  • operands (Tuple[ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex]) –

  • address (int) –

Return type:

None

classmethodfrom_BNMediumLevelILInstruction(instr:BNMediumLevelILInstruction)CoreMediumLevelILInstruction[source]
Parameters:

instr (BNMediumLevelILInstruction) –

Return type:

CoreMediumLevelILInstruction

address:int
attributes:int
operands:Tuple[ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex]
operation:MediumLevelILOperation
size:int
source_operand:int

LLILSSAToMLILExpressionMap

classLLILSSAToMLILExpressionMap[source]

Bases:object

LLILSSAToMLILExpressionMap(lower_index: ‘lowlevelil.ExpressionIndex’, higher_index: <function NewType.<locals>.new_type at 0x11204b160>, map_lower_to_higher: bool, map_higher_to_lower: bool, lower_to_higher_direct: bool, higher_to_lower_direct: bool)

__init__(lower_index:ExpressionIndex,higher_index:ExpressionIndex,map_lower_to_higher:bool,map_higher_to_lower:bool,lower_to_higher_direct:bool,higher_to_lower_direct:bool)None
Parameters:
  • lower_index (ExpressionIndex) –

  • higher_index (ExpressionIndex) –

  • map_lower_to_higher (bool) –

  • map_higher_to_lower (bool) –

  • lower_to_higher_direct (bool) –

  • higher_to_lower_direct (bool) –

Return type:

None

higher_index:ExpressionIndex
higher_to_lower_direct:bool
lower_index:ExpressionIndex
lower_to_higher_direct:bool
map_higher_to_lower:bool
map_lower_to_higher:bool

MediumLevelILAdc

classMediumLevelILAdc[source]

Bases:MediumLevelILCarryBase

MediumLevelILAdc(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILAdd

classMediumLevelILAdd[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILAdd(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILAddOverflow

classMediumLevelILAddOverflow[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILAddOverflow(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILAddressOf

classMediumLevelILAddressOf[source]

Bases:MediumLevelILInstruction

MediumLevelILAddressOf(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:Variable
propertyvars_address_taken:List[Variable]

Non-unique list of variables whose address is taken by instruction

MediumLevelILAddressOfField

classMediumLevelILAddressOfField[source]

Bases:MediumLevelILInstruction

MediumLevelILAddressOfField(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:Variable

MediumLevelILAnd

classMediumLevelILAnd[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILAnd(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILAsr

classMediumLevelILAsr[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILAsr(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILAssert

classMediumLevelILAssert[source]

Bases:MediumLevelILInstruction

MediumLevelILAssert(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstraint:PossibleValueSet
expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:Variable

MediumLevelILAssertSsa

classMediumLevelILAssertSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILAssertSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstraint:PossibleValueSet
expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:SSAVariable

MediumLevelILBasicBlock

classMediumLevelILBasicBlock[source]

Bases:BasicBlock

TheMediumLevelILBasicBlock object is returned during analysis and should not be directly instantiated.

__init__(handle:LP_BNBasicBlock,owner:MediumLevelILFunction,view:BinaryView|None=None)[source]
Parameters:
propertyil_function:MediumLevelILFunction

IL Function of which this block is a part, if the block is part of an IL Function.

propertyinstruction_count:int

MediumLevelILBinaryBase

classMediumLevelILBinaryBase[source]

Bases:MediumLevelILInstruction,BinaryOperation

MediumLevelILBinaryBase(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyleft:MediumLevelILInstruction
propertyright:MediumLevelILInstruction

MediumLevelILBoolToInt

classMediumLevelILBoolToInt[source]

Bases:MediumLevelILInstruction

MediumLevelILBoolToInt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction

MediumLevelILBp

classMediumLevelILBp[source]

Bases:MediumLevelILInstruction,Terminal

MediumLevelILBp(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCall

classMediumLevelILCall[source]

Bases:MediumLevelILCallBase,Localcall

MediumLevelILCall(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[Variable]
propertyparams:List[MediumLevelILInstruction]

MediumLevelILCallBase

classMediumLevelILCallBase[source]

Bases:MediumLevelILInstruction,Call

MediumLevelILCallBase(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[Variable|SSAVariable]
propertyparams:List[SSAVariable|Variable|MediumLevelILInstruction]
propertyvars_read:List[Variable|SSAVariable]

List of variables read by instruction

propertyvars_written:List[Variable|SSAVariable]

List of variables written by instruction

MediumLevelILCallOutput

classMediumLevelILCallOutput[source]

Bases:MediumLevelILInstruction

MediumLevelILCallOutput(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:List[Variable]
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyvars_written:List[Variable]

List of variables written by instruction

MediumLevelILCallOutputSsa

classMediumLevelILCallOutputSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILCallOutputSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:List[SSAVariable]
propertydest_memory:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyvars_written:List[SSAVariable]

List of variables written by instruction

MediumLevelILCallParam

classMediumLevelILCallParam[source]

Bases:MediumLevelILInstruction

MediumLevelILCallParam(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:List[MediumLevelILInstruction]

MediumLevelILCallParamSsa

classMediumLevelILCallParamSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILCallParamSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:List[MediumLevelILInstruction]
propertysrc_memory:int

MediumLevelILCallSsa

classMediumLevelILCallSsa[source]

Bases:MediumLevelILCallBase,Localcall,SSA

MediumLevelILCallSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[SSAVariable]
propertyoutput_dest_memory:int
propertyparams:List[MediumLevelILInstruction]
propertysrc_memory:int

MediumLevelILCallUntyped

classMediumLevelILCallUntyped[source]

Bases:MediumLevelILCallBase,Localcall

MediumLevelILCallUntyped(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[Variable]
propertyparams:List[MediumLevelILInstruction]
propertystack:MediumLevelILInstruction

MediumLevelILCallUntypedSsa

classMediumLevelILCallUntypedSsa[source]

Bases:MediumLevelILCallBase,Localcall,SSA

MediumLevelILCallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[SSAVariable]
propertyoutput_dest_memory:int
propertyparams:List[MediumLevelILInstruction]
propertyparams_src_memory
propertystack:MediumLevelILInstruction

MediumLevelILCarryBase

classMediumLevelILCarryBase[source]

Bases:MediumLevelILInstruction,Carry

MediumLevelILCarryBase(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertycarry:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyleft:MediumLevelILInstruction
propertyright:MediumLevelILInstruction

MediumLevelILCeil

classMediumLevelILCeil[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILCeil(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpE

classMediumLevelILCmpE[source]

Bases:MediumLevelILComparisonBase

MediumLevelILCmpE(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpNe

classMediumLevelILCmpNe[source]

Bases:MediumLevelILComparisonBase

MediumLevelILCmpNe(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpSge

classMediumLevelILCmpSge[source]

Bases:MediumLevelILComparisonBase,Signed

MediumLevelILCmpSge(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpSgt

classMediumLevelILCmpSgt[source]

Bases:MediumLevelILComparisonBase,Signed

MediumLevelILCmpSgt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpSle

classMediumLevelILCmpSle[source]

Bases:MediumLevelILComparisonBase,Signed

MediumLevelILCmpSle(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpSlt

classMediumLevelILCmpSlt[source]

Bases:MediumLevelILComparisonBase,Signed

MediumLevelILCmpSlt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpUge

classMediumLevelILCmpUge[source]

Bases:MediumLevelILComparisonBase

MediumLevelILCmpUge(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpUgt

classMediumLevelILCmpUgt[source]

Bases:MediumLevelILComparisonBase

MediumLevelILCmpUgt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpUle

classMediumLevelILCmpUle[source]

Bases:MediumLevelILComparisonBase

MediumLevelILCmpUle(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILCmpUlt

classMediumLevelILCmpUlt[source]

Bases:MediumLevelILComparisonBase

MediumLevelILCmpUlt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILComparisonBase

classMediumLevelILComparisonBase[source]

Bases:MediumLevelILBinaryBase,Comparison

MediumLevelILComparisonBase(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILConst

classMediumLevelILConst[source]

Bases:MediumLevelILConstBase

MediumLevelILConst(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstant:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILConstBase

classMediumLevelILConstBase[source]

Bases:MediumLevelILInstruction,Constant

MediumLevelILConstBase(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILConstData

classMediumLevelILConstData[source]

Bases:MediumLevelILConstBase

MediumLevelILConstData(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstant:ConstantData
propertyconstant_data:ConstantData
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILConstPtr

classMediumLevelILConstPtr[source]

Bases:MediumLevelILConstBase

MediumLevelILConstPtr(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstant:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertystring:Tuple[str,StringType]|None

MediumLevelILDivs

classMediumLevelILDivs[source]

Bases:MediumLevelILBinaryBase,Arithmetic,Signed

MediumLevelILDivs(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILDivsDp

classMediumLevelILDivsDp[source]

Bases:MediumLevelILBinaryBase,DoublePrecision,Signed

MediumLevelILDivsDp(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILDivu

classMediumLevelILDivu[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILDivu(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILDivuDp

classMediumLevelILDivuDp[source]

Bases:MediumLevelILBinaryBase,DoublePrecision

MediumLevelILDivuDp(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILExpr

classMediumLevelILExpr[source]

Bases:object

classMediumLevelILExpr hold the index of IL Expressions.

Note

Deprecated. Use ExpressionIndex instead

__init__(index)[source]
propertyindex

MediumLevelILExternPtr

classMediumLevelILExternPtr[source]

Bases:MediumLevelILConstBase

MediumLevelILExternPtr(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstant:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int

MediumLevelILFabs

classMediumLevelILFabs[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILFabs(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFadd

classMediumLevelILFadd[source]

Bases:MediumLevelILBinaryBase,Arithmetic,FloatingPoint

MediumLevelILFadd(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpE

classMediumLevelILFcmpE[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpE(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpGe

classMediumLevelILFcmpGe[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpGe(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpGt

classMediumLevelILFcmpGt[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpGt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpLe

classMediumLevelILFcmpLe[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpLe(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpLt

classMediumLevelILFcmpLt[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpLt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpNe

classMediumLevelILFcmpNe[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpNe(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpO

classMediumLevelILFcmpO[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpO(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFcmpUo

classMediumLevelILFcmpUo[source]

Bases:MediumLevelILComparisonBase,FloatingPoint

MediumLevelILFcmpUo(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFdiv

classMediumLevelILFdiv[source]

Bases:MediumLevelILBinaryBase,Arithmetic,FloatingPoint

MediumLevelILFdiv(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFloatConst

classMediumLevelILFloatConst[source]

Bases:MediumLevelILConstBase,FloatingPoint

MediumLevelILFloatConst(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstant:float
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFloatConv

classMediumLevelILFloatConv[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILFloatConv(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFloatToInt

classMediumLevelILFloatToInt[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILFloatToInt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFloor

classMediumLevelILFloor[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILFloor(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFmul

classMediumLevelILFmul[source]

Bases:MediumLevelILBinaryBase,Arithmetic,FloatingPoint

MediumLevelILFmul(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFneg

classMediumLevelILFneg[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILFneg(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILForceVer

classMediumLevelILForceVer[source]

Bases:MediumLevelILInstruction

MediumLevelILForceVer(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:Variable
expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:Variable

MediumLevelILForceVerSsa

classMediumLevelILForceVerSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILForceVerSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:SSAVariable
expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:SSAVariable

MediumLevelILFreeVarSlot

classMediumLevelILFreeVarSlot[source]

Bases:MediumLevelILInstruction,RegisterStack

MediumLevelILFreeVarSlot(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:Variable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFreeVarSlotSsa

classMediumLevelILFreeVarSlotSsa[source]

Bases:MediumLevelILInstruction,SSA,RegisterStack

MediumLevelILFreeVarSlotSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:SSAVariable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyprev:SSAVariable

MediumLevelILFsqrt

classMediumLevelILFsqrt[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILFsqrt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFsub

classMediumLevelILFsub[source]

Bases:MediumLevelILBinaryBase,Arithmetic,FloatingPoint

MediumLevelILFsub(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFtrunc

classMediumLevelILFtrunc[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILFtrunc(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILFunction

classMediumLevelILFunction[source]

Bases:object

classMediumLevelILFunction contains the list of ExpressionIndex objects that make up a function. ExpressionIndexobjects can be added to the MediumLevelILFunction by callingappend and passing the result of the various classmethods which return ExpressionIndex objects.

__init__(arch:Architecture|None=None,handle:BNMediumLevelILFunction|None=None,source_func:Function|None=None,low_level_il:LowLevelILFunction|None=None)[source]
Parameters:
add(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

add adds expressiona to expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionadd.<size>(a,b)

Return type:

ExpressionIndex

add_carry(size:int,a:ExpressionIndex,b:ExpressionIndex,carry:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

add_carry adds expressiona to expressionb with carry fromcarry returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • carry (ExpressionIndex) – Carried value expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionadc.<size>(a,b,carry)

Return type:

ExpressionIndex

add_label_map(labels:Mapping[int,MediumLevelILLabel])ExpressionIndex[source]

add_label_map returns a label list expression for the given list of MediumLevelILLabel objects.

Parameters:

labels (dict(int,MediumLevelILLabel)) – the list of MediumLevelILLabel to get a label list expression from

Returns:

the label list expression

Return type:

ExpressionIndex

add_operand_list(operands:List[ExpressionIndex])ExpressionIndex[source]

add_operand_list returns 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:

ExpressionIndex

add_variable_list(vars:List[Variable])ExpressionIndex[source]

add_variable_list returns a variable list expression for the given list of variables.

Parameters:

vars (list(Variable)) – list of variables

Returns:

a variable list expression

Return type:

ExpressionIndex

address_of(var:Variable,loc:ILSourceLocation|None=None)ExpressionIndex[source]

address_of takes the address ofvar

Parameters:
Returns:

The expression&var

Return type:

ExpressionIndex

address_of_field(var:Variable,offset:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

address_of_field takes the address ofvar at the offsetoffset

Parameters:
  • var (Variable) – the variable having its address taken

  • offset (int) – the offset of the taken address

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression&var:offset

Return type:

ExpressionIndex

and_expr(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

and_expr bitwise and’s expressiona and expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionand.<size>(a,b)

Return type:

ExpressionIndex

append(expr:ExpressionIndex,source_location:ILSourceLocation|None=None)InstructionIndex[source]

append adds the ExpressionIndexexpr to the current MediumLevelILFunction.

Parameters:
  • expr (ExpressionIndex) – the ExpressionIndex to add to the current MediumLevelILFunction

  • source_location (ILSourceLocation) – Optional source location for the instruction

Returns:

Index of added instruction in the current function

Return type:

int

arith_shift_right(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

arith_shift_right arithmetically right shifts expressiona by expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionasr.<size>(a,b)

Return type:

ExpressionIndex

assert_expr(size:int,src:Variable,constraint:PossibleValueSet,loc:ILSourceLocation|None=None)ExpressionIndex[source]

assert_expr assertconstraint is the value of the given variablesrc.Used when setting user variable values.

Parameters:
Returns:

The expressionASSERT(src,constraint)

Return type:

ExpressionIndex

bool_to_int(size:int,a:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

bool_to_int returns an expression of sizesize converting the boolean expressiona to an integer

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – boolean expression to be converted

  • loc (ILSourceLocation) – location of returned expression

Returns:

the converted integer expression.

Return type:

ExpressionIndex

breakpoint(loc:ILSourceLocation|None=None)ExpressionIndex[source]

breakpoint returns a processor breakpoint expression.

Parameters:

loc (ILSourceLocation) – location of returned expression

Returns:

a breakpoint expression.

Return type:

ExpressionIndex

cache_possible_value_set(pvs:PossibleValueSet)int[source]

Cache a PossibleValueSet in the IL function, returning its index for use in an expression operand:param pvs: PossibleValueSet to cache:return: Index of the PossibleValueSet in the cache

Parameters:

pvs (PossibleValueSet) –

Return type:

int

call(output:List[Variable],dest:ExpressionIndex,params:List[ExpressionIndex],loc:ILSourceLocation|None=None)ExpressionIndex[source]

call returns an expression which calls the function in the expressiondestwith the parameters defined inparams returning values in the variables inoutput.

Parameters:
  • output (List['variable.Variable']) – output variables

  • dest (ExpressionIndex) – the expression to call

  • params (List[ExpressionIndex]) – parameter variables

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionoutput=call(dest,params...)

Return type:

ExpressionIndex

call_untyped(output:List[Variable],dest:ExpressionIndex,params:List[ExpressionIndex],stack:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

call_untyped returns an expression which calls the function in the expressiondestwith the parameters defined inparams returning values in the variables inoutputwhere stack resolution could not be determined and the top of the stack has to be specified instack

Parameters:
  • output (List['variable.Variable']) – output variables

  • dest (ExpressionIndex) – the expression to call

  • params (List[ExpressionIndex]) – parameter variables

  • stack (ExpressionIndex) – expression of top of stack

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionoutput=call(dest,params...,stack=stack)

Return type:

ExpressionIndex

ceil(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

ceil rounds a floating point value to an integer towards positive infinity

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to round up

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionroundint.<size>(value)

Return type:

ExpressionIndex

compare_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_equal returns comparison expression of sizesize checking if expressiona is equal toexpressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_not_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_not_equal returns comparison expression of sizesize checking if expressiona is not equal toexpressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_signed_greater_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_signed_greater_equal returns comparison expression of sizesize checking if expressiona issigned greater than or equal to expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_signed_greater_than(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_signed_greater_than returns comparison expression of sizesize checking if expressiona issigned greater than or equal to expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_signed_less_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_signed_less_equal returns comparison expression of sizesize checking if expressiona issigned less than or equal to expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_signed_less_than(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_signed_less_than returns comparison expression of sizesize checking if expressiona issigned less than expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_unsigned_greater_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_unsigned_greater_equal returns comparison expression of sizesize checking if expressionais unsigned greater than or equal to expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_unsigned_greater_than(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_unsigned_greater_than returns comparison expression of sizesize checking if expressiona isunsigned greater than or equal to expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_unsigned_less_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_unsigned_less_equal returns comparison expression of sizesize checking if expressiona isunsigned less than or equal to expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

compare_unsigned_less_than(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

compare_unsigned_less_than returns comparison expression of sizesize checking if expressiona isunsigned less than expressionb

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – LHS of comparison

  • b (ExpressionIndex) – RHS of comparison

  • loc (ILSourceLocation) – location of returned expression

Returns:

a comparison expression.

Return type:

ExpressionIndex

const(size:int,value:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

const returns an expression for the constant integervalue of sizesize

Parameters:
  • size (int) – the size of the constant in bytes

  • value (int) – integer value of the constant

  • loc (ILSourceLocation) – location of returned expression

Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

const_data(size:int,data:ConstantData,loc:ILSourceLocation|None=None)ExpressionIndex[source]

const_data returns an expression for the constant datadata

Parameters:
Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

const_pointer(size:int,value:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

const_pointer returns an expression for the constant pointervalue of sizesize

Parameters:
  • size (int) – the size of the pointer in bytes

  • value (int) – address referenced by the pointer

  • loc (ILSourceLocation) – location of returned expression

Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

copy_expr(original:MediumLevelILInstruction)ExpressionIndex[source]

copy_expr makes a shallow copy of the given IL expression, adding a new expression to the IL function.

Warning

The copy will not copy any child expressions, but will instead reference them as well (by expression index).This means that you cannot use this function to copy an expression tree to another function.If you want to copy an expression tree, you should useMediumLevelILFunction.copy_expr_to.Metadata such as expression type and attributes are also not copied.

Parameters:

original (MediumLevelILInstruction) – the original IL Instruction you want to copy

Returns:

The index of the newly copied expression

Return type:

ExpressionIndex

copy_expr_to(expr:MediumLevelILInstruction,dest:MediumLevelILFunction,sub_expr_handler:Callable[[MediumLevelILInstruction],ExpressionIndex]|None=None)ExpressionIndex[source]

copy_expr_to deep copies an expression from this function into a target functionIf provided, the functionsub_expr_handler will be called on every copied sub-expression

Warning

This function should ONLY be called as a part of a lifter or workflow. It will otherwise not do anything useful as analysis will not be running.

Parameters:
Returns:

Index of the copied expression in the target function

Return type:

ExpressionIndex

create_graph(settings:DisassemblySettings|None=None)CoreFlowGraph[source]
Parameters:

settings (DisassemblySettings |None) –

Return type:

CoreFlowGraph

create_graph_immediate(settings:DisassemblySettings|None=None)CoreFlowGraph[source]
Parameters:

settings (DisassemblySettings |None) –

Return type:

CoreFlowGraph

div_double_prec_signed(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

div_double_prec_signed signed divides double precision expressiona by expressionb and returns an expression.The first operand is of size2*size bytes and the other operand and return value are of sizesize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressiondivs.dp.<size>(a,b)

Return type:

ExpressionIndex

div_double_prec_unsigned(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

div_double_prec_unsigned unsigned divides double precision expressiona by expressionb and returns an expression.The first operand is of size2*size bytes and the other operand and return value are of sizesize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressiondivu.dp.<size>(a,b)

Return type:

ExpressionIndex

div_signed(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

div_signed signed divides expressiona by expressionb and returns an expression.Both the operands and return value aresize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressiondivs.<size>(a,b)

Return type:

ExpressionIndex

div_unsigned(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

div_unsigned unsigned divides expressiona by expressionb and returns an expression.Both the operands and return value aresize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressiondivu.<size>(a,b)

Return type:

ExpressionIndex

expr(operation:MediumLevelILOperation,a:int=0,b:int=0,c:int=0,d:int=0,e:int=0,size:int=0,source_location:ILSourceLocation|None=None)ExpressionIndex[source]
Parameters:
Return type:

ExpressionIndex

extern_pointer(size:int,value:int,offset:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

extern_pointer returns an expression for the external pointervalue at offsetoffset of sizesize

Parameters:
  • size (int) – the size of the pointer in bytes

  • value (int) – address referenced by the pointer

  • offset (int) – offset applied to the address

  • loc (ILSourceLocation |None) – location of returned expression

Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

finalize()None[source]

finalize ends the function and computes the list of basic blocks.

Return type:

None

float_abs(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_abs returns absolute value of floating point expressionvalue of sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to get the absolute value of

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfabs.<size>(value)

Return type:

ExpressionIndex

float_add(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_add adds floating point expressiona to expressionband returning an expression ofsize bytes.

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfadd.<size>(a,b)

Return type:

ExpressionIndex

float_compare_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_equal returns floating point comparison expression of sizesize checking ifexpressiona is equal to expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionaf==b

Return type:

ExpressionIndex

float_compare_greater_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_greater_equal returns floating point comparison expression of sizesize checking ifexpressiona is greater than or equal to expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionaf>=b

Return type:

ExpressionIndex

float_compare_greater_than(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_greater_than returns floating point comparison expression of sizesize checking ifexpressiona is greater than expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionaf>b

Return type:

ExpressionIndex

float_compare_less_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_less_equal returns floating point comparison expression of sizesize checking ifexpressiona is less than or equal to expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionaf<=b

Return type:

ExpressionIndex

float_compare_less_than(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_less_than returns floating point comparison expression of sizesize checking ifexpressiona is less than expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionaf<b

Return type:

ExpressionIndex

float_compare_not_equal(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_not_equal returns floating point comparison expression of sizesize checking ifexpressiona is not equal to expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionaf!=b

Return type:

ExpressionIndex

float_compare_ordered(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_ordered returns floating point comparison expression of sizesize checking ifexpressiona is ordered relative to expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionis_ordered(a,b)

Return type:

ExpressionIndex

float_compare_unordered(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_compare_unordered returns floating point comparison expression of sizesize checking ifexpressiona is unordered relative to expressionb

Parameters:
  • size (int) – the size of the operands in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionis_unordered(a,b)

Return type:

ExpressionIndex

float_const_double(value:float,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_const_double returns an expression for the double precision floating point valuevalue

Parameters:
Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

float_const_raw(size:int,value:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_const_raw returns an expression for the constant raw binary floating pointvaluevalue with sizesize

Parameters:
  • size (int) – the size of the constant in bytes

  • value (int) – integer value for the raw binary representation of the constant

  • loc (ILSourceLocation) – location of returned expression

Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

float_const_single(value:float,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_const_single returns an expression for the single precision floating point valuevalue

Parameters:
Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

float_convert(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

int_to_float converts floating point value of expressionvalue to sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfconvert.<size>(value)

Return type:

ExpressionIndex

float_div(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_div divides floating point expressiona by expressionband returning an expression ofsize bytes.

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfdiv.<size>(a,b)

Return type:

ExpressionIndex

float_mult(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_mult multiplies floating point expressiona by expressionband returning an expression ofsize bytes.

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfmul.<size>(a,b)

Return type:

ExpressionIndex

float_neg(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_neg returns sign negation of floating point expressionvalue of sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfneg.<size>(value)

Return type:

ExpressionIndex

float_sqrt(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_sqrt returns square root of floating point expressionvalue of sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to calculate the square root of

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionsqrt.<size>(value)

Return type:

ExpressionIndex

float_sub(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_sub subtracts floating point expressionb from expressionaand returning an expression ofsize bytes.

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfsub.<size>(a,b)

Return type:

ExpressionIndex

float_to_int(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_to_int returns integer value of floating point expressionvalue of sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to convert to an int

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionint.<size>(value)

Return type:

ExpressionIndex

float_trunc(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

float_trunc rounds a floating point value to an integer towards zero

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to truncate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionroundint.<size>(value)

Return type:

ExpressionIndex

floor(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

floor rounds a floating point value to an integer towards negative infinity

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to round down

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionroundint.<size>(value)

Return type:

ExpressionIndex

force_ver(size:int,dest:Variable,src:Variable,loc:ILSourceLocation|None=None)ExpressionIndex[source]

force_ver creates a new version of the variabledest insrcEffectively, this is like saying src = dest, which analysis can then use as a newvariable definition site.

Parameters:
  • size (int) – size of the variable

  • dest (Variable) – the variable to force a new version of

  • src (Variable) – the variable created with the new version

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionFORCE_VER(reg)

Return type:

ExpressionIndex

free_var_slot(var:Variable,loc:ILSourceLocation|None=None)ExpressionIndex[source]

free_var_slot return an expression that clears the slot of the variablevar which is in a register stack

Parameters:
Returns:

the expressionfree_var_slot(var)

Return type:

ExpressionIndex

generate_ssa_form(analyze_conditionals:bool=True,handle_aliases:bool=True,known_not_aliases:List[Variable]|None=None,known_aliases:List[Variable]|None=None)None[source]

generate_ssa_form generate SSA form given the current MLIL

Parameters:
  • analyze_conditionals (bool) – whether or not to analyze conditionals, defaults toTrue

  • handle_aliases (bool) – whether or not to handle aliases, defaults toTrue

  • known_not_aliases (list(Variable)) – optional list of variables known to be not aliased

  • known_aliases (list(Variable)) – optional list of variables known to be aliased

Return type:

None

get_basic_block_at(index:int)MediumLevelILBasicBlock|None[source]

get_basic_block_at returns the BasicBlock at the given MLIL instructionindex.

Parameters:

index (int) – Index of the MLIL instruction of the BasicBlock to retrieve.

Example:
>>>current_il_function.get_basic_block_at(current_il_index)<mlil block: x86@40-60>
Return type:

MediumLevelILBasicBlock |None

get_expr(index:ExpressionIndex)MediumLevelILInstruction|None[source]

get_expr retrieves the IL expression at a given expression index in the function.

Warning

Not all IL expressions are valid, even if their index is within the bounds of the function,they might not be used by the function and might not contain properly structured data.

Parameters:

index (ExpressionIndex) – Index of desired expression in function

Returns:

A MediumLevelILInstruction object for the expression, if it exists. Otherwise, None

Return type:

MediumLevelILInstruction |None

get_expr_count()int[source]

get_expr_count gives a the total number of expressions in this IL function

You can use this to enumerate all expressions in conjunction withget_expr

Warning

Not all IL expressions are valid, even if their index is within the bounds of the function,they might not be used by the function and might not contain properly structured data.

Returns:

The number of expressions in the function

Return type:

int

get_expr_index_for_instruction(instr:InstructionIndex)ExpressionIndex[source]
Parameters:

instr (InstructionIndex) –

Return type:

ExpressionIndex

get_expr_type(expr_index:int)Type|None[source]

Get type of expression

Parameters:

expr_index (int) – index of the expression to retrieve

Return type:

Optional[’types.Type’]

get_high_level_il_expr_index(expr:ExpressionIndex)ExpressionIndex|None[source]
Parameters:

expr (ExpressionIndex) –

Return type:

ExpressionIndex |None

get_high_level_il_expr_indexes(expr:ExpressionIndex)List[ExpressionIndex][source]
Parameters:

expr (ExpressionIndex) –

Return type:

List[ExpressionIndex]

get_high_level_il_instruction_index(instr:InstructionIndex)InstructionIndex|None[source]
Parameters:

instr (InstructionIndex) –

Return type:

InstructionIndex |None

get_instruction_index_for_expr(expr:ExpressionIndex)InstructionIndex|None[source]
Parameters:

expr (ExpressionIndex) –

Return type:

InstructionIndex |None

get_instruction_start(addr:int,arch:Architecture|None=None)InstructionIndex|None[source]
Parameters:
Return type:

InstructionIndex |None

get_label_for_source_instruction(i:InstructionIndex)MediumLevelILLabel|None[source]

Get the MediumLevelILLabel for a given source instruction. The source instruction must beat the start of a basic block in the source function passed toprepare_to_copy_function.The label will be marked resolved when its source block is passed toprepare_to_copy_block.

Warning

The instruction index parameter for this pertains to thesource functionpassed toprepare_to_copy_function, not the current function.

Note

The returned label is to an internal object with the same lifetime as the containing MediumLevelILFunction.

Parameters:

i (InstructionIndex) – The source instruction index

Returns:

The MediumLevelILLabel for the source instruction

Return type:

MediumLevelILLabel |None

get_live_instructions_for_var(var:Variable,include_last_use:bool=True)List[MediumLevelILInstruction][source]

get_live_instructions_for_var computes the list of instructions for whichvar is live.Ifinclude_last_use is False, the last use of the variable will not be included in thelist (this allows for easier computation of overlaps in liveness between two variables).If the variable is never used, this function will return an empty list.

Parameters:
  • var (SSAVariable) – the variable to query

  • include_last_use (bool) – whether to include the last use of the variable in the list of instructions

Returns:

list of instructions for whichvar is live

Return type:

list(MediumLevelILInstruction)

get_low_level_il_expr_index(expr:ExpressionIndex)ExpressionIndex|None[source]
Parameters:

expr (ExpressionIndex) –

Return type:

ExpressionIndex |None

get_low_level_il_expr_indexes(expr:ExpressionIndex)List[ExpressionIndex][source]
Parameters:

expr (ExpressionIndex) –

Return type:

List[ExpressionIndex]

get_low_level_il_instruction_index(instr:InstructionIndex)InstructionIndex|None[source]
Parameters:

instr (InstructionIndex) –

Return type:

InstructionIndex |None

get_non_ssa_instruction_index(instr:InstructionIndex)InstructionIndex[source]
Parameters:

instr (InstructionIndex) –

Return type:

InstructionIndex

get_ssa_instruction_index(instr:InstructionIndex)InstructionIndex[source]
Parameters:

instr (InstructionIndex) –

Return type:

InstructionIndex

get_ssa_memory_definition(version:int)MediumLevelILInstruction|None[source]
Parameters:

version (int) –

Return type:

MediumLevelILInstruction |None

get_ssa_memory_uses(version:int)List[MediumLevelILInstruction][source]
Parameters:

version (int) –

Return type:

List[MediumLevelILInstruction]

get_ssa_var_definition(ssa_var:SSAVariable|MediumLevelILVarSsa)MediumLevelILInstruction|None[source]

Gets the instruction that contains the given SSA variable’s definition.

Since SSA variables can only be defined once, this will return the single instruction where that occurs.For SSA variable version 0s, which don’t have definitions, this will return None instead.

Parameters:

ssa_var (SSAVariable |MediumLevelILVarSsa) –

Return type:

MediumLevelILInstruction |None

get_ssa_var_uses(ssa_var:SSAVariable|MediumLevelILVarSsa)List[MediumLevelILInstruction][source]

Gets all the instructions that use the given SSA variable.

Parameters:

ssa_var (SSAVariable |MediumLevelILVarSsa) –

Return type:

List[MediumLevelILInstruction]

get_ssa_var_value(ssa_var:SSAVariable)RegisterValue[source]
Parameters:

ssa_var (SSAVariable) –

Return type:

RegisterValue

get_var_definitions(var:Variable)List[MediumLevelILInstruction][source]
Parameters:

var (Variable) –

Return type:

List[MediumLevelILInstruction]

get_var_uses(var:Variable)List[MediumLevelILInstruction][source]
Parameters:

var (Variable) –

Return type:

List[MediumLevelILInstruction]

goto(label:MediumLevelILLabel,loc:ILSourceLocation|None=None)ExpressionIndex[source]

goto returns a goto expression which jumps to the provided MediumLevelILLabel.

Parameters:
Returns:

the ExpressionIndex that jumps to the provided label

Return type:

ExpressionIndex

if_expr(operand:ExpressionIndex,t:MediumLevelILLabel,f:MediumLevelILLabel,loc:ILSourceLocation|None=None)ExpressionIndex[source]

if_expr returns theif expression which depending on conditionoperand jumps to the MediumLevelILLabelt when the condition expressionoperand is non-zero andf when it’s zero.

Parameters:
Returns:

the ExpressionIndex for the if expression

Return type:

ExpressionIndex

imported_address(size:int,value:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

imported_address returns an expression for an imported value with addressvalue and sizesize

Parameters:
  • size (int) – size of the imported value

  • value (int) – address of the imported value

  • loc (ILSourceLocation) – location of returned expression

Returns:

A constant expression of given value and size

Return type:

ExpressionIndex

int_to_float(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

int_to_float returns floating point value of integer expressionvalue of sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to convert to a float

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionfloat.<size>(value)

Return type:

ExpressionIndex

intrinsic(outputs:List[Variable],intrinsic:IntrinsicName|ILIntrinsic|IntrinsicIndex,params:List[ExpressionIndex],loc:ILSourceLocation|None=None)[source]

intrinsic return an intrinsic expression.

Parameters:
  • outputs (List[Variable]) – list of output variables

  • intrinsic (IntrinsicType) – which intrinsic to call

  • params (List[ExpressionIndex]) – parameters to intrinsic

  • loc (ILSourceLocation) – location of returned expression

Returns:

an intrinsic expression.

Return type:

ExpressionIndex

is_ssa_var_live(ssa_var:SSAVariable)bool[source]

is_ssa_var_live determines ifssa_var is live at any point in the function

Parameters:

ssa_var (SSAVariable) – the SSA variable to query

Returns:

whether the variable is live at any point in the function

Return type:

bool

is_ssa_var_live_at(ssa_var:SSAVariable,instr:InstructionIndex)bool[source]

is_ssa_var_live_at determines ifssa_var is live at a given point in the function; counts phi’s as uses

Parameters:
Return type:

bool

is_var_live_at(var:Variable,instr:InstructionIndex)bool[source]

is_var_live_at determines ifvar is live at a given point in the function

Parameters:
  • var (Variable) –

  • instr (InstructionIndex) –

Return type:

bool

jump(dest:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

jump returns an expression which jumps (branches) to the expressiondest

Parameters:
  • dest (ExpressionIndex) – the expression to jump to

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionjump(dest)

Return type:

ExpressionIndex

jump_to(dest:ExpressionIndex,targets:Mapping[int,MediumLevelILLabel],loc:ILSourceLocation|None=None)ExpressionIndex[source]

jump_to returns an expression which jumps (branches) various targets intargetschoosing the target intargets based on the value calculated bydest

Parameters:
  • dest (ExpressionIndex) – the expression choosing which jump target to use

  • targets (Mapping[int,MediumLevelILLabel]) – the list of targets for jump locations

  • loc (ILSourceLocation) – location of returned expression

  • targets

Returns:

The expressionjump(dest)

Return type:

ExpressionIndex

load(size:int,src:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

load Readssize bytes from the expressionsrc

Parameters:
  • size (int) – number of bytes to read

  • src (ExpressionIndex) – the expression to read memory from

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression[addr].size

Return type:

ExpressionIndex

load_struct(size:int,src:ExpressionIndex,offset:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

load_struct Readssize bytes at the offsetoffset from the expressionsrc

Parameters:
  • size (int) – number of bytes to read

  • src (ExpressionIndex) – the expression to read memory from

  • offset (int) – offset of field in the memory

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression[(src+offset)].size (often renderedsrc->offset.size)

Return type:

ExpressionIndex

logical_shift_right(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

logical_shift_right logically right shifts expressiona by expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionlsr.<size>(a,b)

Return type:

ExpressionIndex

low_part(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

low_part truncates the expression invalue tosize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to zero extend

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression(value).<size>

Return type:

ExpressionIndex

mark_label(label:MediumLevelILLabel)None[source]

mark_label assigns a MediumLevelILLabel to the current IL address.

Parameters:

label (MediumLevelILLabel) –

Return type:

None

mod_double_prec_signed(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

mod_double_prec_signed signed modulus double precision expressiona by expressionb and returns an expression.The first operand is of size2*size bytes and the other operand and return value are of sizesize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionmods.dp.<size>(a,b)

Return type:

ExpressionIndex

mod_double_prec_unsigned(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

mod_double_prec_unsigned unsigned modulus double precision expressiona by expressionb and returns an expression.The first operand is of size2*size bytes and the other operand and return value are of sizesize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionmodu.dp.<size>(a,b)

Return type:

ExpressionIndex

mod_signed(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

mod_signed signed modulus expressiona by expressionb and returns an expression.Both the operands and return value aresize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionmods.<size>(a,b)

Return type:

ExpressionIndex

mod_unsigned(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

mod_unsigned unsigned modulus expressiona by expressionb and returns an expression.Both the operands and return value aresize bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionmodu.<size>(a,b)

Return type:

ExpressionIndex

mult(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

mult multiplies expressiona by expressionb and returns an expression.Both the operands and return value aresize bytes as the product’s upper half is discarded.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionmult.<size>(a,b)

Return type:

ExpressionIndex

mult_double_prec_signed(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

mult_double_prec_signed signed multiplies expressiona by expressionb and returns an expression.Both the operands aresize bytes and the returned expression is of size2*size bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionmuls.dp.<2*size>(a,b)

Return type:

ExpressionIndex

mult_double_prec_unsigned(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

mult_double_prec_unsigned unsigned multiplies expressiona by expressionb and returnisan expression.Both the operands aresize bytes and the returned expression is of size2*size bytes.

Parameters:
  • size (int) – the size of the result and input operands, in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionmulu.dp.<2*size>(a,b)

Return type:

ExpressionIndex

neg_expr(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

neg_expr two’s complement sign negation of expressionvalue of sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionneg.<size>(value)

Return type:

ExpressionIndex

no_ret(loc:ILSourceLocation|None=None)ExpressionIndex[source]

no_ret returns an expression that halts execution

Parameters:

loc (ILSourceLocation) – location of returned expression

Returns:

The expressionnoreturn

Return type:

ExpressionIndex

nop(loc:ILSourceLocation|None=None)ExpressionIndex[source]

nop no operation, this instruction does nothing

Parameters:

loc (ILSourceLocation |None) – Location of expression

Returns:

The no operation expression

Return type:

ExpressionIndex

not_expr(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

not_expr bitwise inversion of expressionvalue of sizesize

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to bitwise invert

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionnot.<size>(value)

Return type:

ExpressionIndex

or_expr(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

or_expr bitwise or’s expressiona and expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionor.<size>(a,b)

Return type:

ExpressionIndex

prepare_to_copy_block(src:MediumLevelILBasicBlock)[source]

prepare_to_copy_block sets up state when copying a function in preparationof copying the instructions from the blocksrcIt enables use ofget_label_for_source_instruction during function transformation.

Parameters:

src (MediumLevelILBasicBlock) – block about to be copied from

prepare_to_copy_function(src:MediumLevelILFunction)[source]

prepare_to_copy_function sets up state in this MLIL function in preparationof copying instructions fromsrcIt enables use ofget_label_for_source_instruction during function transformation.

Parameters:

src (MediumLevelILFunction) – function about to be copied from

replace_expr(original:MediumLevelILInstruction|ExpressionIndex|InstructionIndex,new:MediumLevelILInstruction|ExpressionIndex|InstructionIndex)None[source]

replace_expr replace an existing IL instruction in-place with another one

Both expressions must have been created on the same function. The original expressionwill be replaced completely and the new expression will not be modified.

Parameters:
  • original (ExpressionIndex) – the ExpressionIndex to replace (may also be an expression index)

  • new (ExpressionIndex) – the ExpressionIndex to add to the current LowLevelILFunction (may also be an expression index)

Return type:

None

ret(sources:List[ExpressionIndex],loc:ILSourceLocation|None=None)ExpressionIndex[source]

ret returns an expression which jumps (branches) to the calling function,returning a result specified by the expressions insources.

Parameters:
  • sources (List[ExpressionIndex]) – list of returned expressions

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionreturnsources...

Return type:

ExpressionIndex

rotate_left(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

rotate_left bitwise rotates left expressiona by expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionrol.<size>(a,b)

Return type:

ExpressionIndex

rotate_left_carry(size:int,a:ExpressionIndex,b:ExpressionIndex,carry:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

rotate_left_carry bitwise rotates left expressiona by expressionb with carry fromcarry returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • carry (ExpressionIndex) – Carried value expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionrlc.<size>(a,b,carry)

Return type:

ExpressionIndex

rotate_right(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

rotate_right bitwise rotates right expressiona by expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionror.<size>(a,b)

Return type:

ExpressionIndex

rotate_right_carry(size:int,a:ExpressionIndex,b:ExpressionIndex,carry:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

rotate_right_carry bitwise rotates right expressiona by expressionb with carry fromcarry returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • carry (ExpressionIndex) – Carried value expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionrrc.<size>(a,b,carry)

Return type:

ExpressionIndex

round_to_int(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

round_to_int rounds a floating point value to the nearest integer

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to round to the nearest integer

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionroundint.<size>(value)

Return type:

ExpressionIndex

set_current_address(value:int,arch:Architecture|None=None)None[source]
Parameters:
Return type:

None

set_expr_attributes(expr:MediumLevelILInstruction|ExpressionIndex|InstructionIndex,value:Set[ILInstructionAttribute]|List[ILInstructionAttribute])[source]

set_expr_attributes allows modification of instruction attributes but ONLY during lifting.

Warning

This function should ONLY be called as a part of a lifter. It will otherwise not do anything useful as there’s no way to trigger re-analysis of IL levels at this time.

Parameters:
  • expr (ExpressionIndex) – the ExpressionIndex to replace (may also be an expression index)

  • value (set(ILInstructionAttribute)) – the set of attributes to place on the instruction

Return type:

None

set_expr_type(expr_index:int,expr_type:str|Type|TypeBuilder|None)None[source]

Set type of expression

This API is only meant for workflows or for debugging purposes, since the changes they make are not persistentand get lost after a database save and reload. To make persistent changes to the analysis, one should use otherAPIs to, for example, change the type of variables. The analysis will then propagate the type of the variableand update the type of related expressions.

Parameters:
  • expr_index (int) – index of the expression to set

  • StringOrType – new type of the expression

  • expr_type (str |Type |TypeBuilder |None) –

Return type:

None

set_var(size:int,dest:Variable,src:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

set_var sets the variabledest of sizesize to the expressionsrc

Parameters:
  • size (int) – the size of the variable in bytes

  • dest (Variable) – the variable being set

  • src (ExpressionIndex) – expression with the value to set the variable to

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressiondest=src

Return type:

ExpressionIndex

set_var_field(size:int,dest:Variable,offset:int,src:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

set_var_field sets the fieldoffset of variabledest of sizesize to the expressionsrc

Parameters:
  • size (int) – the size of the field in bytes

  • dest (Variable) – the variable being set

  • offset (int) – offset of field in the variable

  • src (ExpressionIndex) – expression with the value to set the field to

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressiondest:offset=src

Return type:

ExpressionIndex

set_var_split(size:int,hi:Variable,lo:Variable,src:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

set_var_split useshi andlo as a single extended variable of size2*sizesettinghi:lo to the expressionsrc

Parameters:
  • size (int) – the size of each variable in bytes

  • hi (Variable) – the high variable being set

  • lo (Variable) – the low variable being set

  • src (ExpressionIndex) – expression with the value to set the variables to

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionhi:lo=src

Return type:

ExpressionIndex

shift_left(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

shift_left left shifts expressiona by expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionlsl.<size>(a,b)

Return type:

ExpressionIndex

sign_extend(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

sign_extend two’s complement sign-extends the expression invalue tosize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to sign extend

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionsx.<size>(value)

Return type:

ExpressionIndex

store(size:int,dest:ExpressionIndex,src:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

store Writessize bytes to expressiondest read from expressionsrc

Parameters:
  • size (int) – number of bytes to write

  • dest (ExpressionIndex) – the expression to write to

  • src (ExpressionIndex) – the expression to be written

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression[dest].size=src

Return type:

ExpressionIndex

store_struct(size:int,dest:ExpressionIndex,offset:int,src:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

store_struct Writessize bytes to expressiondest at the offsetoffset read from expressionsrc

Parameters:
  • size (int) – number of bytes to write

  • dest (ExpressionIndex) – the expression to write to

  • offset (int) – offset of field in the memory

  • src (ExpressionIndex) – the expression to be written

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression[(dest+offset)].size=src (often rendereddest->offset.size)

Return type:

ExpressionIndex

sub(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

sub subtracts expressiona to expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionsub.<size>(a,b)

Return type:

ExpressionIndex

sub_borrow(size:int,a:ExpressionIndex,b:ExpressionIndex,carry:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

sub_borrow subtracts expressiona to expressionb with borrow fromcarry returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • carry (ExpressionIndex) – Carried value expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionsbb.<size>(a,b,carry)

Return type:

ExpressionIndex

system_call(output:List[Variable],params:List[ExpressionIndex],loc:ILSourceLocation|None=None)ExpressionIndex[source]

system_call returns an expression which performs a system callwith the parameters defined inparams returning values in the variables inoutput.

Parameters:
  • output (List['variable.Variable']) – output variables

  • params (List[ExpressionIndex]) – parameter variables

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionoutput=syscall(dest,params...)

Return type:

ExpressionIndex

system_call_untyped(output:List[Variable],params:List[ExpressionIndex],stack:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

system_call_untyped returns an expression which performs a system callwith the parameters defined inparams returning values in the variables inoutputwhere stack resolution could not be determined and the top of the stack has to be specified instack

Parameters:
  • output (List['variable.Variable']) – output variables

  • params (List[ExpressionIndex]) – parameter variables

  • stack (ExpressionIndex) – expression of top of stack

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionoutput=syscall(dest,params...,stack=stack)

Return type:

ExpressionIndex

tailcall(output:List[Variable],dest:ExpressionIndex,params:List[ExpressionIndex],loc:ILSourceLocation|None=None)ExpressionIndex[source]

tailcall returns an expression which tailcalls the function in the expressiondestwith the parameters defined inparams returning values in the variables inoutput.

Parameters:
  • output (List['variable.Variable']) – output variables

  • dest (ExpressionIndex) – the expression to call

  • params (List[ExpressionIndex]) – parameter variables

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionoutput=tailcall(dest,params...)

Return type:

ExpressionIndex

tailcall_untyped(output:List[Variable],dest:ExpressionIndex,params:List[ExpressionIndex],stack:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

tailcall_untyped returns an expression which tailcalls the function in the expressiondestwith the parameters defined inparams returning values in the variables inoutputwhere stack resolution could not be determined and the top of the stack has to be specified instack

Parameters:
  • output (List['variable.Variable']) – output variables

  • dest (ExpressionIndex) – the expression to call

  • params (List[ExpressionIndex]) – parameter variables

  • stack (ExpressionIndex) – expression of top of stack

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionoutput=tailcall(dest,params...,stack=stack)

Return type:

ExpressionIndex

test_bit(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

test_bit returns an expression of sizesize that tells whether expressiona has its bit with anindex of the expressionb is set

Parameters:
  • size (int) – size in bytes

  • a (ExpressionIndex) – an expression to be tested

  • b (ExpressionIndex) – an expression for the index of the big

  • loc (ILSourceLocation) – location of returned expression

Returns:

the result expression.

Return type:

ExpressionIndex

translate(expr_handler:Callable[[MediumLevelILFunction,MediumLevelILBasicBlock,MediumLevelILInstruction],ExpressionIndex])MediumLevelILFunction[source]

translate clones an IL function and modifies its expressions as specified bya givenexpr_handler, returning the updated IL function.

Parameters:

expr_handler (Callable[[MediumLevelILFunction,MediumLevelILBasicBlock,MediumLevelILInstruction],ExpressionIndex]) –

Function to modify an expression and copy it to the new function.The function should have the following signature:

expr_handler(new_func: MediumLevelILFunction, old_block: MediumLevelILBasicBlock, old_instr: MediumLevelILInstruction) -> ExpressionIndex

Where:
  • new_func (MediumLevelILFunction): New function to receive translated instructions

  • old_block (MediumLevelILBasicBlock): Original block containing old_instr

  • old_instr (MediumLevelILInstruction): Original instruction

  • returns (ExpressionIndex): Expression index of newly created instruction innew_func

Returns:

Cloned IL function with modifications

Return type:

MediumLevelILFunction

trap(value:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

trap returns a processor trap (interrupt) expression of the given integervalue.

Parameters:
  • value (int) – trap (interrupt) number

  • loc (ILSourceLocation) – location of returned expression

Returns:

a trap expression.

Return type:

ExpressionIndex

traverse(cb:Callable[[MediumLevelILInstruction,Any],Any],*args:Any,**kwargs:Any)Iterator[Any][source]

traverse iterates through all the instructions in the MediumLevelILInstruction and calls the callback function foreach instruction and sub-instruction. See theDeveloper Docs for more examples.

Parameters:
  • cb (Callable[[MediumLevelILInstruction,Any],Any]) – Callback function that takes a HighLevelILInstruction and returns a value

  • args (Any) – Custom user-defined arguments

  • kwargs (Any) – Custom user-defined keyword arguments

  • cb

Returns:

An iterator of the results of the callback function

Return type:

Iterator[Any]

Example:
>>>deffind_constants(instr)->Optional[int]:...ifisinstance(instr,Constant):...returninstr.constant>>>print(list(current_il_function.traverse(find_constants)))
undefined(loc:ILSourceLocation|None=None)ExpressionIndex[source]

undefined returns the undefined expression. This should be used for instructions which perform functions butaren’t important for dataflow or partial emulation purposes.

Parameters:

loc (ILSourceLocation) – location of returned expression

Returns:

the undefined expression.

Return type:

ExpressionIndex

unimplemented(loc:ILSourceLocation|None=None)ExpressionIndex[source]

unimplemented returns the unimplemented expression. This should be used for all instructions which aren’timplemented.

Parameters:

loc (ILSourceLocation) – location of returned expression

Returns:

the unimplemented expression.

Return type:

ExpressionIndex

unimplemented_memory_ref(size:int,addr:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

unimplemented_memory_ref a memory reference to expressionaddr of sizesize with unimplemented operation.

Parameters:
  • size (int) – size in bytes of the memory reference

  • addr (ExpressionIndex) – expression to reference memory

  • loc (ILSourceLocation) – location of returned expression

Returns:

the unimplemented memory reference expression.

Return type:

ExpressionIndex

var(size:int,src:Variable,loc:ILSourceLocation|None=None)ExpressionIndex[source]

var returns the variablesrc of sizesize

Parameters:
  • size (int) – the size of the variable in bytes

  • src (Variable) – the variable being read

  • loc (ILSourceLocation) – location of returned expression

Returns:

An expression for the given variable

Return type:

ExpressionIndex

var_field(size:int,src:Variable,offset:int,loc:ILSourceLocation|None=None)ExpressionIndex[source]

var_field returns the field at offsetoffset from variablesrc of sizesize

Parameters:
  • size (int) – the size of the field in bytes

  • src (Variable) – the variable being read

  • offset (int) – offset of field in the variable

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionvar:offset.size

Return type:

ExpressionIndex

var_split(size:int,hi:Variable,lo:Variable,loc:ILSourceLocation|None=None)ExpressionIndex[source]

var_split combines variableshi andlo of sizesize into an expression of size2*size

Parameters:
  • size (int) – the size of each variable in bytes

  • hi (Variable) – the variable holding high part of value

  • lo (Variable) – the variable holding low part of value

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionhi:lo

Return type:

ExpressionIndex

visit(cb:Callable[[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str,MediumLevelILInstruction|None],bool])bool[source]

Iterates over all the instructions in the function and calls the callback functionfor each instruction and each sub-instruction.

Parameters:

cb (MediumLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

Returns:

True if all instructions were visited, False if the callback function returned False.

Return type:

bool

Deprecated since version 4.0.4907:UseMediumLevelILFunction.traverse instead.

visit_all(cb:Callable[[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str,MediumLevelILInstruction|None],bool])bool[source]

Iterates over all the instructions in the function and calls the callback function for each instruction and their operands.

Parameters:

cb (MediumLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

Returns:

True if all instructions were visited, False if the callback function returned False.

Return type:

bool

Deprecated since version 4.0.4907:UseMediumLevelILFunction.traverse instead.

visit_operands(cb:Callable[[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str,MediumLevelILInstruction|None],bool])bool[source]
Iterates over all the instructions in the function and calls the callback function for each operand and

the operands of each sub-instruction.

Parameters:

cb (MediumLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

Returns:

True if all instructions were visited, False if the callback function returned False.

Return type:

bool

Deprecated since version 4.0.4907:UseMediumLevelILFunction.traverse instead.

xor_expr(size:int,a:ExpressionIndex,b:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

xor_expr xor’s expressiona and expressionb returning an expression ofsize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • a (ExpressionIndex) – LHS expression

  • b (ExpressionIndex) – RHS expression

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionxor.<size>(a,b)

Return type:

ExpressionIndex

zero_extend(size:int,value:ExpressionIndex,loc:ILSourceLocation|None=None)ExpressionIndex[source]

zero_extend zero-extends the expression invalue tosize bytes

Parameters:
  • size (int) – the size of the result in bytes

  • value (ExpressionIndex) – the expression to zero extend

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expressionzx.<size>(value)

Return type:

ExpressionIndex

propertyaliased_vars:List[Variable]

This returns a list of Variables that are taken reference to and used elsewhere. You may also wish to considerMediumLevelIlFunction.vars andMediumLevelIlFunction.source_function.parameter_vars

propertyarch:Architecture
propertybasic_blocks:MediumLevelILBasicBlockList
propertycurrent_address:int

Current IL Address (read/write)

propertyhigh_level_il:HighLevelILFunction|None

High level IL for this medium level IL.

propertyhlil:HighLevelILFunction|None
propertyil_form:FunctionGraphType
propertyinstructions:Generator[MediumLevelILInstruction,None,None]

A generator of mlil instructions of the current function

propertyllil:LowLevelILFunction|None

Alias for low_level_il

propertylow_level_il:LowLevelILFunction|None

Low level IL for this function

propertynon_ssa_form:MediumLevelILFunction|None

Medium level IL in non-SSA (default) form (read-only)

propertysource_function:Function
propertyssa_form:MediumLevelILFunction|None

Medium level IL in SSA form (read-only)

propertyssa_vars:List[SSAVariable]

This gets just the MLIL SSA variables - you may be interested in the union ofMediumLevelIlFunction.aliased_vars andMediumLevelIlFunction.source_function.parameter_vars for all the variables used in the function

propertyvars:List[Variable]

This gets just the MLIL variables - you may be interested in the union ofMediumLevelIlFunction.aliased_vars andMediumLevelIlFunction.source_function.parameter_vars for all the variables used in the function

propertyview:BinaryView

MediumLevelILGoto

classMediumLevelILGoto[source]

Bases:MediumLevelILInstruction,Terminal

MediumLevelILGoto(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:InstructionIndex
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILIf

classMediumLevelILIf[source]

Bases:MediumLevelILInstruction,Terminal

MediumLevelILIf(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertycondition:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
propertyfalse:InstructionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertytrue:InstructionIndex

MediumLevelILImport

classMediumLevelILImport[source]

Bases:MediumLevelILConstBase

MediumLevelILImport(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertyconstant:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILInstruction

classMediumLevelILInstruction[source]

Bases:BaseILInstruction

classMediumLevelILInstruction Medium Level Intermediate Language Instructions are infinite length tree-basedinstructions. 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. x86moveax,0 vs. MLILeax=0).

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

copy_to(dest:MediumLevelILFunction,sub_expr_handler:Callable[[MediumLevelILInstruction],ExpressionIndex]|None=None)ExpressionIndex[source]

copy_to deep copies an expression into a new IL function.If provided, the functionsub_expr_handler will be called on every copied sub-expression

Warning

This function should ONLY be called as a part of a lifter or workflow. It will otherwise not do anything useful as analysis will not be running.

Parameters:
Returns:

Index of the copied expression in the target function

Return type:

ExpressionIndex

classmethodcreate(func:MediumLevelILFunction,expr_index:ExpressionIndex,instr_index:InstructionIndex|None=None)MediumLevelILInstruction[source]
Parameters:
Return type:

MediumLevelILInstruction

get_branch_dependence(branch_instr:int)ILBranchDependence[source]
Parameters:

branch_instr (int) –

Return type:

ILBranchDependence

get_flag_value(flag:FlagName|ILFlag|FlagIndex)RegisterValue[source]
Parameters:

flag (FlagName |ILFlag |FlagIndex) –

Return type:

RegisterValue

get_flag_value_after(flag:FlagName|ILFlag|FlagIndex)RegisterValue[source]
Parameters:

flag (FlagName |ILFlag |FlagIndex) –

Return type:

RegisterValue

get_possible_flag_values(flag:FlagName|ILFlag|FlagIndex,options:List[DataFlowQueryOption]|None=None)PossibleValueSet[source]
Parameters:
Return type:

PossibleValueSet

get_possible_flag_values_after(flag:FlagName|ILFlag|FlagIndex,options:List[DataFlowQueryOption]|None=None)PossibleValueSet[source]
Parameters:
Return type:

PossibleValueSet

get_possible_reg_values(reg:RegisterName|ILRegister|RegisterIndex,options:List[DataFlowQueryOption]|None=None)PossibleValueSet[source]
Parameters:
Return type:

PossibleValueSet

get_possible_reg_values_after(reg:RegisterName|ILRegister|RegisterIndex,options:List[DataFlowQueryOption]|None=None)PossibleValueSet[source]
Parameters:
Return type:

PossibleValueSet

get_possible_stack_contents(offset:int,size:int,options:List[DataFlowQueryOption]|None=None)PossibleValueSet[source]
Parameters:
Return type:

PossibleValueSet

get_possible_stack_contents_after(offset:int,size:int,options:List[DataFlowQueryOption]|None=None)PossibleValueSet[source]
Parameters:
Return type:

PossibleValueSet

get_possible_values(options:List[DataFlowQueryOption]|None=None)PossibleValueSet[source]
Parameters:

options (List[DataFlowQueryOption]|None) –

Return type:

PossibleValueSet

get_reg_value(reg:RegisterName|ILRegister|RegisterIndex)RegisterValue[source]
Parameters:

reg (RegisterName |ILRegister |RegisterIndex) –

Return type:

RegisterValue

get_reg_value_after(reg:RegisterName|ILRegister|RegisterIndex)RegisterValue[source]
Parameters:

reg (RegisterName |ILRegister |RegisterIndex) –

Return type:

RegisterValue

get_split_var_for_definition(var:Variable)Variable[source]

Gets the unique variable for a definition instruction. This unique variable can be passedtoFunction.split_var to split a variable at a definition. The givenvar is theassigned variable to query.

Parameters:

var (Variable) – variable to query

Return type:

Variable

get_ssa_var_possible_values(ssa_var:SSAVariable,options:List[DataFlowQueryOption]=[])[source]
Parameters:
get_ssa_var_version(var:Variable)int[source]
Parameters:

var (Variable) –

Return type:

int

get_ssa_var_version_after(var:Variable)int[source]
Parameters:

var (Variable) –

Return type:

int

get_stack_contents(offset:int,size:int)RegisterValue[source]
Parameters:
  • offset (int) –

  • size (int) –

Return type:

RegisterValue

get_stack_contents_after(offset:int,size:int)RegisterValue[source]
Parameters:
  • offset (int) –

  • size (int) –

Return type:

RegisterValue

get_var_for_flag(flag:FlagName|ILFlag|FlagIndex)Variable[source]
Parameters:

flag (FlagName |ILFlag |FlagIndex) –

Return type:

Variable

get_var_for_flag_after(flag:FlagName|ILFlag|FlagIndex)Variable[source]
Parameters:

flag (FlagName |ILFlag |FlagIndex) –

Return type:

Variable

get_var_for_reg(reg:RegisterName|ILRegister|RegisterIndex)Variable[source]
Parameters:

reg (RegisterName |ILRegister |RegisterIndex) –

Return type:

Variable

get_var_for_reg_after(reg:RegisterName|ILRegister|RegisterIndex)Variable[source]
Parameters:

reg (RegisterName |ILRegister |RegisterIndex) –

Return type:

Variable

get_var_for_stack_location(offset:int)Variable[source]
Parameters:

offset (int) –

Return type:

Variable

get_var_for_stack_location_after(offset:int)Variable[source]
Parameters:

offset (int) –

Return type:

Variable

staticshow_mlil_hierarchy()[source]

Opens a new tab showing the MLIL hierarchy which includes classes which caneasily be used with isinstance to match multiple types of IL instructions.

traverse(cb:Callable[[MediumLevelILInstruction,Any],Any],*args:Any,**kwargs:Any)Iterator[Any][source]

traverse is a generator that allows you to traverse the MediumLevelILInstruction in a depth-first manner. It will yield theresult of the callback function for each node in the tree. Arguments can be passed to the callback function usingargs andkwargs. See theDeveloper Docs for more examples.

Parameters:
  • cb (Callable[[MediumLevelILInstruction,Any],Any]) – The callback function to call for each node in the MediumLevelILInstruction

  • args (Any) – Custom user-defined arguments

  • kwargs (Any) – Custom user-defined keyword arguments

  • cb

Returns:

An iterator of the results of the callback function

Return type:

Iterator[Any]

Example:
>>>defget_constant_less_than_value(inst:MediumLevelILInstruction,value:int)->int:>>>ifisinstance(inst,Constant)andinst.constant<value:>>>returninst.constant>>>>>>list(inst.traverse(get_constant_less_than_value,10))
visit(cb:Callable[[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str,MediumLevelILInstruction|None],bool],name:str='root',parent:MediumLevelILInstruction|None=None)bool[source]

Visits all MediumLevelILInstructions in the operands of this instruction and any sub-instructions.In the callback you provide, you likely only need to interact with the second argument (see the example below).

Parameters:
  • cb (MediumLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

  • name (str) –

  • parent (MediumLevelILInstruction |None) –

Returns:

True if all instructions were visited, False if the callback returned False

Example:
>>>defvisitor(_a,inst,_c,_d)->bool:>>>ifisinstance(inst,Constant):>>>print(f"Found constant:{inst.constant}")>>>returnFalse# Stop recursion (once we find a constant, don't recurse in to any sub-instructions (which there won't actually be any...))>>># Otherwise, keep recursing the subexpressions of this instruction; if no return value is provided, it'll keep descending>>>>>># Finds all constants used in the program>>>forinstincurrent_mlil.instructions:>>>inst.visit(visitor)
Return type:

bool

Deprecated since version 4.0.4907:UseMediumLevelILInstruction.traverse instead.

visit_all(cb:Callable[[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str,MediumLevelILInstruction|None],bool],name:str='root',parent:MediumLevelILInstruction|None=None)bool[source]

Visits all operands of this instruction and all operands of any sub-instructions.Using pre-order traversal.

Parameters:
  • cb (MediumLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

  • name (str) –

  • parent (MediumLevelILInstruction |None) –

Returns:

True if all instructions were visited, False if the callback returned False

Return type:

bool

Deprecated since version 4.0.4907:UseMediumLevelILInstruction.traverse instead.

visit_operands(cb:Callable[[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str,MediumLevelILInstruction|None],bool],name:str='root',parent:MediumLevelILInstruction|None=None)bool[source]

Visits all leaf operands of this instruction and any sub-instructions.

Parameters:
  • cb (MediumLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

  • name (str) –

  • parent (MediumLevelILInstruction |None) –

Returns:

True if all instructions were visited, False if the callback returned False

Return type:

bool

Deprecated since version 4.0.4907:UseMediumLevelILInstruction.traverse instead.

ILOperations:ClassVar[Mapping[MediumLevelILOperation,List[Tuple[str,str]]]]={MediumLevelILOperation.MLIL_NOP:[],MediumLevelILOperation.MLIL_SET_VAR:[('dest','var'),('src','expr')],MediumLevelILOperation.MLIL_SET_VAR_FIELD:[('dest','var'),('offset','int'),('src','expr')],MediumLevelILOperation.MLIL_SET_VAR_SPLIT:[('high','var'),('low','var'),('src','expr')],MediumLevelILOperation.MLIL_LOAD:[('src','expr')],MediumLevelILOperation.MLIL_LOAD_STRUCT:[('src','expr'),('offset','int')],MediumLevelILOperation.MLIL_STORE:[('dest','expr'),('src','expr')],MediumLevelILOperation.MLIL_STORE_STRUCT:[('dest','expr'),('offset','int'),('src','expr')],MediumLevelILOperation.MLIL_VAR:[('src','var')],MediumLevelILOperation.MLIL_VAR_FIELD:[('src','var'),('offset','int')],MediumLevelILOperation.MLIL_VAR_SPLIT:[('high','var'),('low','var')],MediumLevelILOperation.MLIL_ADDRESS_OF:[('src','var')],MediumLevelILOperation.MLIL_ADDRESS_OF_FIELD:[('src','var'),('offset','int')],MediumLevelILOperation.MLIL_CONST:[('constant','int')],MediumLevelILOperation.MLIL_CONST_DATA:[('constant','ConstantData')],MediumLevelILOperation.MLIL_CONST_PTR:[('constant','int')],MediumLevelILOperation.MLIL_EXTERN_PTR:[('constant','int'),('offset','int')],MediumLevelILOperation.MLIL_FLOAT_CONST:[('constant','float')],MediumLevelILOperation.MLIL_IMPORT:[('constant','int')],MediumLevelILOperation.MLIL_ADD:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_ADC:[('left','expr'),('right','expr'),('carry','expr')],MediumLevelILOperation.MLIL_SUB:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_SBB:[('left','expr'),('right','expr'),('carry','expr')],MediumLevelILOperation.MLIL_AND:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_OR:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_XOR:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_LSL:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_LSR:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_ASR:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_ROL:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_RLC:[('left','expr'),('right','expr'),('carry','expr')],MediumLevelILOperation.MLIL_ROR:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_RRC:[('left','expr'),('right','expr'),('carry','expr')],MediumLevelILOperation.MLIL_MUL:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_MULU_DP:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_MULS_DP:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_DIVU:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_DIVU_DP:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_DIVS:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_DIVS_DP:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_MODU:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_MODU_DP:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_MODS:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_MODS_DP:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_NEG:[('src','expr')],MediumLevelILOperation.MLIL_NOT:[('src','expr')],MediumLevelILOperation.MLIL_SX:[('src','expr')],MediumLevelILOperation.MLIL_ZX:[('src','expr')],MediumLevelILOperation.MLIL_LOW_PART:[('src','expr')],MediumLevelILOperation.MLIL_JUMP:[('dest','expr')],MediumLevelILOperation.MLIL_JUMP_TO:[('dest','expr'),('targets','target_map')],MediumLevelILOperation.MLIL_RET_HINT:[('dest','expr')],MediumLevelILOperation.MLIL_CALL:[('output','var_list'),('dest','expr'),('params','expr_list')],MediumLevelILOperation.MLIL_CALL_UNTYPED:[('output','expr'),('dest','expr'),('params','expr'),('stack','expr')],MediumLevelILOperation.MLIL_CALL_OUTPUT:[('dest','var_list')],MediumLevelILOperation.MLIL_CALL_PARAM:[('src','expr_list')],MediumLevelILOperation.MLIL_SEPARATE_PARAM_LIST:[('params','expr_list')],MediumLevelILOperation.MLIL_SHARED_PARAM_SLOT:[('params','expr_list')],MediumLevelILOperation.MLIL_RET:[('src','expr_list')],MediumLevelILOperation.MLIL_NORET:[],MediumLevelILOperation.MLIL_IF:[('condition','expr'),('true','int'),('false','int')],MediumLevelILOperation.MLIL_GOTO:[('dest','int')],MediumLevelILOperation.MLIL_CMP_E:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_NE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_SLT:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_ULT:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_SLE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_ULE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_SGE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_UGE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_SGT:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_CMP_UGT:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_TEST_BIT:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_BOOL_TO_INT:[('src','expr')],MediumLevelILOperation.MLIL_ADD_OVERFLOW:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_SYSCALL:[('output','var_list'),('params','expr_list')],MediumLevelILOperation.MLIL_SYSCALL_UNTYPED:[('output','expr'),('params','expr'),('stack','expr')],MediumLevelILOperation.MLIL_TAILCALL:[('output','var_list'),('dest','expr'),('params','expr_list')],MediumLevelILOperation.MLIL_TAILCALL_UNTYPED:[('output','expr'),('dest','expr'),('params','expr'),('stack','expr')],MediumLevelILOperation.MLIL_INTRINSIC:[('output','var_list'),('intrinsic','intrinsic'),('params','expr_list')],MediumLevelILOperation.MLIL_FREE_VAR_SLOT:[('dest','var')],MediumLevelILOperation.MLIL_BP:[],MediumLevelILOperation.MLIL_TRAP:[('vector','int')],MediumLevelILOperation.MLIL_UNDEF:[],MediumLevelILOperation.MLIL_UNIMPL:[],MediumLevelILOperation.MLIL_UNIMPL_MEM:[('src','expr')],MediumLevelILOperation.MLIL_FADD:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FSUB:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FMUL:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FDIV:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FSQRT:[('src','expr')],MediumLevelILOperation.MLIL_FNEG:[('src','expr')],MediumLevelILOperation.MLIL_FABS:[('src','expr')],MediumLevelILOperation.MLIL_FLOAT_TO_INT:[('src','expr')],MediumLevelILOperation.MLIL_INT_TO_FLOAT:[('src','expr')],MediumLevelILOperation.MLIL_FLOAT_CONV:[('src','expr')],MediumLevelILOperation.MLIL_ROUND_TO_INT:[('src','expr')],MediumLevelILOperation.MLIL_FLOOR:[('src','expr')],MediumLevelILOperation.MLIL_CEIL:[('src','expr')],MediumLevelILOperation.MLIL_FTRUNC:[('src','expr')],MediumLevelILOperation.MLIL_FCMP_E:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FCMP_NE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FCMP_LT:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FCMP_LE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FCMP_GE:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FCMP_GT:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FCMP_O:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_FCMP_UO:[('left','expr'),('right','expr')],MediumLevelILOperation.MLIL_SET_VAR_SSA:[('dest','var_ssa'),('src','expr')],MediumLevelILOperation.MLIL_SET_VAR_SSA_FIELD:[('dest','var_ssa_dest_and_src'),('prev','var_ssa_dest_and_src'),('offset','int'),('src','expr')],MediumLevelILOperation.MLIL_SET_VAR_SPLIT_SSA:[('high','var_ssa'),('low','var_ssa'),('src','expr')],MediumLevelILOperation.MLIL_SET_VAR_ALIASED:[('dest','var_ssa_dest_and_src'),('prev','var_ssa_dest_and_src'),('src','expr')],MediumLevelILOperation.MLIL_SET_VAR_ALIASED_FIELD:[('dest','var_ssa_dest_and_src'),('prev','var_ssa_dest_and_src'),('offset','int'),('src','expr')],MediumLevelILOperation.MLIL_VAR_SSA:[('src','var_ssa')],MediumLevelILOperation.MLIL_VAR_SSA_FIELD:[('src','var_ssa'),('offset','int')],MediumLevelILOperation.MLIL_VAR_ALIASED:[('src','var_ssa')],MediumLevelILOperation.MLIL_VAR_ALIASED_FIELD:[('src','var_ssa'),('offset','int')],MediumLevelILOperation.MLIL_VAR_SPLIT_SSA:[('high','var_ssa'),('low','var_ssa')],MediumLevelILOperation.MLIL_CALL_SSA:[('output','expr'),('output_dest_memory','int'),('dest','expr'),('params','expr_list'),('src_memory','int')],MediumLevelILOperation.MLIL_CALL_UNTYPED_SSA:[('output','expr'),('dest','expr'),('params','expr'),('stack','expr')],MediumLevelILOperation.MLIL_SYSCALL_SSA:[('output','expr'),('params','expr_list'),('src_memory','int')],MediumLevelILOperation.MLIL_SYSCALL_UNTYPED_SSA:[('output','expr'),('params','expr'),('stack','expr')],MediumLevelILOperation.MLIL_TAILCALL_SSA:[('output','expr'),('output_dest_memory','int'),('dest','expr'),('params','expr_list'),('src_memory','int')],MediumLevelILOperation.MLIL_TAILCALL_UNTYPED_SSA:[('output','expr'),('dest','expr'),('params','expr'),('stack','expr')],MediumLevelILOperation.MLIL_CALL_PARAM_SSA:[('src_memory','int'),('src','expr_list')],MediumLevelILOperation.MLIL_CALL_OUTPUT_SSA:[('dest_memory','int'),('dest','var_ssa_list')],MediumLevelILOperation.MLIL_MEMORY_INTRINSIC_OUTPUT_SSA:[('dest_memory','int'),('output','var_ssa_list')],MediumLevelILOperation.MLIL_LOAD_SSA:[('src','expr'),('src_memory','int')],MediumLevelILOperation.MLIL_LOAD_STRUCT_SSA:[('src','expr'),('offset','int'),('src_memory','int')],MediumLevelILOperation.MLIL_STORE_SSA:[('dest','expr'),('dest_memory','int'),('src_memory','int'),('src','expr')],MediumLevelILOperation.MLIL_STORE_STRUCT_SSA:[('dest','expr'),('offset','int'),('dest_memory','int'),('src_memory','int'),('src','expr')],MediumLevelILOperation.MLIL_INTRINSIC_SSA:[('output','var_ssa_list'),('intrinsic','intrinsic'),('params','expr_list')],MediumLevelILOperation.MLIL_MEMORY_INTRINSIC_SSA:[('output','expr'),('intrinsic','intrinsic'),('params','expr_list'),('src_memory','int')],MediumLevelILOperation.MLIL_FREE_VAR_SLOT_SSA:[('prev','var_ssa_dest_and_src')],MediumLevelILOperation.MLIL_VAR_PHI:[('dest','var_ssa'),('src','var_ssa_list')],MediumLevelILOperation.MLIL_MEM_PHI:[('dest_memory','int'),('src_memory','int_list')]}
propertyaddress:int
propertyattributes:Set[ILInstructionAttribute]

The set of optional attributes placed on the instruction

propertybranch_dependence:Mapping[int,ILBranchDependence]

Set of branching instructions that must take the true or false path to reach this instruction

propertycore_operands:Tuple[ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex]
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
propertyexpr_type:Type|None

Type of expression

function:MediumLevelILFunction
propertyhigh_level_il:HighLevelILInstruction|None

High level IL form of this expression

propertyhlil:HighLevelILInstruction|None

Alias for high_level_il

propertyhlils:List[HighLevelILInstruction]
propertyil_basic_block:MediumLevelILBasicBlock

IL basic block object containing this expression (read-only) (only available on finalized functions)

instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyinstruction_operands:List[MediumLevelILInstruction]
propertyllil:LowLevelILInstruction|None

Alias for low_level_il

propertyllils:List[LowLevelILInstruction]
propertylow_level_il:LowLevelILInstruction|None

Low level IL form of this expression

propertynon_ssa_form:MediumLevelILInstruction

Non-SSA form of expression (read-only)

propertyoperands:List[int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData]

Operands for the instruction

Consider using more specific APIs forsrc,dest,params, etc where appropriate.

propertyoperation:MediumLevelILOperation
propertypossible_values:PossibleValueSet

Possible values of expression using path-sensitive static data flow analysis (read-only)

propertypostfix_operands:List[int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData]

All operands in the expression tree in postfix order

propertyprefix_operands:List[int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData]

All operands in the expression tree in prefix order

propertyraw_operands:Tuple[ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex,ExpressionIndex]

Raw operand expression indices as specified by the core structure (read-only)

propertysize:int
propertysource_location:ILSourceLocation
propertysource_operand:ExpressionIndex
propertyssa_form:MediumLevelILInstruction

SSA form of expression (read-only)

propertyssa_memory_version:int

Version of active memory contents in SSA form for this instruction

propertyssa_memory_version_after:int

Version of active memory contents in SSA form after this instruction

propertytokens:List[InstructionTextToken]

MLIL tokens (read-only)

propertyvalue:RegisterValue

Value of expression if constant or a known value (read-only)

propertyvars_address_taken:List[Variable|SSAVariable]

Non-unique list of variables whose address is taken by instruction

propertyvars_read:List[Variable|SSAVariable]

List of variables read by instruction

propertyvars_written:List[Variable|SSAVariable]

List of variables written by instruction

MediumLevelILIntToFloat

classMediumLevelILIntToFloat[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILIntToFloat(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILIntrinsic

classMediumLevelILIntrinsic[source]

Bases:MediumLevelILInstruction,Intrinsic

MediumLevelILIntrinsic(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyintrinsic:ILIntrinsic
propertyoutput:List[Variable]
propertyparams:List[MediumLevelILInstruction]
propertyvars_read:List[Variable]

List of variables read by instruction

propertyvars_written:List[Variable]

List of variables written by instruction

MediumLevelILIntrinsicSsa

classMediumLevelILIntrinsicSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILIntrinsicSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyintrinsic:ILIntrinsic
propertyoutput:List[SSAVariable]
propertyparams:List[MediumLevelILInstruction]
propertyvars_read:List[SSAVariable]

List of variables read by instruction

propertyvars_written:List[SSAVariable]

List of variables written by instruction

MediumLevelILJump

classMediumLevelILJump[source]

Bases:MediumLevelILInstruction,Terminal

MediumLevelILJump(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILJumpTo

classMediumLevelILJumpTo[source]

Bases:MediumLevelILInstruction,Terminal

MediumLevelILJumpTo(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertytargets:Dict[int,int]

MediumLevelILLabel

classMediumLevelILLabel[source]

Bases:object

__init__(handle:BNMediumLevelILLabel|None=None)[source]
Parameters:

handle (BNMediumLevelILLabel |None) –

propertyoperand:InstructionIndex
propertyref:bool
propertyresolved:bool

MediumLevelILLoad

classMediumLevelILLoad[source]

Bases:MediumLevelILInstruction,Load

MediumLevelILLoad(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction

MediumLevelILLoadSsa

classMediumLevelILLoadSsa[source]

Bases:MediumLevelILInstruction,Load,SSA

MediumLevelILLoadSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction
propertysrc_memory:int

MediumLevelILLoadStruct

classMediumLevelILLoadStruct[source]

Bases:MediumLevelILInstruction,Load

MediumLevelILLoadStruct(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:MediumLevelILInstruction

MediumLevelILLoadStructSsa

classMediumLevelILLoadStructSsa[source]

Bases:MediumLevelILInstruction,Load,SSA

MediumLevelILLoadStructSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:MediumLevelILInstruction
propertysrc_memory:int

MediumLevelILLowPart

classMediumLevelILLowPart[source]

Bases:MediumLevelILUnaryBase,Arithmetic

MediumLevelILLowPart(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILLsl

classMediumLevelILLsl[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILLsl(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILLsr

classMediumLevelILLsr[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILLsr(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILMemPhi

classMediumLevelILMemPhi[source]

Bases:MediumLevelILInstruction,Memory,Phi

MediumLevelILMemPhi(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest_memory:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc_memory:List[int]

MediumLevelILMemoryIntrinsicOutputSsa

classMediumLevelILMemoryIntrinsicOutputSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILMemoryIntrinsicOutputSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest_memory:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[SSAVariable]

MediumLevelILMemoryIntrinsicSsa

classMediumLevelILMemoryIntrinsicSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILMemoryIntrinsicSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest_memory:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyintrinsic:ILIntrinsic
propertyoutput:List[SSAVariable]
propertyparams:List[MediumLevelILInstruction]
propertysrc_memory:int

MediumLevelILMods

classMediumLevelILMods[source]

Bases:MediumLevelILBinaryBase,Arithmetic,Signed

MediumLevelILMods(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILModsDp

classMediumLevelILModsDp[source]

Bases:MediumLevelILBinaryBase,DoublePrecision,Signed

MediumLevelILModsDp(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILModu

classMediumLevelILModu[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILModu(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILModuDp

classMediumLevelILModuDp[source]

Bases:MediumLevelILBinaryBase,DoublePrecision

MediumLevelILModuDp(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILMul

classMediumLevelILMul[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILMul(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILMulsDp

classMediumLevelILMulsDp[source]

Bases:MediumLevelILBinaryBase,DoublePrecision,Signed

MediumLevelILMulsDp(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILMuluDp

classMediumLevelILMuluDp[source]

Bases:MediumLevelILBinaryBase,DoublePrecision

MediumLevelILMuluDp(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILNeg

classMediumLevelILNeg[source]

Bases:MediumLevelILUnaryBase,Arithmetic

MediumLevelILNeg(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILNop

classMediumLevelILNop[source]

Bases:MediumLevelILInstruction

MediumLevelILNop(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILNoret

classMediumLevelILNoret[source]

Bases:MediumLevelILInstruction,Terminal

MediumLevelILNoret(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILNot

classMediumLevelILNot[source]

Bases:MediumLevelILUnaryBase,Arithmetic

MediumLevelILNot(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILOperationAndSize

classMediumLevelILOperationAndSize[source]

Bases:object

MediumLevelILOperationAndSize(operation: binaryninja.enums.MediumLevelILOperation, size: int)

__init__(operation:MediumLevelILOperation,size:int)None
Parameters:
Return type:

None

operation:MediumLevelILOperation
size:int

MediumLevelILOr

classMediumLevelILOr[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILOr(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILRet

classMediumLevelILRet[source]

Bases:MediumLevelILInstruction,Return

MediumLevelILRet(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:List[MediumLevelILInstruction]

MediumLevelILRetHint

classMediumLevelILRetHint[source]

Bases:MediumLevelILInstruction,ControlFlow

MediumLevelILRetHint(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILRlc

classMediumLevelILRlc[source]

Bases:MediumLevelILCarryBase

MediumLevelILRlc(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILRol

classMediumLevelILRol[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILRol(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILRor

classMediumLevelILRor[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILRor(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILRoundToInt

classMediumLevelILRoundToInt[source]

Bases:MediumLevelILUnaryBase,Arithmetic,FloatingPoint

MediumLevelILRoundToInt(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILRrc

classMediumLevelILRrc[source]

Bases:MediumLevelILCarryBase

MediumLevelILRrc(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILSbb

classMediumLevelILSbb[source]

Bases:MediumLevelILCarryBase

MediumLevelILSbb(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILSeparateParamList

classMediumLevelILSeparateParamList[source]

Bases:MediumLevelILInstruction

MediumLevelILSeparateParamList(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyparams:List[MediumLevelILInstruction]

MediumLevelILSetVar

classMediumLevelILSetVar[source]

Bases:MediumLevelILInstruction,SetVar

MediumLevelILSetVar(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:Variable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction
propertyvars_read:List[Variable|SSAVariable]

List of variables read by instruction

propertyvars_written:List[Variable]

List of variables written by instruction

MediumLevelILSetVarAliased

classMediumLevelILSetVarAliased[source]

Bases:MediumLevelILInstruction,SetVar,SSA

MediumLevelILSetVarAliased(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:SSAVariable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyprev:SSAVariable
propertysrc:MediumLevelILInstruction
propertyvars_read:List[Variable|SSAVariable]

List of variables read by instruction

propertyvars_written:List[SSAVariable]

List of variables written by instruction

MediumLevelILSetVarAliasedField

classMediumLevelILSetVarAliasedField[source]

Bases:MediumLevelILInstruction,SetVar,SSA

MediumLevelILSetVarAliasedField(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:SSAVariable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertyprev:SSAVariable
propertysrc:MediumLevelILInstruction
propertyvars_read:List[SSAVariable]

List of variables read by instruction

MediumLevelILSetVarField

classMediumLevelILSetVarField[source]

Bases:MediumLevelILInstruction,SetVar

MediumLevelILSetVarField(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:Variable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:MediumLevelILInstruction

MediumLevelILSetVarSplit

classMediumLevelILSetVarSplit[source]

Bases:MediumLevelILInstruction,SetVar

MediumLevelILSetVarSplit(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
propertyhigh:Variable
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertylow:Variable
propertysrc:MediumLevelILInstruction
propertyvars_written:List[Variable]

List of variables written by instruction

MediumLevelILSetVarSplitSsa

classMediumLevelILSetVarSplitSsa[source]

Bases:MediumLevelILInstruction,SetVar,SSA

MediumLevelILSetVarSplitSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
propertyhigh:SSAVariable
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertylow:SSAVariable
propertysrc:MediumLevelILInstruction
propertyvars_read:List[Variable|SSAVariable]

List of variables read by instruction

propertyvars_written:List[SSAVariable]

List of variables written by instruction

MediumLevelILSetVarSsa

classMediumLevelILSetVarSsa[source]

Bases:MediumLevelILInstruction,SetVar,SSA

MediumLevelILSetVarSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:SSAVariable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction
propertyvars_read:List[Variable|SSAVariable]

List of variables read by instruction

propertyvars_written:List[SSAVariable]

List of variables written by instruction

MediumLevelILSetVarSsaField

classMediumLevelILSetVarSsaField[source]

Bases:MediumLevelILInstruction,SetVar,SSA

MediumLevelILSetVarSsaField(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:SSAVariable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertyprev:SSAVariable
propertysrc:MediumLevelILInstruction
propertyvars_read:List[SSAVariable]

List of variables read by instruction

propertyvars_written:List[SSAVariable]

List of variables written by instruction

MediumLevelILSharedParamSlot

classMediumLevelILSharedParamSlot[source]

Bases:MediumLevelILInstruction

MediumLevelILSharedParamSlot(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyparams:List[MediumLevelILInstruction]

MediumLevelILStore

classMediumLevelILStore[source]

Bases:MediumLevelILInstruction,Store

MediumLevelILStore(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction

MediumLevelILStoreSsa

classMediumLevelILStoreSsa[source]

Bases:MediumLevelILInstruction,Store,SSA

MediumLevelILStoreSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydest_memory:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction
propertysrc_memory:int

MediumLevelILStoreStruct

classMediumLevelILStoreStruct[source]

Bases:MediumLevelILInstruction,Store

MediumLevelILStoreStruct(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:MediumLevelILInstruction

MediumLevelILStoreStructSsa

classMediumLevelILStoreStructSsa[source]

Bases:MediumLevelILInstruction,Store,SSA

MediumLevelILStoreStructSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydest_memory:int
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:MediumLevelILInstruction
propertysrc_memory:int

MediumLevelILSub

classMediumLevelILSub[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILSub(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILSx

classMediumLevelILSx[source]

Bases:MediumLevelILUnaryBase,Arithmetic

MediumLevelILSx(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILSyscall

classMediumLevelILSyscall[source]

Bases:MediumLevelILInstruction,Syscall

MediumLevelILSyscall(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[Variable]
propertyparams:List[MediumLevelILInstruction]

MediumLevelILSyscallSsa

classMediumLevelILSyscallSsa[source]

Bases:MediumLevelILCallBase,Syscall,SSA

MediumLevelILSyscallSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[SSAVariable]
propertyoutput_dest_memory:int
propertyparams:List[MediumLevelILInstruction]
propertysrc_memory:int

MediumLevelILSyscallUntyped

classMediumLevelILSyscallUntyped[source]

Bases:MediumLevelILCallBase,Syscall

MediumLevelILSyscallUntyped(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[Variable]
propertyparams:List[MediumLevelILInstruction]
propertystack:MediumLevelILInstruction

MediumLevelILSyscallUntypedSsa

classMediumLevelILSyscallUntypedSsa[source]

Bases:MediumLevelILCallBase,Syscall,SSA

MediumLevelILSyscallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[SSAVariable]
propertyoutput_dest_memory:int
propertyparams:List[MediumLevelILInstruction]
propertyparams_src_memory:int
propertystack:MediumLevelILInstruction

MediumLevelILTailcall

classMediumLevelILTailcall[source]

Bases:MediumLevelILCallBase,Tailcall

MediumLevelILTailcall(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[Variable]
propertyparams:List[MediumLevelILInstruction]

MediumLevelILTailcallSsa

classMediumLevelILTailcallSsa[source]

Bases:MediumLevelILCallBase,Tailcall,SSA

MediumLevelILTailcallSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[SSAVariable]
propertyoutput_dest_memory:int
propertyparams:List[MediumLevelILInstruction]
propertysrc_memory:int

MediumLevelILTailcallUntyped

classMediumLevelILTailcallUntyped[source]

Bases:MediumLevelILCallBase,Tailcall

MediumLevelILTailcallUntyped(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[Variable]
propertyparams:List[MediumLevelILInstruction]
propertystack:MediumLevelILInstruction

MediumLevelILTailcallUntypedSsa

classMediumLevelILTailcallUntypedSsa[source]

Bases:MediumLevelILCallBase,Tailcall,SSA

MediumLevelILTailcallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:MediumLevelILInstruction
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoutput:List[SSAVariable]
propertyoutput_dest_memory:int
propertyparams:List[MediumLevelILInstruction]
propertystack:MediumLevelILInstruction

MediumLevelILTestBit

classMediumLevelILTestBit[source]

Bases:MediumLevelILComparisonBase

MediumLevelILTestBit(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILTrap

classMediumLevelILTrap[source]

Bases:MediumLevelILInstruction,Terminal

MediumLevelILTrap(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyvector:int

MediumLevelILUnaryBase

classMediumLevelILUnaryBase[source]

Bases:MediumLevelILInstruction,UnaryOperation

MediumLevelILUnaryBase(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction

MediumLevelILUndef

classMediumLevelILUndef[source]

Bases:MediumLevelILInstruction

MediumLevelILUndef(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILUnimpl

classMediumLevelILUnimpl[source]

Bases:MediumLevelILInstruction

MediumLevelILUnimpl(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILUnimplMem

classMediumLevelILUnimplMem[source]

Bases:MediumLevelILInstruction,Memory

MediumLevelILUnimplMem(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:MediumLevelILInstruction

MediumLevelILVar

classMediumLevelILVar[source]

Bases:MediumLevelILInstruction,VariableInstruction

MediumLevelILVar(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:Variable
propertyvar:Variable

MediumLevelILVarAliased

classMediumLevelILVarAliased[source]

Bases:MediumLevelILInstruction,SSA,AliasedVariableInstruction

MediumLevelILVarAliased(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:SSAVariable

MediumLevelILVarAliasedField

classMediumLevelILVarAliasedField[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILVarAliasedField(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:SSAVariable

MediumLevelILVarField

classMediumLevelILVarField[source]

Bases:MediumLevelILInstruction

MediumLevelILVarField(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:Variable

MediumLevelILVarPhi

classMediumLevelILVarPhi[source]

Bases:MediumLevelILInstruction,SetVar,Phi,SSA

MediumLevelILVarPhi(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydest:SSAVariable
propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:List[SSAVariable]
propertyvars_read:List[SSAVariable]

List of variables read by instruction

propertyvars_written:List[SSAVariable]

List of variables written by instruction

MediumLevelILVarSplit

classMediumLevelILVarSplit[source]

Bases:MediumLevelILInstruction

MediumLevelILVarSplit(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
propertyhigh:Variable
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertylow:Variable

MediumLevelILVarSplitSsa

classMediumLevelILVarSplitSsa[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILVarSplitSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
propertyhigh:SSAVariable
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertylow:SSAVariable

MediumLevelILVarSsa

classMediumLevelILVarSsa[source]

Bases:MediumLevelILInstruction,SSAVariableInstruction

MediumLevelILVarSsa(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertysrc:SSAVariable
propertyvar:SSAVariable

MediumLevelILVarSsaField

classMediumLevelILVarSsaField[source]

Bases:MediumLevelILInstruction,SSA

MediumLevelILVarSsaField(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

propertydetailed_operands:List[Tuple[str,int|float|MediumLevelILOperationAndSize|MediumLevelILInstruction|ILIntrinsic|Variable|SSAVariable|List[int]|List[Variable]|List[SSAVariable]|List[MediumLevelILInstruction]|Dict[int,int]|ConstantData,str]]

Returns a list of tuples containing the name of the operand, the operand, and the type of the operand.Useful for iterating over all operands of an instruction and sub-instructions.

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex
propertyoffset:int
propertysrc:SSAVariable

MediumLevelILXor

classMediumLevelILXor[source]

Bases:MediumLevelILBinaryBase,Arithmetic

MediumLevelILXor(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

MediumLevelILZx

classMediumLevelILZx[source]

Bases:MediumLevelILUnaryBase,Arithmetic

MediumLevelILZx(function: ‘MediumLevelILFunction’, expr_index: <function NewType.<locals>.new_type at 0x11204b160>, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: <function NewType.<locals>.new_type at 0x1126a7430>)

__init__(function:MediumLevelILFunction,expr_index:ExpressionIndex,instr:CoreMediumLevelILInstruction,instr_index:InstructionIndex)None
Parameters:
Return type:

None

expr_index:ExpressionIndex
function:MediumLevelILFunction
instr:CoreMediumLevelILInstruction
instr_index:InstructionIndex

SSAVariable

classSSAVariable[source]

Bases:object

SSAVariable(var: ‘variable.Variable’, version: int)

__init__(var:Variable,version:int)None
Parameters:
Return type:

None

propertydead_store_elimination:DeadStoreElimination

returns the dead store elimination setting for this variable (read-only)

propertydef_site:MediumLevelILInstruction|HighLevelILInstruction|None

Gets the IL instructions where this SSAVariable is defined.

propertyfunction:Function

returns the source Function object which this variable belongs to

propertyil_function:function.ILFunctionType

returns the il Function object which this variable belongs to

propertyname:str
propertytype:Type
propertyuse_sites:List[MediumLevelILInstruction|HighLevelILInstruction]

Gets the list of IL instructions where this SSAVariable is used inside of this function.

var:Variable
version:int