mediumlevelil module¶
The |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- class CoreMediumLevelILInstruction(operation: 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)[source]¶
Bases:
object
- Parameters:
- classmethod from_BNMediumLevelILInstruction(instr: BNMediumLevelILInstruction) CoreMediumLevelILInstruction [source]¶
- Parameters:
instr (BNMediumLevelILInstruction) –
- Return type:
- operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex]¶
- operation: MediumLevelILOperation¶
- class MediumLevelILAdc(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCarryBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILAdd(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILAddOverflow(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILAddressOf(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILAddressOfField(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILAnd(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILAsr(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILAssert(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- property constraint: PossibleValueSet¶
- class MediumLevelILAssertSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- property constraint: PossibleValueSet¶
- property src: SSAVariable¶
- class MediumLevelILBasicBlock(handle: LP_BNBasicBlock, owner: MediumLevelILFunction, view: BinaryView | None = None)[source]¶
Bases:
BasicBlock
The
MediumLevelILBasicBlock
object is returned during analysis and should not be directly instantiated.- Parameters:
handle (LP_BNBasicBlock) –
owner (MediumLevelILFunction) –
view (BinaryView | None) –
- property il_function: MediumLevelILFunction¶
IL Function of which this block is a part, if the block is part of an IL Function.
- class MediumLevelILBinaryBase(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,BinaryOperation
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property left: MediumLevelILInstruction¶
- property right: MediumLevelILInstruction¶
- class MediumLevelILBoolToInt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILBp(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Terminal
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCall(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Localcall
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 params: List[MediumLevelILInstruction]¶
- class MediumLevelILCallBase(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Call
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILCallOutputSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- property dest: List[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 vars_written: List[SSAVariable]¶
List of variables written by instruction
- class MediumLevelILCallParam(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILCallParamSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: List[SSAVariable]¶
- class MediumLevelILCallSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Localcall
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 params: List[MediumLevelILInstruction]¶
- class MediumLevelILCallUntyped(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Localcall
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 stack: MediumLevelILInstruction¶
- class MediumLevelILCallUntypedSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Localcall
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 params: List[SSAVariable]¶
- property params_src_memory¶
- property stack: MediumLevelILInstruction¶
- class MediumLevelILCarryBase(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Carry
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpE(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpNe(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpSge(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpSgt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpSle(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpSlt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpUge(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpUgt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpUle(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILCmpUlt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILComparisonBase(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Comparison
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILConst(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILConstBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILConstBase(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Constant
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILConstData(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILConstBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILConstBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property string: Tuple[str, StringType] | None¶
- class MediumLevelILDivs(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILDivsDp(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,DoublePrecision
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILDivu(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILDivuDp(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,DoublePrecision
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILExpr(index)[source]¶
Bases:
object
class MediumLevelILExpr
hold the index of IL Expressions.Note
Deprecated. Use ExpressionIndex instead
- property index¶
- class MediumLevelILExternPtr(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILConstBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILFabs(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFadd(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpE(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpGe(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpGt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpLe(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpLt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpNe(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpO(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFcmpUo(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFdiv(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFloatConst(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILConstBase
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILFloatConv(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFloatToInt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFloor(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFmul(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFneg(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILForceVer(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILForceVerSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- property dest: SSAVariable¶
- property src: SSAVariable¶
- class MediumLevelILFreeVarSlot(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,RegisterStack
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILFreeVarSlotSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
,RegisterStack
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFsub(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFtrunc(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILFunction(arch: Architecture | None = None, handle: BNMediumLevelILFunction | None = None, source_func: Function | None = None)[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 callingappend
and passing the result of the various class methods which return ExpressionIndex objects.- Parameters:
arch (Architecture | None) –
handle (BNMediumLevelILFunction | None) –
source_func (Function | None) –
- add(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
add
adds expressiona
to expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
to expressionb
with carry fromcarry
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
carry (ExpressionIndex) – Carried value expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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.
- add_variable_list(vars: List[Variable]) ExpressionIndex [source]¶
add_variable_list
returns a variable list expression for the given list of variables.
- address_of(var: Variable, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
address_of
takes the address ofvar
- Parameters:
var (Variable) – the variable having its address taken
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
&var
- Return type:
ExpressionIndex
- address_of_field(var: Variable, offset: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
address_of_field
takes the address ofvar
at the offsetoffset
- Parameters:
var (Variable) – the variable having its address taken
offset (int) – the offset of the taken address
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
&var:offset
- Return type:
ExpressionIndex
- and_expr(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
and_expr
bitwise and’s expressiona
and expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
and.<size>(a, b)
- Return type:
ExpressionIndex
- append(expr: ExpressionIndex) int [source]¶
append
adds the ExpressionIndexexpr
to the current MediumLevelILFunction.- Parameters:
expr (ExpressionIndex) – the ExpressionIndex to add to the current MediumLevelILFunction
- Returns:
number of ExpressionIndex in the current function
- Return type:
- arith_shift_right(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
arith_shift_right
arithmetically right shifts expressiona
by expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
asr.<size>(a, b)
- Return type:
ExpressionIndex
- bool_to_int(size: int, a: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
bool_to_int
returns an expression of sizesize
converting the boolean expressiona
to an integer- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – boolean expression to be converted
loc (ILSourceLocation) – location of returned expression
- Returns:
the converted integer expression.
- Return type:
ExpressionIndex
- breakpoint(loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
breakpoint
returns a processor breakpoint expression.- Parameters:
loc (ILSourceLocation) – location of returned expression
- Returns:
a breakpoint expression.
- Return type:
ExpressionIndex
- 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 expressiondest
with the parameters defined inparams
returning values in the variables inoutput
.- Parameters:
output (List['variable.Variable']) – output variables
dest (ExpressionIndex) – the expression to call
params (List[ExpressionIndex]) – parameter variables
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiondest
with the parameters defined inparams
returning values in the variables inoutput
where stack resolution could not be determined and the top of the stack has to be specified instack
- Parameters:
output (List['variable.Variable']) – output variables
dest (ExpressionIndex) – the expression to call
params (List[ExpressionIndex]) – parameter variables
stack (ExpressionIndex) – expression of top of stack
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_not_equal(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_not_equal
returns comparison expression of sizesize
checking if expressiona
is not equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_signed_greater_equal(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_signed_greater_equal
returns comparison expression of sizesize
checking if expressiona
is signed greater than or equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_signed_greater_than(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_signed_greater_than
returns comparison expression of sizesize
checking if expressiona
is signed greater than or equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_signed_less_equal(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_signed_less_equal
returns comparison expression of sizesize
checking if expressiona
is signed less than or equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_signed_less_than(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_signed_less_than
returns comparison expression of sizesize
checking if expressiona
is signed less than expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_unsigned_greater_equal(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_unsigned_greater_equal
returns comparison expression of sizesize
checking if expressiona
is unsigned greater than or equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_unsigned_greater_than(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_unsigned_greater_than
returns comparison expression of sizesize
checking if expressiona
is unsigned greater than or equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_unsigned_less_equal(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_unsigned_less_equal
returns comparison expression of sizesize
checking if expressiona
is unsigned less than or equal to expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- compare_unsigned_less_than(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
compare_unsigned_less_than
returns comparison expression of sizesize
checking if expressiona
is unsigned less than expressionb
- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – LHS of comparison
b (ExpressionIndex) – RHS of comparison
loc (ILSourceLocation) – location of returned expression
- Returns:
a comparison expression.
- Return type:
ExpressionIndex
- const(size: int, value: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
const
returns an expression for the constant integervalue
of sizesize
- Parameters:
size (int) – the size of the constant in bytes
value (int) – integer value of the constant
loc (ILSourceLocation) – location of returned expression
- Returns:
A constant expression of given value and size
- Return type:
ExpressionIndex
- const_data(size: int, data: ConstantData, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
const_data
returns an expression for the constant datadata
- Parameters:
size (int) – size of the data
data (ConstantData) – value of the data
loc (ILSourceLocation) – location of returned expression
- Returns:
A constant expression of given value and size
- Return type:
ExpressionIndex
- const_pointer(size: int, value: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
const_pointer
returns an expression for the constant pointervalue
of sizesize
- Parameters:
size (int) – the size of the pointer in bytes
value (int) – address referenced by the pointer
loc (ILSourceLocation) – location of returned expression
- Returns:
A constant expression of given value and size
- Return type:
ExpressionIndex
- copy_expr(original: MediumLevelILInstruction) ExpressionIndex [source]¶
copy_expr
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
- create_graph(settings: DisassemblySettings | None = None) CoreFlowGraph [source]¶
- Parameters:
settings (DisassemblySettings | None) –
- Return type:
- div_double_prec_signed(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
div_double_prec_signed
signed divides double precision expressiona
by expressionb
and returns an expression. The first operand is of size2*size
bytes and the other operand and return value are of sizesize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returns an expression. The first operand is of size2*size
bytes and the other operand and return value are of sizesize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returns an expression. Both the operands and return value aresize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returns an expression. Both the operands and return value aresize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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:
operation (MediumLevelILOperation) –
a (int) –
b (int) –
c (int) –
d (int) –
e (int) –
size (int) –
source_location (ILSourceLocation | None) –
- Return type:
ExpressionIndex
- extern_pointer(size: int, value: int, offset: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
extern_pointer
returns an expression for the external pointervalue
at offsetoffset
of sizesize
- Parameters:
size (int) – the size of the pointer in bytes
value (int) – address referenced by the pointer
offset (int) – offset applied to the address
loc (ILSourceLocation | None) – location of returned expression
- Returns:
A constant expression of given value and size
- Return type:
ExpressionIndex
- finalize() None [source]¶
finalize
ends the function and computes the list of basic blocks.- Return type:
None
- float_abs(size: int, value: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
float_abs
returns absolute value of floating point expressionvalue
of sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to get the absolute value of
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
to expressionb
and returning an expression ofsize
bytes.- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is equal to expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is greater than or equal to expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is greater than expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is less than or equal to expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is less than expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is not equal to expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is ordered relative to expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
checking if expressiona
is unordered relative to expressionb
- Parameters:
size (int) – the size of the operands in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 valuevalue
- 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 valuevalue
with sizesize
- Parameters:
size (int) – the size of the constant in bytes
value (int) – integer value for the raw binary representation of the constant
loc (ILSourceLocation) – location of returned expression
- Returns:
A constant expression of given value and size
- Return type:
ExpressionIndex
- float_const_single(value: float, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
float_const_single
returns an expression for the single precision floating point valuevalue
- Parameters:
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 expressionvalue
to sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to negate
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returning an expression ofsize
bytes.- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returning an expression ofsize
bytes.- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressionvalue
of sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to negate
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressionvalue
of sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to calculate the square root of
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressionb
from expressiona
and returning an expression ofsize
bytes.- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressionvalue
of sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to convert to an int
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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
- 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 instructionindex
.- Parameters:
index (int) – Index of the MLIL instruction of the BasicBlock to retrieve.
- Example:
>>> current_il_function.get_basic_block_at(current_il_index) <mlil block: x86@40-60>
- Return type:
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 functionYou 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:
- 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_start(addr: int, arch: Architecture | None = None) int | None [source]¶
- Parameters:
addr (int) –
arch (Architecture | None) –
- Return type:
int | None
- get_live_instructions_for_var(var: Variable, include_last_use: bool = True) List[MediumLevelILInstruction] [source]¶
get_live_instructions_for_var
computes the list of instructions for whichvar
is live. Ifinclude_last_use
is False, the last use of the variable will not be included in 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:
- 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:
- 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:
- get_ssa_var_value(ssa_var: SSAVariable) RegisterValue [source]¶
- Parameters:
ssa_var (SSAVariable) –
- Return type:
- get_var_definitions(var: Variable) List[MediumLevelILInstruction] [source]¶
- Parameters:
var (Variable) –
- Return type:
- get_var_uses(var: Variable) List[MediumLevelILInstruction] [source]¶
- Parameters:
var (Variable) –
- Return type:
- goto(label: MediumLevelILLabel, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
goto
returns a goto expression which jumps to the provided MediumLevelILLabel.- Parameters:
label (MediumLevelILLabel) – Label to jump to
loc (ILSourceLocation) – location of returned expression
- Returns:
the ExpressionIndex that jumps to the provided label
- Return type:
ExpressionIndex
- if_expr(operand: ExpressionIndex, t: MediumLevelILLabel, f: MediumLevelILLabel, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
if_expr
returns theif
expression which depending on conditionoperand
jumps to the MediumLevelILLabelt
when the condition expressionoperand
is non-zero andf
when it’s zero.- Parameters:
operand (ExpressionIndex) – comparison expression to evaluate.
t (MediumLevelILLabel) – Label for the true branch
f (MediumLevelILLabel) – Label for the false branch
loc (ILSourceLocation) – location of returned expression
- Returns:
the ExpressionIndex for the if expression
- Return type:
ExpressionIndex
- imported_address(size: int, value: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
imported_address
returns an expression for an imported value with addressvalue
and sizesize
- Parameters:
size (int) – size of the imported value
value (int) – address of the imported value
loc (ILSourceLocation) – location of returned expression
- Returns:
A constant expression of given value and size
- Return type:
ExpressionIndex
- int_to_float(size: int, value: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
int_to_float
returns floating point value of integer expressionvalue
of sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to convert to a float
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 ifssa_var
is live at any point in the function- Parameters:
ssa_var (SSAVariable) – the SSA variable to query
- Returns:
whether the variable is live at any point in the function
- Return type:
- is_ssa_var_live_at(ssa_var: SSAVariable, instr: InstructionIndex) bool [source]¶
is_ssa_var_live_at
determines ifssa_var
is live at a given point in the function; counts phi’s as uses- Parameters:
ssa_var (SSAVariable) –
instr (InstructionIndex) –
- Return type:
- is_var_live_at(var: Variable, instr: InstructionIndex) bool [source]¶
is_var_live_at
determines ifvar
is live at a given point in the function
- jump(dest: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
jump
returns an expression which jumps (branches) to the expressiondest
- Parameters:
dest (ExpressionIndex) – the expression to jump to
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 intargets
choosing the target intargets
based on the value calculated bydest
- Parameters:
dest (ExpressionIndex) – the expression choosing which jump target to use
targets (Mapping[int, MediumLevelILLabel]) – the list of targets for jump locations
loc (ILSourceLocation) – location of returned expression
targets –
- Returns:
The expression
jump(dest)
- Return type:
ExpressionIndex
- load(size: int, src: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
load
Readssize
bytes from the expressionsrc
- Parameters:
size (int) – number of bytes to read
src (ExpressionIndex) – the expression to read memory from
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
[addr].size
- Return type:
ExpressionIndex
- load_struct(size: int, src: ExpressionIndex, offset: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
load_struct
Readssize
bytes at the offsetoffset
from the expressionsrc
- Parameters:
size (int) – number of bytes to read
src (ExpressionIndex) – the expression to read memory from
offset (int) – offset of field in the memory
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
[(src + offset)].size
(often renderedsrc->offset.size
)- Return type:
ExpressionIndex
- logical_shift_right(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
logical_shift_right
logically right shifts expressiona
by expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 invalue
tosize
bytes- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to zero extend
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
(value).<size>
- Return type:
ExpressionIndex
- mark_label(label: MediumLevelILLabel) None [source]¶
mark_label
assigns a MediumLevelILLabel to the current IL address.- Parameters:
label (MediumLevelILLabel) –
- Return type:
None
- mod_double_prec_signed(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
mod_double_prec_signed
signed modulus double precision expressiona
by expressionb
and returns an expression. The first operand is of size2*size
bytes and the other operand and return value are of sizesize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returns an expression. The first operand is of size2*size
bytes and the other operand and return value are of sizesize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returns an expression. Both the operands and return value aresize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returns an expression. Both the operands and return value aresize
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
modu.<size>(a, b)
- Return type:
ExpressionIndex
- mult(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
mult
multiplies expressiona
by expressionb
and returns an expression. Both the operands and return value aresize
bytes as the product’s upper half is discarded.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returns an expression. Both the operands aresize
bytes and the returned expression is of size2*size
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
and returnisan expression. Both the operands aresize
bytes and the returned expression is of size2*size
bytes.- Parameters:
size (int) – the size of the result and input operands, in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressionvalue
of sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to negate
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressionvalue
of sizesize
- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to bitwise invert
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
and expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
or.<size>(a, b)
- Return type:
ExpressionIndex
- 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 insources
.- 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 expressiona
by expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
with carry fromcarry
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
carry (ExpressionIndex) – Carried value expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
with carry fromcarry
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
carry (ExpressionIndex) – Carried value expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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:
value (int) –
arch (Architecture | None) –
- 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 [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) –
- Return type:
None
- set_var(size: int, dest: Variable, src: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
set_var
sets the variabledest
of sizesize
to the expressionsrc
- Parameters:
size (int) – the size of the variable in bytes
dest (Variable) – the variable being set
src (ExpressionIndex) – expression with the value to set the variable to
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 fieldoffset
of variabledest
of sizesize
to the expressionsrc
- Parameters:
size (int) – the size of the field in bytes
dest (Variable) – the variable being set
offset (int) – offset of field in the variable
src (ExpressionIndex) – expression with the value to set the field to
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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
useshi
andlo
as a single extended variable of size2*size
settinghi:lo
to the expressionsrc
- Parameters:
size (int) – the size of each variable in bytes
hi (Variable) – the high variable being set
lo (Variable) – the low variable being set
src (ExpressionIndex) – expression with the value to set the variables to
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
by expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 invalue
tosize
bytes- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to sign extend
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
sx.<size>(value)
- Return type:
ExpressionIndex
- store(size: int, dest: ExpressionIndex, src: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
store
Writessize
bytes to expressiondest
read from expressionsrc
- Parameters:
size (int) – number of bytes to write
dest (ExpressionIndex) – the expression to write to
src (ExpressionIndex) – the expression to be written
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
[dest].size = src
- Return type:
ExpressionIndex
- store_struct(size: int, dest: ExpressionIndex, offset: int, src: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
store_struct
Writessize
bytes to expressiondest
at the offsetoffset
read from expressionsrc
- Parameters:
size (int) – number of bytes to write
dest (ExpressionIndex) – the expression to write to
offset (int) – offset of field in the memory
src (ExpressionIndex) – the expression to be written
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
[(dest + offset)].size = src
(often rendereddest->offset.size
)- Return type:
ExpressionIndex
- sub(size: int, a: ExpressionIndex, b: ExpressionIndex, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
sub
subtracts expressiona
to expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiona
to expressionb
with borrow fromcarry
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
carry (ExpressionIndex) – Carried value expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 inparams
returning values in the variables inoutput
.- Parameters:
output (List['variable.Variable']) – output variables
params (List[ExpressionIndex]) – parameter variables
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 inparams
returning values in the variables inoutput
where stack resolution could not be determined and the top of the stack has to be specified instack
- Parameters:
output (List['variable.Variable']) – output variables
params (List[ExpressionIndex]) – parameter variables
stack (ExpressionIndex) – expression of top of stack
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiondest
with the parameters defined inparams
returning values in the variables inoutput
.- Parameters:
output (List['variable.Variable']) – output variables
dest (ExpressionIndex) – the expression to call
params (List[ExpressionIndex]) – parameter variables
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 expressiondest
with the parameters defined inparams
returning values in the variables inoutput
where stack resolution could not be determined and the top of the stack has to be specified instack
- Parameters:
output (List['variable.Variable']) – output variables
dest (ExpressionIndex) – the expression to call
params (List[ExpressionIndex]) – parameter variables
stack (ExpressionIndex) – expression of top of stack
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 sizesize
that tells whether expressiona
has its bit with an index of the expressionb
is set- Parameters:
size (int) – size in bytes
a (ExpressionIndex) – an expression to be tested
b (ExpressionIndex) – an expression for the index of the big
loc (ILSourceLocation) – location of returned expression
- Returns:
the result expression.
- Return type:
ExpressionIndex
- trap(value: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
trap
returns a processor trap (interrupt) expression of the given integervalue
.- Parameters:
value (int) – trap (interrupt) number
loc (ILSourceLocation) – location of returned expression
- Returns:
a trap expression.
- Return type:
ExpressionIndex
- traverse(cb: Callable[[MediumLevelILInstruction, Any], Any], *args: Any, **kwargs: Any) Iterator[Any] [source]¶
traverse
iterates through all the instructions in the MediumLevelILInstruction and calls the callback function 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 expressionaddr
of sizesize
with unimplemented operation.- Parameters:
size (int) – size in bytes of the memory reference
addr (ExpressionIndex) – expression to reference memory
loc (ILSourceLocation) – location of returned expression
- Returns:
the unimplemented memory reference expression.
- Return type:
ExpressionIndex
- var(size: int, src: Variable, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
var
returns the variablesrc
of sizesize
- Parameters:
size (int) – the size of the variable in bytes
src (Variable) – the variable being read
loc (ILSourceLocation) – location of returned expression
- Returns:
An expression for the given variable
- Return type:
ExpressionIndex
- var_field(size: int, src: Variable, offset: int, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
var_field
returns the field at offsetoffset
from variablesrc
of sizesize
- Parameters:
size (int) – the size of the field in bytes
src (Variable) – the variable being read
offset (int) – offset of field in the variable
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
var:offset.size
- Return type:
ExpressionIndex
- var_split(size: int, hi: Variable, lo: Variable, loc: ILSourceLocation | None = None) ExpressionIndex [source]¶
var_split
combines variableshi
andlo
of sizesize
into an expression of size2*size
- Parameters:
size (int) – the size of each variable in bytes
hi (Variable) – the variable holding high part of value
lo (Variable) – the variable holding low part of value
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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:
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:
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:
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 expressiona
and expressionb
returning an expression ofsize
bytes- Parameters:
size (int) – the size of the result in bytes
a (ExpressionIndex) – LHS expression
b (ExpressionIndex) – RHS expression
loc (ILSourceLocation) – location of returned expression
- Returns:
The 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 invalue
tosize
bytes- Parameters:
size (int) – the size of the result in bytes
value (ExpressionIndex) – the expression to zero extend
loc (ILSourceLocation) – location of returned expression
- Returns:
The expression
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 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 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Terminal
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Terminal
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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.
- class MediumLevelILImport(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILConstBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILInstruction(function: MediumLevelILFunction, expr_index: ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: InstructionIndex)[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. x86mov eax, 0
vs. MLILeax = 0
).- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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:
- get_branch_dependence(branch_instr: int) ILBranchDependence [source]¶
- Parameters:
branch_instr (int) –
- Return type:
- get_flag_value(flag: FlagName | ILFlag | FlagIndex) RegisterValue [source]¶
- Parameters:
flag (FlagName | ILFlag | FlagIndex) –
- Return type:
- get_flag_value_after(flag: FlagName | ILFlag | FlagIndex) RegisterValue [source]¶
- Parameters:
flag (FlagName | ILFlag | FlagIndex) –
- Return type:
- get_possible_flag_values(flag: FlagName | ILFlag | FlagIndex, options: List[DataFlowQueryOption] | None = None) PossibleValueSet [source]¶
- Parameters:
flag (FlagName | ILFlag | FlagIndex) –
options (List[DataFlowQueryOption] | None) –
- Return type:
- get_possible_flag_values_after(flag: FlagName | ILFlag | FlagIndex, options: List[DataFlowQueryOption] | None = None) PossibleValueSet [source]¶
- Parameters:
flag (FlagName | ILFlag | FlagIndex) –
options (List[DataFlowQueryOption] | None) –
- Return type:
- get_possible_reg_values(reg: RegisterName | ILRegister | RegisterIndex, options: List[DataFlowQueryOption] | None = None) PossibleValueSet [source]¶
- Parameters:
reg (RegisterName | ILRegister | RegisterIndex) –
options (List[DataFlowQueryOption] | None) –
- Return type:
- get_possible_reg_values_after(reg: RegisterName | ILRegister | RegisterIndex, options: List[DataFlowQueryOption] | None = None) PossibleValueSet [source]¶
- Parameters:
reg (RegisterName | ILRegister | RegisterIndex) –
options (List[DataFlowQueryOption] | None) –
- Return type:
- get_possible_stack_contents(offset: int, size: int, options: List[DataFlowQueryOption] | None = None) PossibleValueSet [source]¶
- Parameters:
offset (int) –
size (int) –
options (List[DataFlowQueryOption] | None) –
- Return type:
- get_possible_stack_contents_after(offset: int, size: int, options: List[DataFlowQueryOption] | None = None) PossibleValueSet [source]¶
- Parameters:
offset (int) –
size (int) –
options (List[DataFlowQueryOption] | None) –
- Return type:
- get_possible_values(options: List[DataFlowQueryOption] | None = None) PossibleValueSet [source]¶
- Parameters:
options (List[DataFlowQueryOption] | None) –
- Return type:
- get_reg_value(reg: RegisterName | ILRegister | RegisterIndex) RegisterValue [source]¶
- Parameters:
reg (RegisterName | ILRegister | RegisterIndex) –
- Return type:
- get_reg_value_after(reg: RegisterName | ILRegister | RegisterIndex) RegisterValue [source]¶
- Parameters:
reg (RegisterName | ILRegister | RegisterIndex) –
- Return type:
- 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 givenvar
is the assigned variable to query.
- get_ssa_var_possible_values(ssa_var: SSAVariable, options: List[DataFlowQueryOption] = [])[source]¶
- Parameters:
ssa_var (SSAVariable) –
options (List[DataFlowQueryOption]) –
- get_stack_contents(offset: int, size: int) RegisterValue [source]¶
- Parameters:
- Return type:
- get_stack_contents_after(offset: int, size: int) RegisterValue [source]¶
- Parameters:
- Return type:
- get_var_for_reg(reg: RegisterName | ILRegister | RegisterIndex) Variable [source]¶
- Parameters:
reg (RegisterName | ILRegister | RegisterIndex) –
- Return type:
- get_var_for_reg_after(reg: RegisterName | ILRegister | RegisterIndex) Variable [source]¶
- Parameters:
reg (RegisterName | ILRegister | RegisterIndex) –
- Return type:
- 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 usingargs
andkwargs
. 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:
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:
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:
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_data', 'constant_data')], 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 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¶
- 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_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 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILIntrinsic(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Intrinsic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property intrinsic: ILIntrinsic¶
- property params: List[MediumLevelILInstruction]¶
- class MediumLevelILIntrinsicSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Terminal
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Terminal
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 MediumLevelILLabel(handle: BNMediumLevelILLabel | None = None)[source]¶
Bases:
object
- Parameters:
handle (BNMediumLevelILLabel | None) –
- property operand: InstructionIndex¶
- class MediumLevelILLoad(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Load
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILLoadSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Load
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILLoadStruct(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Load
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILLoadStructSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Load
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILLowPart(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILLsl(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILLsr(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILMemPhi(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Memory
,Phi
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILMemoryIntrinsicOutputSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property output: List[SSAVariable]¶
- class MediumLevelILMemoryIntrinsicSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property intrinsic: ILIntrinsic¶
- property output: List[SSAVariable]¶
- property params: List[MediumLevelILInstruction]¶
- class MediumLevelILMods(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILModsDp(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,DoublePrecision
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILModu(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILModuDp(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,DoublePrecision
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILMul(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILMulsDp(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,DoublePrecision
,Signed
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILMuluDp(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,DoublePrecision
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILNeg(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILNop(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILNoret(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Terminal
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILNot(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILOperationAndSize(operation: MediumLevelILOperation, size: int)[source]¶
Bases:
object
- Parameters:
operation (MediumLevelILOperation) –
size (int) –
- operation: MediumLevelILOperation¶
- class MediumLevelILOr(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILRet(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Return
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: List[MediumLevelILInstruction]¶
- class MediumLevelILRetHint(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,ControlFlow
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCarryBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILRol(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILRor(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILRoundToInt(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
,FloatingPoint
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILRrc(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCarryBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILSbb(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCarryBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILSeparateParamList(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILSetVar(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- property vars_read: List[Variable | SSAVariable]¶
List of variables read by instruction
- class MediumLevelILSetVarAliased(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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[SSAVariable]¶
List of variables read by instruction
- class MediumLevelILSetVarField(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILSetVarSplit(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILSetVarSplitSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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[SSAVariable]¶
List of variables read by instruction
- property vars_written: List[SSAVariable]¶
List of variables written by instruction
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
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 MediumLevelILStore(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Store
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Store
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 MediumLevelILStoreStruct(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Store
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 MediumLevelILStoreStructSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Store
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 MediumLevelILSub(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILSx(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILSyscall(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Syscall
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property params: List[MediumLevelILInstruction]¶
- class MediumLevelILSyscallSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Syscall
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property output: List[SSAVariable]¶
- property params: List[MediumLevelILInstruction]¶
- class MediumLevelILSyscallUntyped(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Syscall
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property stack: MediumLevelILInstruction¶
- class MediumLevelILSyscallUntypedSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Syscall
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property output: List[SSAVariable]¶
- property params: List[SSAVariable]¶
- property stack: MediumLevelILInstruction¶
- class MediumLevelILTailcall(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Tailcall
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 params: List[MediumLevelILInstruction]¶
- class MediumLevelILTailcallSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Tailcall
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 params: List[MediumLevelILInstruction]¶
- class MediumLevelILTailcallUntyped(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Tailcall
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 stack: MediumLevelILInstruction¶
- class MediumLevelILTailcallUntypedSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILCallBase
,Tailcall
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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 params: List[SSAVariable]¶
- property stack: MediumLevelILInstruction¶
- class MediumLevelILTestBit(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILComparisonBase
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILTrap(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Terminal
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILUnaryBase(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,UnaryOperation
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILUndef(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILUnimpl(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILUnimplMem(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,Memory
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: MediumLevelILInstruction¶
- class MediumLevelILVar(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,VariableInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILVarAliased(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
,AliasedVariableInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: SSAVariable¶
- class MediumLevelILVarAliasedField(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: SSAVariable¶
- class MediumLevelILVarField(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILVarPhi(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SetVar
,Phi
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- 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(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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 MediumLevelILVarSplitSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property high: SSAVariable¶
- property low: SSAVariable¶
- class MediumLevelILVarSsa(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSAVariableInstruction
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: SSAVariable¶
- property var: SSAVariable¶
- class MediumLevelILVarSsaField(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILInstruction
,SSA
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (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.
- property src: SSAVariable¶
- class MediumLevelILXor(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILBinaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class MediumLevelILZx(function: 'MediumLevelILFunction', expr_index: binaryninja.mediumlevelil.ExpressionIndex, instr: CoreMediumLevelILInstruction, instr_index: binaryninja.mediumlevelil.InstructionIndex)[source]¶
Bases:
MediumLevelILUnaryBase
,Arithmetic
- Parameters:
function (MediumLevelILFunction) –
expr_index (ExpressionIndex) –
instr (CoreMediumLevelILInstruction) –
instr_index (InstructionIndex) –
- class SSAVariable(var: 'variable.Variable', version: int)[source]¶
Bases:
object
- 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 il_function: function.ILFunctionType¶
returns the il Function object which this variable belongs to
- property use_sites: List[MediumLevelILInstruction | HighLevelILInstruction]¶
Gets the list of IL instructions where this SSAVariable is used inside of this function.