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

The MediumLevelILBasicBlock 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

class MediumLevelILExpr 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

class MediumLevelILFunction contains the list of ExpressionIndex objects that make up a…

binaryninja.mediumlevelil.MediumLevelILGoto

binaryninja.mediumlevelil.MediumLevelILIf

binaryninja.mediumlevelil.MediumLevelILImport

binaryninja.mediumlevelil.MediumLevelILInstruction

class MediumLevelILInstruction 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

class CoreMediumLevelILInstruction[source]

Bases: object

CoreMediumLevelILInstruction(operation: binaryninja.enums.MediumLevelILOperation, attributes: int, source_operand: int, size: int, operands: Tuple[binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.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

classmethod from_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
class LLILSSAToMLILExpressionMap[source]

Bases: object

LLILSSAToMLILExpressionMap(lower_index: ‘lowlevelil.ExpressionIndex’, higher_index: binaryninja.mediumlevelil.ExpressionIndex, 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
class MediumLevelILAdc[source]

Bases: MediumLevelILCarryBase

MediumLevelILAdc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILAdd[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAdd(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILAddOverflow[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAddOverflow(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILAddressOf[source]

Bases: MediumLevelILInstruction

MediumLevelILAddressOf(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: Variable
property vars_address_taken: List[Variable]

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

class MediumLevelILAddressOfField[source]

Bases: MediumLevelILInstruction

MediumLevelILAddressOfField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: Variable
class MediumLevelILAnd[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAnd(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILAsr[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAsr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILAssert[source]

Bases: MediumLevelILInstruction

MediumLevelILAssert(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constraint: PossibleValueSet
property src: Variable
class MediumLevelILAssertSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILAssertSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constraint: PossibleValueSet
property src: SSAVariable
class MediumLevelILBasicBlock[source]

Bases: BasicBlock

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

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

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

property instruction_count: int
class MediumLevelILBinaryBase[source]

Bases: MediumLevelILInstruction, BinaryOperation

MediumLevelILBinaryBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property left: MediumLevelILInstruction
property right: MediumLevelILInstruction
class MediumLevelILBoolToInt[source]

Bases: MediumLevelILInstruction

MediumLevelILBoolToInt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction
class MediumLevelILBp[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILBp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCall[source]

Bases: MediumLevelILCallBase, Localcall

MediumLevelILCall(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
class MediumLevelILCallBase[source]

Bases: MediumLevelILInstruction, Call

MediumLevelILCallBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property output: List[Variable | SSAVariable]
property params: List[SSAVariable | Variable | MediumLevelILInstruction]
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[Variable | SSAVariable]

List of variables written by instruction

class MediumLevelILCallOutput[source]

Bases: MediumLevelILInstruction

MediumLevelILCallOutput(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: List[Variable]
property detailed_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.

property vars_written: List[Variable]

List of variables written by instruction

class MediumLevelILCallOutputSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILCallOutputSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: List[SSAVariable]
property dest_memory: int
property detailed_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.

property vars_written: List[SSAVariable]

List of variables written by instruction

class MediumLevelILCallParam[source]

Bases: MediumLevelILInstruction

MediumLevelILCallParam(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: List[MediumLevelILInstruction]
class MediumLevelILCallParamSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILCallParamSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: List[MediumLevelILInstruction]
property src_memory: int
class MediumLevelILCallSsa[source]

Bases: MediumLevelILCallBase, Localcall, SSA

MediumLevelILCallSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property src_memory: int
class MediumLevelILCallUntyped[source]

Bases: MediumLevelILCallBase, Localcall

MediumLevelILCallUntyped(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction
class MediumLevelILCallUntypedSsa[source]

Bases: MediumLevelILCallBase, Localcall, SSA

MediumLevelILCallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property params_src_memory
property stack: MediumLevelILInstruction
class MediumLevelILCarryBase[source]

Bases: MediumLevelILInstruction, Carry

MediumLevelILCarryBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property carry: MediumLevelILInstruction
property detailed_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.

property left: MediumLevelILInstruction
property right: MediumLevelILInstruction
class MediumLevelILCeil[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILCeil(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpE[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpE(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpNe[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpNe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpSge[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSge(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpSgt[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSgt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpSle[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSle(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpSlt[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSlt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpUge[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUge(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpUgt[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUgt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpUle[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUle(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILCmpUlt[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUlt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILComparisonBase[source]

Bases: MediumLevelILBinaryBase, Comparison

MediumLevelILComparisonBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILConst[source]

Bases: MediumLevelILConstBase

MediumLevelILConst(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

class MediumLevelILConstBase[source]

Bases: MediumLevelILInstruction, Constant

MediumLevelILConstBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILConstData[source]

Bases: MediumLevelILConstBase

MediumLevelILConstData(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: ConstantData
property constant_data: ConstantData
property detailed_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.

class MediumLevelILConstPtr[source]

Bases: MediumLevelILConstBase

MediumLevelILConstPtr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

property string: Tuple[str, StringType] | None
class MediumLevelILDivs[source]

Bases: MediumLevelILBinaryBase, Arithmetic, Signed

MediumLevelILDivs(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILDivsDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision, Signed

MediumLevelILDivsDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILDivu[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILDivu(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILDivuDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision

MediumLevelILDivuDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILExpr[source]

Bases: object

class MediumLevelILExpr hold the index of IL Expressions.

Note

Deprecated. Use ExpressionIndex instead

__init__(index)[source]
property index
class MediumLevelILExternPtr[source]

Bases: MediumLevelILConstBase

MediumLevelILExternPtr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

property offset: int
class MediumLevelILFabs[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFabs(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFadd[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFadd(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpE[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpE(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpGe[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpGe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpGt[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpGt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpLe[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpLe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpLt[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpLt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpNe[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpNe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpO[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpO(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFcmpUo[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpUo(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFdiv[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFdiv(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFloatConst[source]

Bases: MediumLevelILConstBase, FloatingPoint

MediumLevelILFloatConst(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: float
property detailed_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.

class MediumLevelILFloatConv[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFloatConv(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFloatToInt[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFloatToInt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFloor[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFloor(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFmul[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFmul(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFneg[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFneg(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILForceVer[source]

Bases: MediumLevelILInstruction

MediumLevelILForceVer(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property src: Variable
class MediumLevelILForceVerSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILForceVerSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property src: SSAVariable
class MediumLevelILFreeVarSlot[source]

Bases: MediumLevelILInstruction, RegisterStack

MediumLevelILFreeVarSlot(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property detailed_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.

class MediumLevelILFreeVarSlotSsa[source]

Bases: MediumLevelILInstruction, SSA, RegisterStack

MediumLevelILFreeVarSlotSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property prev: SSAVariable
class MediumLevelILFsqrt[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFsqrt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFsub[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFsub(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFtrunc[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFtrunc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILFunction[source]

Bases: object

class MediumLevelILFunction contains the list of ExpressionIndex objects that make up a function. ExpressionIndex objects can be added to the MediumLevelILFunction by calling append and passing the result of the various class methods 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 expression a to expression b returning an expression of size 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 expression add.<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 expression a to expression b with carry from carry returning an expression of size 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 expression adc.<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 of var

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 of var at the offset offset

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 expression a and expression b returning an expression of size 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 expression and.<size>(a, b)

Return type:

ExpressionIndex

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

append adds the ExpressionIndex expr to the current MediumLevelILFunction.

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

  • source_location (ILSourceLocation | None) –

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 expression a by expression b returning an expression of size 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 expression asr.<size>(a, b)

Return type:

ExpressionIndex

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

assert_expr assert constraint is the value of the given variable src. Used when setting user variable values.

Parameters:
Returns:

The expression ASSERT(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 size size converting the boolean expression a 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 expression dest with the parameters defined in params returning values in the variables in output.

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 expression output = 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 expression dest with the parameters defined in params returning values in the variables in output where stack resolution could not be determined and the top of the stack has to be specified in stack

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 expression output = 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 expression roundint.<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 size size checking if expression a is equal to expression b

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 size size checking if expression a is not equal to expression b

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 size size checking if expression a is signed greater than or equal to expression b

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 size size checking if expression a is signed greater than or equal to expression b

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 size size checking if expression a is signed less than or equal to expression b

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 size size checking if expression a is signed less than expression b

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 size size checking if expression a is unsigned greater than or equal to expression b

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 size size checking if expression a is unsigned greater than or equal to expression b

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 size size checking if expression a is unsigned less than or equal to expression b

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 size size checking if expression a is unsigned less than expression b

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 integer value of size size

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 data data

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 pointer value of size size

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 adds an expression to the function which is equivalent to the given expression

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 function If provided, the function sub_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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression divs.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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression divu.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 expression a by expression b and returns an expression. Both the operands and return value are 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 expression divs.<size>(a, b)

Return type:

ExpressionIndex

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

div_unsigned unsigned divides expression a by expression b and returns an expression. Both the operands and return value are 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 expression divu.<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 pointer value at offset offset of size size

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 expression value of size size

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 expression fabs.<size>(value)

Return type:

ExpressionIndex

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

float_add adds floating point expression a to expression b and returning an expression of size 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 expression fadd.<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 size size checking if expression a is equal to expression b

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 expression a f== 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 size size checking if expression a is greater than or equal to expression b

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 expression a f>= 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 size size checking if expression a is greater than expression b

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 expression a f> 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 size size checking if expression a is less than or equal to expression b

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 expression a f<= 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 size size checking if expression a is less than expression b

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 expression a f< 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 size size checking if expression a is not equal to expression b

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 expression a f!= 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 size size checking if expression a is ordered relative to expression b

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 expression is_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 size size checking if expression a is unordered relative to expression b

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 expression is_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 value value

Parameters:
  • value (float) – float value for the constant

  • loc (ILSourceLocation) – location of returned expression

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 point value value with size size

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 value value

Parameters:
  • value (float) – float value for the constant

  • loc (ILSourceLocation) – location of returned expression

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 expression value to size size

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

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression fconvert.<size>(value)

Return type:

ExpressionIndex

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

float_div divides floating point expression a by expression b and returning an expression of size 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 expression fdiv.<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 expression a by expression b and returning an expression of size 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 expression fmul.<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 expression value of size size

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

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression fneg.<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 expression value of size size

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 expression sqrt.<size>(value)

Return type:

ExpressionIndex

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

float_sub subtracts floating point expression b from expression a and returning an expression of size 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 expression fsub.<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 expression value of size size

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 expression int.<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 expression roundint.<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 expression roundint.<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 variable dest in src Effectively, this is like saying src = dest, which analysis can then use as a new variable 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 expression FORCE_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 variable var which is in a register stack

Parameters:
Returns:

the expression free_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 to True

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

  • 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) BasicBlock | None[source]

get_basic_block_at returns the BasicBlock at the given MLIL instruction index.

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:

BasicBlock | 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 with get_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 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 which var is live. If include_last_use is False, the last use of the variable will not be included in the list (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 which var 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 the if expression which depending on condition operand jumps to the MediumLevelILLabel t when the condition expression operand is non-zero and f 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 address value and size size

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 expression value of size size

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 expression float.<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 if ssa_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 if ssa_var is live at a given point in the function; counts phi’s as uses

Parameters:
  • ssa_var (SSAVariable) –

  • instr (InstructionIndex) –

Return type:

bool

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

is_var_live_at determines if var 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 expression dest

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

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression jump(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 in targets choosing the target in targets based on the value calculated by dest

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 expression jump(dest)

Return type:

ExpressionIndex

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

load Reads size bytes from the expression src

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 Reads size bytes at the offset offset from the expression src

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 rendered src->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 expression a by expression b returning an expression of size 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 expression lsr.<size>(a, b)

Return type:

ExpressionIndex

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

low_part truncates the expression in value to size 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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression mods.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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression modu.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 expression a by expression b and returns an expression. Both the operands and return value are 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 expression mods.<size>(a, b)

Return type:

ExpressionIndex

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

mod_unsigned unsigned modulus expression a by expression b and returns an expression. Both the operands and return value are 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 expression modu.<size>(a, b)

Return type:

ExpressionIndex

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

mult multiplies expression a by expression b and returns an expression. Both the operands and return value are size 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 expression mult.<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 expression a by expression b and returns an expression. Both the operands are size bytes and the returned expression is of size 2*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 expression muls.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 expression a by expression b and returnisan expression. Both the operands are size bytes and the returned expression is of size 2*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 expression mulu.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 expression value of size size

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

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression neg.<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 expression noreturn

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 expression value of size size

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 expression not.<size>(value)

Return type:

ExpressionIndex

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

or_expr bitwise or’s expression a and expression b returning an expression of size 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 expression or.<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 preparation of copying the instructions from the block src

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 preparation of copying instructions from src

Parameters:

src (MediumLevelILFunction) – function about to be copied from

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

replace_expr allows modification of MLIL expressions

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 in sources.

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

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression return sources...

Return type:

ExpressionIndex

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

rotate_left bitwise rotates left expression a by expression b returning an expression of size 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 expression rol.<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 expression a by expression b with carry from carry returning an expression of size 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 expression rlc.<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 expression a by expression b returning an expression of size 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 expression ror.<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 expression a by expression b with carry from carry returning an expression of size 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 expression rrc.<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 expression roundint.<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 persistent and get lost after a database save and reload. To make persistent changes to the analysis, one should use other APIs to, for example, change the type of variables. The analysis will then propagate the type of the variable and 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 variable dest of size size to the expression src

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 expression dest = 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 field offset of variable dest of size size to the expression src

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 expression dest: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 uses hi and lo as a single extended variable of size 2*size setting hi:lo to the expression src

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 expression hi:lo = src

Return type:

ExpressionIndex

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

shift_left left shifts expression a by expression b returning an expression of size 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 expression lsl.<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 in value to size 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 expression sx.<size>(value)

Return type:

ExpressionIndex

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

store Writes size bytes to expression dest read from expression src

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 Writes size bytes to expression dest at the offset offset read from expression src

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 rendered dest->offset.size)

Return type:

ExpressionIndex

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

sub subtracts expression a to expression b returning an expression of size 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 expression sub.<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 expression a to expression b with borrow from carry returning an expression of size 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 expression sbb.<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 call with the parameters defined in params returning values in the variables in output.

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

  • params (List[ExpressionIndex]) – parameter variables

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression output = 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 call with the parameters defined in params returning values in the variables in output where stack resolution could not be determined and the top of the stack has to be specified in stack

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 expression output = 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 expression dest with the parameters defined in params returning values in the variables in output.

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 expression output = 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 expression dest with the parameters defined in params returning values in the variables in output where stack resolution could not be determined and the top of the stack has to be specified in stack

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 expression output = 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 size size that tells whether expression a has its bit with an index of the expression b 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 by a given expr_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 in new_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 integer value.

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 for each instruction and sub-instruction. See the Developer 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:
>>> def find_constants(instr) -> Optional[int]:
...     if isinstance(instr, Constant):
...         return instr.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 but aren’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’t implemented.

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 expression addr of size size 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 variable src of size size

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 offset offset from variable src of size size

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 expression var:offset.size

Return type:

ExpressionIndex

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

var_split combines variables hi and lo of size size into an expression of size 2*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 expression hi: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 function for 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: Use MediumLevelILFunction.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: Use MediumLevelILFunction.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: Use MediumLevelILFunction.traverse instead.

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

xor_expr xor’s expression a and expression b returning an expression of size 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 expression xor.<size>(a, b)

Return type:

ExpressionIndex

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

zero_extend zero-extends the expression in value to size 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 zx.<size>(value)

Return type:

ExpressionIndex

property aliased_vars: List[Variable]

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

property arch: Architecture
property basic_blocks: MediumLevelILBasicBlockList
property current_address: int

Current IL Address (read/write)

property high_level_il: HighLevelILFunction | None

High level IL for this medium level IL.

property hlil: HighLevelILFunction | None
property il_form: FunctionGraphType
property instructions: Generator[MediumLevelILInstruction, None, None]

A generator of mlil instructions of the current function

property llil: LowLevelILFunction | None

Alias for low_level_il

property low_level_il: LowLevelILFunction | None

Low level IL for this function

property non_ssa_form: MediumLevelILFunction | None

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

property source_function: Function
property ssa_form: MediumLevelILFunction | None

Medium level IL in SSA form (read-only)

property ssa_vars: List[SSAVariable]

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

property vars: List[Variable]

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

property view: BinaryView
class MediumLevelILGoto[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILGoto(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: InstructionIndex
property detailed_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.

class MediumLevelILIf[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILIf(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property condition: MediumLevelILInstruction
property detailed_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.

property false: InstructionIndex
property true: InstructionIndex
class MediumLevelILImport[source]

Bases: MediumLevelILConstBase

MediumLevelILImport(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

class MediumLevelILInstruction[source]

Bases: BaseILInstruction

class MediumLevelILInstruction Medium Level Intermediate Language Instructions are infinite length tree-based instructions. Tree-based instructions use infix notation with the left hand operand being the destination operand. Infix notation is thus more natural to read than other notations (e.g. x86 mov eax, 0 vs. MLIL eax = 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 function sub_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

classmethod create(func: MediumLevelILFunction, expr_index: ExpressionIndex, instr_index: InstructionIndex | None = None) MediumLevelILInstruction[source]
Parameters:
  • func (MediumLevelILFunction) –

  • expr_index (ExpressionIndex) –

  • instr_index (InstructionIndex | None) –

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 passed to Function.split_var to split a variable at a definition. The given var is the assigned 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

static show_mlil_hierarchy()[source]

Opens a new tab showing the MLIL hierarchy which includes classes which can easily 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 the result of the callback function for each node in the tree. Arguments can be passed to the callback function using args and kwargs. See the Developer 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:
>>> def get_constant_less_than_value(inst: MediumLevelILInstruction, value: int) -> int:
>>>     if isinstance(inst, Constant) and inst.constant < value:
>>>         return inst.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:
>>> def visitor(_a, inst, _c, _d) -> bool:
>>>     if isinstance(inst, Constant):
>>>         print(f"Found constant: {inst.constant}")
>>>         return False # 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
>>> for inst in current_mlil.instructions:
>>>     inst.visit(visitor)
Return type:

bool

Deprecated since version 4.0.4907: Use MediumLevelILInstruction.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: Use MediumLevelILInstruction.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: Use MediumLevelILInstruction.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')]}
property address: int
property attributes: Set[ILInstructionAttribute]

The set of optional attributes placed on the instruction

property branch_dependence: Mapping[int, ILBranchDependence]

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

property core_operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex]
property detailed_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
property expr_type: Type | None

Type of expression

function: MediumLevelILFunction
property high_level_il: HighLevelILInstruction | None

High level IL form of this expression

property hlil: HighLevelILInstruction | None

Alias for high_level_il

property hlils: List[HighLevelILInstruction]
property il_basic_block: MediumLevelILBasicBlock

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

instr: CoreMediumLevelILInstruction
instr_index: InstructionIndex
property instruction_operands: List[MediumLevelILInstruction]
property llil: LowLevelILInstruction | None

Alias for low_level_il

property llils: List[LowLevelILInstruction]
property low_level_il: LowLevelILInstruction | None

Low level IL form of this expression

property non_ssa_form: MediumLevelILInstruction

Non-SSA form of expression (read-only)

property operands: 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 for src, dest, params, etc where appropriate.

property operation: MediumLevelILOperation
property possible_values: PossibleValueSet

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

property postfix_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

property prefix_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

property raw_operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex]

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

property size: int
property source_location: ILSourceLocation
property source_operand: ExpressionIndex
property ssa_form: MediumLevelILInstruction

SSA form of expression (read-only)

property ssa_memory_version: int

Version of active memory contents in SSA form for this instruction

property ssa_memory_version_after: int

Version of active memory contents in SSA form after this instruction

property tokens: List[InstructionTextToken]

MLIL tokens (read-only)

property value: RegisterValue

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

property vars_address_taken: List[Variable | SSAVariable]

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

property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[Variable | SSAVariable]

List of variables written by instruction

class MediumLevelILIntToFloat[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILIntToFloat(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILIntrinsic[source]

Bases: MediumLevelILInstruction, Intrinsic

MediumLevelILIntrinsic(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property intrinsic: ILIntrinsic
property output: List[Variable]
property params: List[MediumLevelILInstruction]
property vars_read: List[Variable]

List of variables read by instruction

property vars_written: List[Variable]

List of variables written by instruction

class MediumLevelILIntrinsicSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILIntrinsicSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property intrinsic: ILIntrinsic
property output: List[SSAVariable]
property params: List[MediumLevelILInstruction]
property vars_read: List[SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

class MediumLevelILJump[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILJump(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

class MediumLevelILJumpTo[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILJumpTo(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property targets: Dict[int, int]
class MediumLevelILLabel[source]

Bases: object

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

handle (BNMediumLevelILLabel | None) –

property operand: InstructionIndex
property ref: bool
property resolved: bool
class MediumLevelILLoad[source]

Bases: MediumLevelILInstruction, Load

MediumLevelILLoad(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction
class MediumLevelILLoadSsa[source]

Bases: MediumLevelILInstruction, Load, SSA

MediumLevelILLoadSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction
property src_memory: int
class MediumLevelILLoadStruct[source]

Bases: MediumLevelILInstruction, Load

MediumLevelILLoadStruct(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: MediumLevelILInstruction
class MediumLevelILLoadStructSsa[source]

Bases: MediumLevelILInstruction, Load, SSA

MediumLevelILLoadStructSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: MediumLevelILInstruction
property src_memory: int
class MediumLevelILLowPart[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILLowPart(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILLsl[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILLsl(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILLsr[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILLsr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILMemPhi[source]

Bases: MediumLevelILInstruction, Memory, Phi

MediumLevelILMemPhi(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest_memory: int
property detailed_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.

property src_memory: List[int]
class MediumLevelILMemoryIntrinsicOutputSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILMemoryIntrinsicOutputSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest_memory: int
property detailed_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.

property output: List[SSAVariable]
class MediumLevelILMemoryIntrinsicSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILMemoryIntrinsicSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest_memory: int
property detailed_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.

property intrinsic: ILIntrinsic
property output: List[SSAVariable]
property params: List[MediumLevelILInstruction]
property src_memory: int
class MediumLevelILMods[source]

Bases: MediumLevelILBinaryBase, Arithmetic, Signed

MediumLevelILMods(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILModsDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision, Signed

MediumLevelILModsDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILModu[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILModu(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILModuDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision

MediumLevelILModuDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILMul[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILMul(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILMulsDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision, Signed

MediumLevelILMulsDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILMuluDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision

MediumLevelILMuluDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILNeg[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILNeg(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILNop[source]

Bases: MediumLevelILInstruction

MediumLevelILNop(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILNoret[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILNoret(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILNot[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILNot(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILOperationAndSize[source]

Bases: object

MediumLevelILOperationAndSize(operation: binaryninja.enums.MediumLevelILOperation, size: int)

__init__(operation: MediumLevelILOperation, size: int) None
Parameters:
Return type:

None

operation: MediumLevelILOperation
size: int
class MediumLevelILOr[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILOr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILRet[source]

Bases: MediumLevelILInstruction, Return

MediumLevelILRet(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: List[MediumLevelILInstruction]
class MediumLevelILRetHint[source]

Bases: MediumLevelILInstruction, ControlFlow

MediumLevelILRetHint(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

class MediumLevelILRlc[source]

Bases: MediumLevelILCarryBase

MediumLevelILRlc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILRol[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILRol(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILRor[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILRor(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILRoundToInt[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILRoundToInt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILRrc[source]

Bases: MediumLevelILCarryBase

MediumLevelILRrc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILSbb[source]

Bases: MediumLevelILCarryBase

MediumLevelILSbb(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILSeparateParamList[source]

Bases: MediumLevelILInstruction

MediumLevelILSeparateParamList(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property params: List[MediumLevelILInstruction]
class MediumLevelILSetVar[source]

Bases: MediumLevelILInstruction, SetVar

MediumLevelILSetVar(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property detailed_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.

property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[Variable]

List of variables written by instruction

class MediumLevelILSetVarAliased[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarAliased(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property prev: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

class MediumLevelILSetVarAliasedField[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarAliasedField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property offset: int
property prev: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[SSAVariable]

List of variables read by instruction

class MediumLevelILSetVarField[source]

Bases: MediumLevelILInstruction, SetVar

MediumLevelILSetVarField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property detailed_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.

property offset: int
property src: MediumLevelILInstruction
class MediumLevelILSetVarSplit[source]

Bases: MediumLevelILInstruction, SetVar

MediumLevelILSetVarSplit(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: Variable
property low: Variable
property src: MediumLevelILInstruction
property vars_written: List[Variable]

List of variables written by instruction

class MediumLevelILSetVarSplitSsa[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarSplitSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: SSAVariable
property low: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

class MediumLevelILSetVarSsa[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

class MediumLevelILSetVarSsaField[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarSsaField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property offset: int
property prev: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

class MediumLevelILSharedParamSlot[source]

Bases: MediumLevelILInstruction

MediumLevelILSharedParamSlot(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property params: List[MediumLevelILInstruction]
class MediumLevelILStore[source]

Bases: MediumLevelILInstruction, Store

MediumLevelILStore(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property src: MediumLevelILInstruction
class MediumLevelILStoreSsa[source]

Bases: MediumLevelILInstruction, Store, SSA

MediumLevelILStoreSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property dest_memory: int
property detailed_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.

property src: MediumLevelILInstruction
property src_memory: int
class MediumLevelILStoreStruct[source]

Bases: MediumLevelILInstruction, Store

MediumLevelILStoreStruct(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property offset: int
property src: MediumLevelILInstruction
class MediumLevelILStoreStructSsa[source]

Bases: MediumLevelILInstruction, Store, SSA

MediumLevelILStoreStructSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property dest_memory: int
property detailed_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.

property offset: int
property src: MediumLevelILInstruction
property src_memory: int
class MediumLevelILSub[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILSub(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILSx[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILSx(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILSyscall[source]

Bases: MediumLevelILInstruction, Syscall

MediumLevelILSyscall(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
class MediumLevelILSyscallSsa[source]

Bases: MediumLevelILCallBase, Syscall, SSA

MediumLevelILSyscallSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property src_memory: int
class MediumLevelILSyscallUntyped[source]

Bases: MediumLevelILCallBase, Syscall

MediumLevelILSyscallUntyped(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction
class MediumLevelILSyscallUntypedSsa[source]

Bases: MediumLevelILCallBase, Syscall, SSA

MediumLevelILSyscallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property params_src_memory: int
property stack: MediumLevelILInstruction
class MediumLevelILTailcall[source]

Bases: MediumLevelILCallBase, Tailcall

MediumLevelILTailcall(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
class MediumLevelILTailcallSsa[source]

Bases: MediumLevelILCallBase, Tailcall, SSA

MediumLevelILTailcallSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property src_memory: int
class MediumLevelILTailcallUntyped[source]

Bases: MediumLevelILCallBase, Tailcall

MediumLevelILTailcallUntyped(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction
class MediumLevelILTailcallUntypedSsa[source]

Bases: MediumLevelILCallBase, Tailcall, SSA

MediumLevelILTailcallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction
class MediumLevelILTestBit[source]

Bases: MediumLevelILComparisonBase

MediumLevelILTestBit(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILTrap[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILTrap(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property vector: int
class MediumLevelILUnaryBase[source]

Bases: MediumLevelILInstruction, UnaryOperation

MediumLevelILUnaryBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction
class MediumLevelILUndef[source]

Bases: MediumLevelILInstruction

MediumLevelILUndef(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILUnimpl[source]

Bases: MediumLevelILInstruction

MediumLevelILUnimpl(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILUnimplMem[source]

Bases: MediumLevelILInstruction, Memory

MediumLevelILUnimplMem(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction
class MediumLevelILVar[source]

Bases: MediumLevelILInstruction, VariableInstruction

MediumLevelILVar(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: Variable
property var: Variable
class MediumLevelILVarAliased[source]

Bases: MediumLevelILInstruction, SSA, AliasedVariableInstruction

MediumLevelILVarAliased(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: SSAVariable
class MediumLevelILVarAliasedField[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILVarAliasedField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: SSAVariable
class MediumLevelILVarField[source]

Bases: MediumLevelILInstruction

MediumLevelILVarField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: Variable
class MediumLevelILVarPhi[source]

Bases: MediumLevelILInstruction, SetVar, Phi, SSA

MediumLevelILVarPhi(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property src: List[SSAVariable]
property vars_read: List[SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

class MediumLevelILVarSplit[source]

Bases: MediumLevelILInstruction

MediumLevelILVarSplit(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: Variable
property low: Variable
class MediumLevelILVarSplitSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILVarSplitSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: SSAVariable
property low: SSAVariable
class MediumLevelILVarSsa[source]

Bases: MediumLevelILInstruction, SSAVariableInstruction

MediumLevelILVarSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: SSAVariable
property var: SSAVariable
class MediumLevelILVarSsaField[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILVarSsaField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: SSAVariable
class MediumLevelILXor[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILXor(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class MediumLevelILZx[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILZx(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

class SSAVariable[source]

Bases: object

SSAVariable(var: ‘variable.Variable’, version: int)

__init__(var: Variable, version: int) None
Parameters:
Return type:

None

property dead_store_elimination: DeadStoreElimination

returns the dead store elimination setting for this variable (read-only)

property def_site: MediumLevelILInstruction | HighLevelILInstruction | None

Gets the IL instructions where this SSAVariable is defined.

property function: Function

returns the source Function object which this variable belongs to

property il_function: function.ILFunctionType

returns the il Function object which this variable belongs to

property name: str
property type: Type
property use_sites: List[MediumLevelILInstruction | HighLevelILInstruction]

Gets the list of IL instructions where this SSAVariable is used inside of this function.

var: Variable
version: int

CoreMediumLevelILInstruction

class CoreMediumLevelILInstruction[source]

Bases: object

CoreMediumLevelILInstruction(operation: binaryninja.enums.MediumLevelILOperation, attributes: int, source_operand: int, size: int, operands: Tuple[binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.ExpressionIndex, binaryninja.mediumlevelil.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

classmethod from_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

class LLILSSAToMLILExpressionMap[source]

Bases: object

LLILSSAToMLILExpressionMap(lower_index: ‘lowlevelil.ExpressionIndex’, higher_index: binaryninja.mediumlevelil.ExpressionIndex, 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

class MediumLevelILAdc[source]

Bases: MediumLevelILCarryBase

MediumLevelILAdc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILAdd

class MediumLevelILAdd[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAdd(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILAddOverflow

class MediumLevelILAddOverflow[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAddOverflow(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILAddressOf

class MediumLevelILAddressOf[source]

Bases: MediumLevelILInstruction

MediumLevelILAddressOf(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: Variable
property vars_address_taken: List[Variable]

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

MediumLevelILAddressOfField

class MediumLevelILAddressOfField[source]

Bases: MediumLevelILInstruction

MediumLevelILAddressOfField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: Variable

MediumLevelILAnd

class MediumLevelILAnd[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAnd(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILAsr

class MediumLevelILAsr[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILAsr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILAssert

class MediumLevelILAssert[source]

Bases: MediumLevelILInstruction

MediumLevelILAssert(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constraint: PossibleValueSet
property src: Variable

MediumLevelILAssertSsa

class MediumLevelILAssertSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILAssertSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constraint: PossibleValueSet
property src: SSAVariable

MediumLevelILBasicBlock

class MediumLevelILBasicBlock[source]

Bases: BasicBlock

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

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

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

property instruction_count: int

MediumLevelILBinaryBase

class MediumLevelILBinaryBase[source]

Bases: MediumLevelILInstruction, BinaryOperation

MediumLevelILBinaryBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property left: MediumLevelILInstruction
property right: MediumLevelILInstruction

MediumLevelILBoolToInt

class MediumLevelILBoolToInt[source]

Bases: MediumLevelILInstruction

MediumLevelILBoolToInt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction

MediumLevelILBp

class MediumLevelILBp[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILBp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCall

class MediumLevelILCall[source]

Bases: MediumLevelILCallBase, Localcall

MediumLevelILCall(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]

MediumLevelILCallBase

class MediumLevelILCallBase[source]

Bases: MediumLevelILInstruction, Call

MediumLevelILCallBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property output: List[Variable | SSAVariable]
property params: List[SSAVariable | Variable | MediumLevelILInstruction]
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[Variable | SSAVariable]

List of variables written by instruction

MediumLevelILCallOutput

class MediumLevelILCallOutput[source]

Bases: MediumLevelILInstruction

MediumLevelILCallOutput(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: List[Variable]
property detailed_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.

property vars_written: List[Variable]

List of variables written by instruction

MediumLevelILCallOutputSsa

class MediumLevelILCallOutputSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILCallOutputSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: List[SSAVariable]
property dest_memory: int
property detailed_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.

property vars_written: List[SSAVariable]

List of variables written by instruction

MediumLevelILCallParam

class MediumLevelILCallParam[source]

Bases: MediumLevelILInstruction

MediumLevelILCallParam(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: List[MediumLevelILInstruction]

MediumLevelILCallParamSsa

class MediumLevelILCallParamSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILCallParamSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: List[MediumLevelILInstruction]
property src_memory: int

MediumLevelILCallSsa

class MediumLevelILCallSsa[source]

Bases: MediumLevelILCallBase, Localcall, SSA

MediumLevelILCallSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property src_memory: int

MediumLevelILCallUntyped

class MediumLevelILCallUntyped[source]

Bases: MediumLevelILCallBase, Localcall

MediumLevelILCallUntyped(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction

MediumLevelILCallUntypedSsa

class MediumLevelILCallUntypedSsa[source]

Bases: MediumLevelILCallBase, Localcall, SSA

MediumLevelILCallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property params_src_memory
property stack: MediumLevelILInstruction

MediumLevelILCarryBase

class MediumLevelILCarryBase[source]

Bases: MediumLevelILInstruction, Carry

MediumLevelILCarryBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property carry: MediumLevelILInstruction
property detailed_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.

property left: MediumLevelILInstruction
property right: MediumLevelILInstruction

MediumLevelILCeil

class MediumLevelILCeil[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILCeil(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpE

class MediumLevelILCmpE[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpE(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpNe

class MediumLevelILCmpNe[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpNe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpSge

class MediumLevelILCmpSge[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSge(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpSgt

class MediumLevelILCmpSgt[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSgt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpSle

class MediumLevelILCmpSle[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSle(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpSlt

class MediumLevelILCmpSlt[source]

Bases: MediumLevelILComparisonBase, Signed

MediumLevelILCmpSlt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpUge

class MediumLevelILCmpUge[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUge(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpUgt

class MediumLevelILCmpUgt[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUgt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpUle

class MediumLevelILCmpUle[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUle(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILCmpUlt

class MediumLevelILCmpUlt[source]

Bases: MediumLevelILComparisonBase

MediumLevelILCmpUlt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILComparisonBase

class MediumLevelILComparisonBase[source]

Bases: MediumLevelILBinaryBase, Comparison

MediumLevelILComparisonBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILConst

class MediumLevelILConst[source]

Bases: MediumLevelILConstBase

MediumLevelILConst(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

MediumLevelILConstBase

class MediumLevelILConstBase[source]

Bases: MediumLevelILInstruction, Constant

MediumLevelILConstBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILConstData

class MediumLevelILConstData[source]

Bases: MediumLevelILConstBase

MediumLevelILConstData(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: ConstantData
property constant_data: ConstantData
property detailed_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.

MediumLevelILConstPtr

class MediumLevelILConstPtr[source]

Bases: MediumLevelILConstBase

MediumLevelILConstPtr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

property string: Tuple[str, StringType] | None

MediumLevelILDivs

class MediumLevelILDivs[source]

Bases: MediumLevelILBinaryBase, Arithmetic, Signed

MediumLevelILDivs(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILDivsDp

class MediumLevelILDivsDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision, Signed

MediumLevelILDivsDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILDivu

class MediumLevelILDivu[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILDivu(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILDivuDp

class MediumLevelILDivuDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision

MediumLevelILDivuDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILExpr

class MediumLevelILExpr[source]

Bases: object

class MediumLevelILExpr hold the index of IL Expressions.

Note

Deprecated. Use ExpressionIndex instead

__init__(index)[source]
property index

MediumLevelILExternPtr

class MediumLevelILExternPtr[source]

Bases: MediumLevelILConstBase

MediumLevelILExternPtr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

property offset: int

MediumLevelILFabs

class MediumLevelILFabs[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFabs(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFadd

class MediumLevelILFadd[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFadd(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpE

class MediumLevelILFcmpE[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpE(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpGe

class MediumLevelILFcmpGe[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpGe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpGt

class MediumLevelILFcmpGt[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpGt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpLe

class MediumLevelILFcmpLe[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpLe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpLt

class MediumLevelILFcmpLt[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpLt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpNe

class MediumLevelILFcmpNe[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpNe(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpO

class MediumLevelILFcmpO[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpO(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFcmpUo

class MediumLevelILFcmpUo[source]

Bases: MediumLevelILComparisonBase, FloatingPoint

MediumLevelILFcmpUo(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFdiv

class MediumLevelILFdiv[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFdiv(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFloatConst

class MediumLevelILFloatConst[source]

Bases: MediumLevelILConstBase, FloatingPoint

MediumLevelILFloatConst(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: float
property detailed_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.

MediumLevelILFloatConv

class MediumLevelILFloatConv[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFloatConv(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFloatToInt

class MediumLevelILFloatToInt[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFloatToInt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFloor

class MediumLevelILFloor[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFloor(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFmul

class MediumLevelILFmul[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFmul(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFneg

class MediumLevelILFneg[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFneg(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILForceVer

class MediumLevelILForceVer[source]

Bases: MediumLevelILInstruction

MediumLevelILForceVer(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property src: Variable

MediumLevelILForceVerSsa

class MediumLevelILForceVerSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILForceVerSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property src: SSAVariable

MediumLevelILFreeVarSlot

class MediumLevelILFreeVarSlot[source]

Bases: MediumLevelILInstruction, RegisterStack

MediumLevelILFreeVarSlot(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property detailed_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.

MediumLevelILFreeVarSlotSsa

class MediumLevelILFreeVarSlotSsa[source]

Bases: MediumLevelILInstruction, SSA, RegisterStack

MediumLevelILFreeVarSlotSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property prev: SSAVariable

MediumLevelILFsqrt

class MediumLevelILFsqrt[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFsqrt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFsub

class MediumLevelILFsub[source]

Bases: MediumLevelILBinaryBase, Arithmetic, FloatingPoint

MediumLevelILFsub(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFtrunc

class MediumLevelILFtrunc[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILFtrunc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILFunction

class MediumLevelILFunction[source]

Bases: object

class MediumLevelILFunction contains the list of ExpressionIndex objects that make up a function. ExpressionIndex objects can be added to the MediumLevelILFunction by calling append and passing the result of the various class methods 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 expression a to expression b returning an expression of size 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 expression add.<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 expression a to expression b with carry from carry returning an expression of size 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 expression adc.<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 of var

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 of var at the offset offset

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 expression a and expression b returning an expression of size 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 expression and.<size>(a, b)

Return type:

ExpressionIndex

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

append adds the ExpressionIndex expr to the current MediumLevelILFunction.

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

  • source_location (ILSourceLocation | None) –

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 expression a by expression b returning an expression of size 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 expression asr.<size>(a, b)

Return type:

ExpressionIndex

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

assert_expr assert constraint is the value of the given variable src. Used when setting user variable values.

Parameters:
Returns:

The expression ASSERT(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 size size converting the boolean expression a 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 expression dest with the parameters defined in params returning values in the variables in output.

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 expression output = 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 expression dest with the parameters defined in params returning values in the variables in output where stack resolution could not be determined and the top of the stack has to be specified in stack

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 expression output = 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 expression roundint.<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 size size checking if expression a is equal to expression b

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 size size checking if expression a is not equal to expression b

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 size size checking if expression a is signed greater than or equal to expression b

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 size size checking if expression a is signed greater than or equal to expression b

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 size size checking if expression a is signed less than or equal to expression b

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 size size checking if expression a is signed less than expression b

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 size size checking if expression a is unsigned greater than or equal to expression b

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 size size checking if expression a is unsigned greater than or equal to expression b

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 size size checking if expression a is unsigned less than or equal to expression b

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 size size checking if expression a is unsigned less than expression b

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 integer value of size size

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 data data

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 pointer value of size size

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 adds an expression to the function which is equivalent to the given expression

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 function If provided, the function sub_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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression divs.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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression divu.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 expression a by expression b and returns an expression. Both the operands and return value are 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 expression divs.<size>(a, b)

Return type:

ExpressionIndex

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

div_unsigned unsigned divides expression a by expression b and returns an expression. Both the operands and return value are 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 expression divu.<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 pointer value at offset offset of size size

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 expression value of size size

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 expression fabs.<size>(value)

Return type:

ExpressionIndex

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

float_add adds floating point expression a to expression b and returning an expression of size 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 expression fadd.<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 size size checking if expression a is equal to expression b

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 expression a f== 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 size size checking if expression a is greater than or equal to expression b

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 expression a f>= 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 size size checking if expression a is greater than expression b

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 expression a f> 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 size size checking if expression a is less than or equal to expression b

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 expression a f<= 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 size size checking if expression a is less than expression b

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 expression a f< 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 size size checking if expression a is not equal to expression b

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 expression a f!= 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 size size checking if expression a is ordered relative to expression b

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 expression is_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 size size checking if expression a is unordered relative to expression b

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 expression is_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 value value

Parameters:
  • value (float) – float value for the constant

  • loc (ILSourceLocation) – location of returned expression

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 point value value with size size

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 value value

Parameters:
  • value (float) – float value for the constant

  • loc (ILSourceLocation) – location of returned expression

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 expression value to size size

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

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression fconvert.<size>(value)

Return type:

ExpressionIndex

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

float_div divides floating point expression a by expression b and returning an expression of size 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 expression fdiv.<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 expression a by expression b and returning an expression of size 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 expression fmul.<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 expression value of size size

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

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression fneg.<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 expression value of size size

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 expression sqrt.<size>(value)

Return type:

ExpressionIndex

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

float_sub subtracts floating point expression b from expression a and returning an expression of size 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 expression fsub.<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 expression value of size size

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 expression int.<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 expression roundint.<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 expression roundint.<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 variable dest in src Effectively, this is like saying src = dest, which analysis can then use as a new variable 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 expression FORCE_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 variable var which is in a register stack

Parameters:
Returns:

the expression free_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 to True

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

  • 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) BasicBlock | None[source]

get_basic_block_at returns the BasicBlock at the given MLIL instruction index.

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:

BasicBlock | 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 with get_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 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 which var is live. If include_last_use is False, the last use of the variable will not be included in the list (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 which var 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 the if expression which depending on condition operand jumps to the MediumLevelILLabel t when the condition expression operand is non-zero and f 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 address value and size size

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 expression value of size size

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 expression float.<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 if ssa_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 if ssa_var is live at a given point in the function; counts phi’s as uses

Parameters:
  • ssa_var (SSAVariable) –

  • instr (InstructionIndex) –

Return type:

bool

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

is_var_live_at determines if var 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 expression dest

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

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression jump(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 in targets choosing the target in targets based on the value calculated by dest

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 expression jump(dest)

Return type:

ExpressionIndex

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

load Reads size bytes from the expression src

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 Reads size bytes at the offset offset from the expression src

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 rendered src->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 expression a by expression b returning an expression of size 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 expression lsr.<size>(a, b)

Return type:

ExpressionIndex

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

low_part truncates the expression in value to size 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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression mods.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 expression a by expression b and returns an expression. The first operand is of size 2*size bytes and the other operand and return value are of size 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 expression modu.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 expression a by expression b and returns an expression. Both the operands and return value are 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 expression mods.<size>(a, b)

Return type:

ExpressionIndex

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

mod_unsigned unsigned modulus expression a by expression b and returns an expression. Both the operands and return value are 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 expression modu.<size>(a, b)

Return type:

ExpressionIndex

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

mult multiplies expression a by expression b and returns an expression. Both the operands and return value are size 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 expression mult.<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 expression a by expression b and returns an expression. Both the operands are size bytes and the returned expression is of size 2*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 expression muls.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 expression a by expression b and returnisan expression. Both the operands are size bytes and the returned expression is of size 2*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 expression mulu.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 expression value of size size

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

  • value (ExpressionIndex) – the expression to negate

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression neg.<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 expression noreturn

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 expression value of size size

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 expression not.<size>(value)

Return type:

ExpressionIndex

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

or_expr bitwise or’s expression a and expression b returning an expression of size 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 expression or.<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 preparation of copying the instructions from the block src

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 preparation of copying instructions from src

Parameters:

src (MediumLevelILFunction) – function about to be copied from

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

replace_expr allows modification of MLIL expressions

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 in sources.

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

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression return sources...

Return type:

ExpressionIndex

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

rotate_left bitwise rotates left expression a by expression b returning an expression of size 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 expression rol.<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 expression a by expression b with carry from carry returning an expression of size 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 expression rlc.<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 expression a by expression b returning an expression of size 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 expression ror.<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 expression a by expression b with carry from carry returning an expression of size 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 expression rrc.<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 expression roundint.<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 persistent and get lost after a database save and reload. To make persistent changes to the analysis, one should use other APIs to, for example, change the type of variables. The analysis will then propagate the type of the variable and 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 variable dest of size size to the expression src

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 expression dest = 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 field offset of variable dest of size size to the expression src

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 expression dest: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 uses hi and lo as a single extended variable of size 2*size setting hi:lo to the expression src

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 expression hi:lo = src

Return type:

ExpressionIndex

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

shift_left left shifts expression a by expression b returning an expression of size 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 expression lsl.<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 in value to size 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 expression sx.<size>(value)

Return type:

ExpressionIndex

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

store Writes size bytes to expression dest read from expression src

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 Writes size bytes to expression dest at the offset offset read from expression src

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 rendered dest->offset.size)

Return type:

ExpressionIndex

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

sub subtracts expression a to expression b returning an expression of size 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 expression sub.<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 expression a to expression b with borrow from carry returning an expression of size 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 expression sbb.<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 call with the parameters defined in params returning values in the variables in output.

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

  • params (List[ExpressionIndex]) – parameter variables

  • loc (ILSourceLocation) – location of returned expression

Returns:

The expression output = 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 call with the parameters defined in params returning values in the variables in output where stack resolution could not be determined and the top of the stack has to be specified in stack

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 expression output = 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 expression dest with the parameters defined in params returning values in the variables in output.

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 expression output = 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 expression dest with the parameters defined in params returning values in the variables in output where stack resolution could not be determined and the top of the stack has to be specified in stack

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 expression output = 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 size size that tells whether expression a has its bit with an index of the expression b 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 by a given expr_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 in new_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 integer value.

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 for each instruction and sub-instruction. See the Developer 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:
>>> def find_constants(instr) -> Optional[int]:
...     if isinstance(instr, Constant):
...         return instr.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 but aren’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’t implemented.

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 expression addr of size size 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 variable src of size size

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 offset offset from variable src of size size

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 expression var:offset.size

Return type:

ExpressionIndex

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

var_split combines variables hi and lo of size size into an expression of size 2*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 expression hi: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 function for 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: Use MediumLevelILFunction.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: Use MediumLevelILFunction.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: Use MediumLevelILFunction.traverse instead.

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

xor_expr xor’s expression a and expression b returning an expression of size 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 expression xor.<size>(a, b)

Return type:

ExpressionIndex

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

zero_extend zero-extends the expression in value to size 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 zx.<size>(value)

Return type:

ExpressionIndex

property aliased_vars: List[Variable]

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

property arch: Architecture
property basic_blocks: MediumLevelILBasicBlockList
property current_address: int

Current IL Address (read/write)

property high_level_il: HighLevelILFunction | None

High level IL for this medium level IL.

property hlil: HighLevelILFunction | None
property il_form: FunctionGraphType
property instructions: Generator[MediumLevelILInstruction, None, None]

A generator of mlil instructions of the current function

property llil: LowLevelILFunction | None

Alias for low_level_il

property low_level_il: LowLevelILFunction | None

Low level IL for this function

property non_ssa_form: MediumLevelILFunction | None

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

property source_function: Function
property ssa_form: MediumLevelILFunction | None

Medium level IL in SSA form (read-only)

property ssa_vars: List[SSAVariable]

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

property vars: List[Variable]

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

property view: BinaryView

MediumLevelILGoto

class MediumLevelILGoto[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILGoto(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: InstructionIndex
property detailed_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.

MediumLevelILIf

class MediumLevelILIf[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILIf(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property condition: MediumLevelILInstruction
property detailed_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.

property false: InstructionIndex
property true: InstructionIndex

MediumLevelILImport

class MediumLevelILImport[source]

Bases: MediumLevelILConstBase

MediumLevelILImport(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property constant: int
property detailed_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.

MediumLevelILInstruction

class MediumLevelILInstruction[source]

Bases: BaseILInstruction

class MediumLevelILInstruction Medium Level Intermediate Language Instructions are infinite length tree-based instructions. Tree-based instructions use infix notation with the left hand operand being the destination operand. Infix notation is thus more natural to read than other notations (e.g. x86 mov eax, 0 vs. MLIL eax = 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 function sub_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

classmethod create(func: MediumLevelILFunction, expr_index: ExpressionIndex, instr_index: InstructionIndex | None = None) MediumLevelILInstruction[source]
Parameters:
  • func (MediumLevelILFunction) –

  • expr_index (ExpressionIndex) –

  • instr_index (InstructionIndex | None) –

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 passed to Function.split_var to split a variable at a definition. The given var is the assigned 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

static show_mlil_hierarchy()[source]

Opens a new tab showing the MLIL hierarchy which includes classes which can easily 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 the result of the callback function for each node in the tree. Arguments can be passed to the callback function using args and kwargs. See the Developer 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:
>>> def get_constant_less_than_value(inst: MediumLevelILInstruction, value: int) -> int:
>>>     if isinstance(inst, Constant) and inst.constant < value:
>>>         return inst.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:
>>> def visitor(_a, inst, _c, _d) -> bool:
>>>     if isinstance(inst, Constant):
>>>         print(f"Found constant: {inst.constant}")
>>>         return False # 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
>>> for inst in current_mlil.instructions:
>>>     inst.visit(visitor)
Return type:

bool

Deprecated since version 4.0.4907: Use MediumLevelILInstruction.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: Use MediumLevelILInstruction.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: Use MediumLevelILInstruction.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')]}
property address: int
property attributes: Set[ILInstructionAttribute]

The set of optional attributes placed on the instruction

property branch_dependence: Mapping[int, ILBranchDependence]

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

property core_operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex]
property detailed_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
property expr_type: Type | None

Type of expression

function: MediumLevelILFunction
property high_level_il: HighLevelILInstruction | None

High level IL form of this expression

property hlil: HighLevelILInstruction | None

Alias for high_level_il

property hlils: List[HighLevelILInstruction]
property il_basic_block: MediumLevelILBasicBlock

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

instr: CoreMediumLevelILInstruction
instr_index: InstructionIndex
property instruction_operands: List[MediumLevelILInstruction]
property llil: LowLevelILInstruction | None

Alias for low_level_il

property llils: List[LowLevelILInstruction]
property low_level_il: LowLevelILInstruction | None

Low level IL form of this expression

property non_ssa_form: MediumLevelILInstruction

Non-SSA form of expression (read-only)

property operands: 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 for src, dest, params, etc where appropriate.

property operation: MediumLevelILOperation
property possible_values: PossibleValueSet

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

property postfix_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

property prefix_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

property raw_operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex]

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

property size: int
property source_location: ILSourceLocation
property source_operand: ExpressionIndex
property ssa_form: MediumLevelILInstruction

SSA form of expression (read-only)

property ssa_memory_version: int

Version of active memory contents in SSA form for this instruction

property ssa_memory_version_after: int

Version of active memory contents in SSA form after this instruction

property tokens: List[InstructionTextToken]

MLIL tokens (read-only)

property value: RegisterValue

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

property vars_address_taken: List[Variable | SSAVariable]

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

property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[Variable | SSAVariable]

List of variables written by instruction

MediumLevelILIntToFloat

class MediumLevelILIntToFloat[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILIntToFloat(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILIntrinsic

class MediumLevelILIntrinsic[source]

Bases: MediumLevelILInstruction, Intrinsic

MediumLevelILIntrinsic(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property intrinsic: ILIntrinsic
property output: List[Variable]
property params: List[MediumLevelILInstruction]
property vars_read: List[Variable]

List of variables read by instruction

property vars_written: List[Variable]

List of variables written by instruction

MediumLevelILIntrinsicSsa

class MediumLevelILIntrinsicSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILIntrinsicSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property intrinsic: ILIntrinsic
property output: List[SSAVariable]
property params: List[MediumLevelILInstruction]
property vars_read: List[SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

MediumLevelILJump

class MediumLevelILJump[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILJump(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

MediumLevelILJumpTo

class MediumLevelILJumpTo[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILJumpTo(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property targets: Dict[int, int]

MediumLevelILLabel

class MediumLevelILLabel[source]

Bases: object

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

handle (BNMediumLevelILLabel | None) –

property operand: InstructionIndex
property ref: bool
property resolved: bool

MediumLevelILLoad

class MediumLevelILLoad[source]

Bases: MediumLevelILInstruction, Load

MediumLevelILLoad(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction

MediumLevelILLoadSsa

class MediumLevelILLoadSsa[source]

Bases: MediumLevelILInstruction, Load, SSA

MediumLevelILLoadSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction
property src_memory: int

MediumLevelILLoadStruct

class MediumLevelILLoadStruct[source]

Bases: MediumLevelILInstruction, Load

MediumLevelILLoadStruct(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: MediumLevelILInstruction

MediumLevelILLoadStructSsa

class MediumLevelILLoadStructSsa[source]

Bases: MediumLevelILInstruction, Load, SSA

MediumLevelILLoadStructSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: MediumLevelILInstruction
property src_memory: int

MediumLevelILLowPart

class MediumLevelILLowPart[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILLowPart(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILLsl

class MediumLevelILLsl[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILLsl(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILLsr

class MediumLevelILLsr[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILLsr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILMemPhi

class MediumLevelILMemPhi[source]

Bases: MediumLevelILInstruction, Memory, Phi

MediumLevelILMemPhi(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest_memory: int
property detailed_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.

property src_memory: List[int]

MediumLevelILMemoryIntrinsicOutputSsa

class MediumLevelILMemoryIntrinsicOutputSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILMemoryIntrinsicOutputSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest_memory: int
property detailed_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.

property output: List[SSAVariable]

MediumLevelILMemoryIntrinsicSsa

class MediumLevelILMemoryIntrinsicSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILMemoryIntrinsicSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest_memory: int
property detailed_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.

property intrinsic: ILIntrinsic
property output: List[SSAVariable]
property params: List[MediumLevelILInstruction]
property src_memory: int

MediumLevelILMods

class MediumLevelILMods[source]

Bases: MediumLevelILBinaryBase, Arithmetic, Signed

MediumLevelILMods(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILModsDp

class MediumLevelILModsDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision, Signed

MediumLevelILModsDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILModu

class MediumLevelILModu[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILModu(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILModuDp

class MediumLevelILModuDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision

MediumLevelILModuDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILMul

class MediumLevelILMul[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILMul(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILMulsDp

class MediumLevelILMulsDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision, Signed

MediumLevelILMulsDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILMuluDp

class MediumLevelILMuluDp[source]

Bases: MediumLevelILBinaryBase, DoublePrecision

MediumLevelILMuluDp(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILNeg

class MediumLevelILNeg[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILNeg(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILNop

class MediumLevelILNop[source]

Bases: MediumLevelILInstruction

MediumLevelILNop(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILNoret

class MediumLevelILNoret[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILNoret(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILNot

class MediumLevelILNot[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILNot(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILOperationAndSize

class MediumLevelILOperationAndSize[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

class MediumLevelILOr[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILOr(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILRet

class MediumLevelILRet[source]

Bases: MediumLevelILInstruction, Return

MediumLevelILRet(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: List[MediumLevelILInstruction]

MediumLevelILRetHint

class MediumLevelILRetHint[source]

Bases: MediumLevelILInstruction, ControlFlow

MediumLevelILRetHint(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

MediumLevelILRlc

class MediumLevelILRlc[source]

Bases: MediumLevelILCarryBase

MediumLevelILRlc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILRol

class MediumLevelILRol[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILRol(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILRor

class MediumLevelILRor[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILRor(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILRoundToInt

class MediumLevelILRoundToInt[source]

Bases: MediumLevelILUnaryBase, Arithmetic, FloatingPoint

MediumLevelILRoundToInt(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILRrc

class MediumLevelILRrc[source]

Bases: MediumLevelILCarryBase

MediumLevelILRrc(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILSbb

class MediumLevelILSbb[source]

Bases: MediumLevelILCarryBase

MediumLevelILSbb(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILSeparateParamList

class MediumLevelILSeparateParamList[source]

Bases: MediumLevelILInstruction

MediumLevelILSeparateParamList(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property params: List[MediumLevelILInstruction]

MediumLevelILSetVar

class MediumLevelILSetVar[source]

Bases: MediumLevelILInstruction, SetVar

MediumLevelILSetVar(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property detailed_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.

property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[Variable]

List of variables written by instruction

MediumLevelILSetVarAliased

class MediumLevelILSetVarAliased[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarAliased(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property prev: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

MediumLevelILSetVarAliasedField

class MediumLevelILSetVarAliasedField[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarAliasedField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property offset: int
property prev: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[SSAVariable]

List of variables read by instruction

MediumLevelILSetVarField

class MediumLevelILSetVarField[source]

Bases: MediumLevelILInstruction, SetVar

MediumLevelILSetVarField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: Variable
property detailed_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.

property offset: int
property src: MediumLevelILInstruction

MediumLevelILSetVarSplit

class MediumLevelILSetVarSplit[source]

Bases: MediumLevelILInstruction, SetVar

MediumLevelILSetVarSplit(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: Variable
property low: Variable
property src: MediumLevelILInstruction
property vars_written: List[Variable]

List of variables written by instruction

MediumLevelILSetVarSplitSsa

class MediumLevelILSetVarSplitSsa[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarSplitSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: SSAVariable
property low: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

MediumLevelILSetVarSsa

class MediumLevelILSetVarSsa[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property src: MediumLevelILInstruction
property vars_read: List[Variable | SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

MediumLevelILSetVarSsaField

class MediumLevelILSetVarSsaField[source]

Bases: MediumLevelILInstruction, SetVar, SSA

MediumLevelILSetVarSsaField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property offset: int
property prev: SSAVariable
property src: MediumLevelILInstruction
property vars_read: List[SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

MediumLevelILSharedParamSlot

class MediumLevelILSharedParamSlot[source]

Bases: MediumLevelILInstruction

MediumLevelILSharedParamSlot(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property params: List[MediumLevelILInstruction]

MediumLevelILStore

class MediumLevelILStore[source]

Bases: MediumLevelILInstruction, Store

MediumLevelILStore(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property src: MediumLevelILInstruction

MediumLevelILStoreSsa

class MediumLevelILStoreSsa[source]

Bases: MediumLevelILInstruction, Store, SSA

MediumLevelILStoreSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property dest_memory: int
property detailed_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.

property src: MediumLevelILInstruction
property src_memory: int

MediumLevelILStoreStruct

class MediumLevelILStoreStruct[source]

Bases: MediumLevelILInstruction, Store

MediumLevelILStoreStruct(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property offset: int
property src: MediumLevelILInstruction

MediumLevelILStoreStructSsa

class MediumLevelILStoreStructSsa[source]

Bases: MediumLevelILInstruction, Store, SSA

MediumLevelILStoreStructSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property dest_memory: int
property detailed_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.

property offset: int
property src: MediumLevelILInstruction
property src_memory: int

MediumLevelILSub

class MediumLevelILSub[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILSub(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILSx

class MediumLevelILSx[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILSx(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILSyscall

class MediumLevelILSyscall[source]

Bases: MediumLevelILInstruction, Syscall

MediumLevelILSyscall(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]

MediumLevelILSyscallSsa

class MediumLevelILSyscallSsa[source]

Bases: MediumLevelILCallBase, Syscall, SSA

MediumLevelILSyscallSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property src_memory: int

MediumLevelILSyscallUntyped

class MediumLevelILSyscallUntyped[source]

Bases: MediumLevelILCallBase, Syscall

MediumLevelILSyscallUntyped(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction

MediumLevelILSyscallUntypedSsa

class MediumLevelILSyscallUntypedSsa[source]

Bases: MediumLevelILCallBase, Syscall, SSA

MediumLevelILSyscallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property params_src_memory: int
property stack: MediumLevelILInstruction

MediumLevelILTailcall

class MediumLevelILTailcall[source]

Bases: MediumLevelILCallBase, Tailcall

MediumLevelILTailcall(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]

MediumLevelILTailcallSsa

class MediumLevelILTailcallSsa[source]

Bases: MediumLevelILCallBase, Tailcall, SSA

MediumLevelILTailcallSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property src_memory: int

MediumLevelILTailcallUntyped

class MediumLevelILTailcallUntyped[source]

Bases: MediumLevelILCallBase, Tailcall

MediumLevelILTailcallUntyped(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[Variable]
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction

MediumLevelILTailcallUntypedSsa

class MediumLevelILTailcallUntypedSsa[source]

Bases: MediumLevelILCallBase, Tailcall, SSA

MediumLevelILTailcallUntypedSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: MediumLevelILInstruction
property detailed_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.

property output: List[SSAVariable]
property output_dest_memory: int
property params: List[MediumLevelILInstruction]
property stack: MediumLevelILInstruction

MediumLevelILTestBit

class MediumLevelILTestBit[source]

Bases: MediumLevelILComparisonBase

MediumLevelILTestBit(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILTrap

class MediumLevelILTrap[source]

Bases: MediumLevelILInstruction, Terminal

MediumLevelILTrap(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property vector: int

MediumLevelILUnaryBase

class MediumLevelILUnaryBase[source]

Bases: MediumLevelILInstruction, UnaryOperation

MediumLevelILUnaryBase(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction

MediumLevelILUndef

class MediumLevelILUndef[source]

Bases: MediumLevelILInstruction

MediumLevelILUndef(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILUnimpl

class MediumLevelILUnimpl[source]

Bases: MediumLevelILInstruction

MediumLevelILUnimpl(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILUnimplMem

class MediumLevelILUnimplMem[source]

Bases: MediumLevelILInstruction, Memory

MediumLevelILUnimplMem(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: MediumLevelILInstruction

MediumLevelILVar

class MediumLevelILVar[source]

Bases: MediumLevelILInstruction, VariableInstruction

MediumLevelILVar(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: Variable
property var: Variable

MediumLevelILVarAliased

class MediumLevelILVarAliased[source]

Bases: MediumLevelILInstruction, SSA, AliasedVariableInstruction

MediumLevelILVarAliased(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: SSAVariable

MediumLevelILVarAliasedField

class MediumLevelILVarAliasedField[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILVarAliasedField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: SSAVariable

MediumLevelILVarField

class MediumLevelILVarField[source]

Bases: MediumLevelILInstruction

MediumLevelILVarField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: Variable

MediumLevelILVarPhi

class MediumLevelILVarPhi[source]

Bases: MediumLevelILInstruction, SetVar, Phi, SSA

MediumLevelILVarPhi(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property dest: SSAVariable
property detailed_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.

property src: List[SSAVariable]
property vars_read: List[SSAVariable]

List of variables read by instruction

property vars_written: List[SSAVariable]

List of variables written by instruction

MediumLevelILVarSplit

class MediumLevelILVarSplit[source]

Bases: MediumLevelILInstruction

MediumLevelILVarSplit(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: Variable
property low: Variable

MediumLevelILVarSplitSsa

class MediumLevelILVarSplitSsa[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILVarSplitSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property high: SSAVariable
property low: SSAVariable

MediumLevelILVarSsa

class MediumLevelILVarSsa[source]

Bases: MediumLevelILInstruction, SSAVariableInstruction

MediumLevelILVarSsa(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property src: SSAVariable
property var: SSAVariable

MediumLevelILVarSsaField

class MediumLevelILVarSsaField[source]

Bases: MediumLevelILInstruction, SSA

MediumLevelILVarSsaField(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

property detailed_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.

property offset: int
property src: SSAVariable

MediumLevelILXor

class MediumLevelILXor[source]

Bases: MediumLevelILBinaryBase, Arithmetic

MediumLevelILXor(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

MediumLevelILZx

class MediumLevelILZx[source]

Bases: MediumLevelILUnaryBase, Arithmetic

MediumLevelILZx(function: ‘MediumLevelILFunction’, expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: binaryninja.mediumlevelil.CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)

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

None

SSAVariable

class SSAVariable[source]

Bases: object

SSAVariable(var: ‘variable.Variable’, version: int)

__init__(var: Variable, version: int) None
Parameters:
Return type:

None

property dead_store_elimination: DeadStoreElimination

returns the dead store elimination setting for this variable (read-only)

property def_site: MediumLevelILInstruction | HighLevelILInstruction | None

Gets the IL instructions where this SSAVariable is defined.

property function: Function

returns the source Function object which this variable belongs to

property il_function: function.ILFunctionType

returns the il Function object which this variable belongs to

property name: str
property type: Type
property use_sites: List[MediumLevelILInstruction | HighLevelILInstruction]

Gets the list of IL instructions where this SSAVariable is used inside of this function.

var: Variable
version: int