highlevelil module

binaryninja.highlevelil.CoreHighLevelILInstruction(...)

binaryninja.highlevelil.GotoLabel(function, id)

binaryninja.highlevelil.HighLevelILAdc(...)

binaryninja.highlevelil.HighLevelILAdd(...)

binaryninja.highlevelil.HighLevelILAddOverflow(...)

binaryninja.highlevelil.HighLevelILAddressOf(...)

binaryninja.highlevelil.HighLevelILAnd(...)

binaryninja.highlevelil.HighLevelILArrayIndex(...)

binaryninja.highlevelil.HighLevelILArrayIndexSsa(...)

binaryninja.highlevelil.HighLevelILAsr(...)

binaryninja.highlevelil.HighLevelILAssign(...)

binaryninja.highlevelil.HighLevelILAssignMemSsa(...)

binaryninja.highlevelil.HighLevelILAssignUnpack(...)

binaryninja.highlevelil.HighLevelILAssignUnpackMemSsa(...)

binaryninja.highlevelil.HighLevelILBasicBlock(...)

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

binaryninja.highlevelil.HighLevelILBinaryBase(...)

binaryninja.highlevelil.HighLevelILBlock(...)

binaryninja.highlevelil.HighLevelILBoolToInt(...)

binaryninja.highlevelil.HighLevelILBp(...)

binaryninja.highlevelil.HighLevelILBreak(...)

binaryninja.highlevelil.HighLevelILCall(...)

binaryninja.highlevelil.HighLevelILCallSsa(...)

binaryninja.highlevelil.HighLevelILCarryBase(...)

binaryninja.highlevelil.HighLevelILCase(...)

binaryninja.highlevelil.HighLevelILCeil(...)

binaryninja.highlevelil.HighLevelILCmpE(...)

binaryninja.highlevelil.HighLevelILCmpNe(...)

binaryninja.highlevelil.HighLevelILCmpSge(...)

binaryninja.highlevelil.HighLevelILCmpSgt(...)

binaryninja.highlevelil.HighLevelILCmpSle(...)

binaryninja.highlevelil.HighLevelILCmpSlt(...)

binaryninja.highlevelil.HighLevelILCmpUge(...)

binaryninja.highlevelil.HighLevelILCmpUgt(...)

binaryninja.highlevelil.HighLevelILCmpUle(...)

binaryninja.highlevelil.HighLevelILCmpUlt(...)

binaryninja.highlevelil.HighLevelILComparisonBase(...)

binaryninja.highlevelil.HighLevelILConst(...)

binaryninja.highlevelil.HighLevelILConstData(...)

binaryninja.highlevelil.HighLevelILConstPtr(...)

binaryninja.highlevelil.HighLevelILContinue(...)

binaryninja.highlevelil.HighLevelILDeref(...)

binaryninja.highlevelil.HighLevelILDerefField(...)

binaryninja.highlevelil.HighLevelILDerefFieldSsa(...)

binaryninja.highlevelil.HighLevelILDerefSsa(...)

binaryninja.highlevelil.HighLevelILDivs(...)

binaryninja.highlevelil.HighLevelILDivsDp(...)

binaryninja.highlevelil.HighLevelILDivu(...)

binaryninja.highlevelil.HighLevelILDivuDp(...)

binaryninja.highlevelil.HighLevelILDoWhile(...)

binaryninja.highlevelil.HighLevelILDoWhileSsa(...)

binaryninja.highlevelil.HighLevelILExpr(index)

class HighLevelILExpr hold the index of IL Expressions.

binaryninja.highlevelil.HighLevelILExternPtr(...)

binaryninja.highlevelil.HighLevelILFabs(...)

binaryninja.highlevelil.HighLevelILFadd(...)

binaryninja.highlevelil.HighLevelILFcmpE(...)

binaryninja.highlevelil.HighLevelILFcmpGe(...)

binaryninja.highlevelil.HighLevelILFcmpGt(...)

binaryninja.highlevelil.HighLevelILFcmpLe(...)

binaryninja.highlevelil.HighLevelILFcmpLt(...)

binaryninja.highlevelil.HighLevelILFcmpNe(...)

binaryninja.highlevelil.HighLevelILFcmpO(...)

binaryninja.highlevelil.HighLevelILFcmpUo(...)

binaryninja.highlevelil.HighLevelILFdiv(...)

binaryninja.highlevelil.HighLevelILFloatConst(...)

binaryninja.highlevelil.HighLevelILFloatConv(...)

binaryninja.highlevelil.HighLevelILFloatToInt(...)

binaryninja.highlevelil.HighLevelILFloor(...)

binaryninja.highlevelil.HighLevelILFmul(...)

binaryninja.highlevelil.HighLevelILFneg(...)

binaryninja.highlevelil.HighLevelILFor(...)

binaryninja.highlevelil.HighLevelILForSsa(...)

binaryninja.highlevelil.HighLevelILFsqrt(...)

binaryninja.highlevelil.HighLevelILFsub(...)

binaryninja.highlevelil.HighLevelILFtrunc(...)

binaryninja.highlevelil.HighLevelILFunction([...])

class HighLevelILFunction contains the a HighLevelILInstruction object that makes up the abstract syntax tree of a function.

binaryninja.highlevelil.HighLevelILGoto(...)

binaryninja.highlevelil.HighLevelILIf(...)

binaryninja.highlevelil.HighLevelILImport(...)

binaryninja.highlevelil.HighLevelILInstruction(...)

class HighLevelILInstruction High Level Intermediate Language Instructions form an abstract syntax tree of the code.

binaryninja.highlevelil.HighLevelILIntToFloat(...)

binaryninja.highlevelil.HighLevelILIntrinsic(...)

binaryninja.highlevelil.HighLevelILIntrinsicSsa(...)

binaryninja.highlevelil.HighLevelILJump(...)

binaryninja.highlevelil.HighLevelILLabel(...)

binaryninja.highlevelil.HighLevelILLowPart(...)

binaryninja.highlevelil.HighLevelILLsl(...)

binaryninja.highlevelil.HighLevelILLsr(...)

binaryninja.highlevelil.HighLevelILMemPhi(...)

binaryninja.highlevelil.HighLevelILMods(...)

binaryninja.highlevelil.HighLevelILModsDp(...)

binaryninja.highlevelil.HighLevelILModu(...)

binaryninja.highlevelil.HighLevelILModuDp(...)

binaryninja.highlevelil.HighLevelILMul(...)

binaryninja.highlevelil.HighLevelILMulsDp(...)

binaryninja.highlevelil.HighLevelILMuluDp(...)

binaryninja.highlevelil.HighLevelILNeg(...)

binaryninja.highlevelil.HighLevelILNop(...)

binaryninja.highlevelil.HighLevelILNoret(...)

binaryninja.highlevelil.HighLevelILNot(...)

binaryninja.highlevelil.HighLevelILOperationAndSize(...)

binaryninja.highlevelil.HighLevelILOr(...)

binaryninja.highlevelil.HighLevelILRet(...)

binaryninja.highlevelil.HighLevelILRlc(...)

binaryninja.highlevelil.HighLevelILRol(...)

binaryninja.highlevelil.HighLevelILRor(...)

binaryninja.highlevelil.HighLevelILRoundToInt(...)

binaryninja.highlevelil.HighLevelILRrc(...)

binaryninja.highlevelil.HighLevelILSbb(...)

binaryninja.highlevelil.HighLevelILSplit(...)

binaryninja.highlevelil.HighLevelILStructField(...)

binaryninja.highlevelil.HighLevelILSub(...)

binaryninja.highlevelil.HighLevelILSwitch(...)

binaryninja.highlevelil.HighLevelILSx(...)

binaryninja.highlevelil.HighLevelILSyscall(...)

binaryninja.highlevelil.HighLevelILSyscallSsa(...)

binaryninja.highlevelil.HighLevelILTailcall(...)

binaryninja.highlevelil.HighLevelILTestBit(...)

binaryninja.highlevelil.HighLevelILTrap(...)

binaryninja.highlevelil.HighLevelILUnaryBase(...)

binaryninja.highlevelil.HighLevelILUndef(...)

binaryninja.highlevelil.HighLevelILUnimpl(...)

binaryninja.highlevelil.HighLevelILUnimplMem(...)

binaryninja.highlevelil.HighLevelILUnreachable(...)

binaryninja.highlevelil.HighLevelILVar(...)

binaryninja.highlevelil.HighLevelILVarDeclare(...)

binaryninja.highlevelil.HighLevelILVarInit(...)

binaryninja.highlevelil.HighLevelILVarInitSsa(...)

binaryninja.highlevelil.HighLevelILVarPhi(...)

binaryninja.highlevelil.HighLevelILVarSsa(...)

binaryninja.highlevelil.HighLevelILWhile(...)

binaryninja.highlevelil.HighLevelILWhileSsa(...)

binaryninja.highlevelil.HighLevelILXor(...)

binaryninja.highlevelil.HighLevelILZx(...)

class CoreHighLevelILInstruction(operation: binaryninja.enums.HighLevelILOperation, attributes: int, source_operand: int, size: int, operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex], address: int, parent: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>)[source]

Bases: object

Parameters:
  • operation (HighLevelILOperation) –

  • attributes (int) –

  • source_operand (int) –

  • size (int) –

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

  • address (int) –

  • parent (ExpressionIndex) –

classmethod from_BNHighLevelILInstruction(instr: BNHighLevelILInstruction) CoreHighLevelILInstruction[source]
Parameters:

instr (BNHighLevelILInstruction) –

Return type:

CoreHighLevelILInstruction

address: int
attributes: int
operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex]
operation: HighLevelILOperation
parent: ExpressionIndex
size: int
source_operand: int
class GotoLabel(function: 'HighLevelILFunction', id: int)[source]

Bases: object

Parameters:
property definition: HighLevelILInstruction | None
function: HighLevelILFunction
id: int
property label_id: int
property name: str
property uses: List[HighLevelILInstruction]
class HighLevelILAdc(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILCarryBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILAdd(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Arithmetic

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILAddOverflow(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Arithmetic

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILAddressOf(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
property vars_address_taken: List[SSAVariable | Variable]

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

Note

This property has some nuance to it, so use carefully. This property will return only those variable which directly have their address taken such as &var_4 or &var_8.d but not those which are involved in an address calculation such as &(var_4 + 0) or &var_4[0] even though they may be functionally equivalent.

class HighLevelILAnd(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Arithmetic

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILArrayIndex(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
property index: HighLevelILInstruction
instr_index: InstructionIndex
property src: HighLevelILInstruction
class HighLevelILArrayIndexSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, SSA

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
property index: HighLevelILInstruction
instr_index: InstructionIndex
property src: HighLevelILInstruction
property src_memory: int
class HighLevelILAsr(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Arithmetic

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILAssign(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property dest: HighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property src: HighLevelILInstruction
property vars_written: List[SSAVariable | Variable]

List of variables value is written by this instruction

class HighLevelILAssignMemSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, SSA

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property dest: HighLevelILInstruction
property dest_memory: int
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property src: HighLevelILInstruction
property src_memory: int
class HighLevelILAssignUnpack(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property dest: List[HighLevelILInstruction]
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property src: HighLevelILInstruction
property vars_written: List[SSAVariable | Variable]

List of variables value is written by this instruction

class HighLevelILAssignUnpackMemSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, SSA, Memory

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property dest: List[HighLevelILInstruction]
property dest_memory: int
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property src: HighLevelILInstruction
property src_memory: int
class HighLevelILBasicBlock(handle: LP_BNBasicBlock, owner: HighLevelILFunction, view: BinaryView | None)[source]

Bases: BasicBlock

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

Parameters:
property il_function: HighLevelILFunction
property instruction_count: int
class HighLevelILBinaryBase(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, BinaryOperation

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property left: HighLevelILInstruction
property right: HighLevelILInstruction
class HighLevelILBlock(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction

Parameters:
as_ast: bool
property body: List[HighLevelILInstruction]
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILBoolToInt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILBp(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Terminal

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILBreak(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Terminal

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCall(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Localcall

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property dest: HighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property params: List[HighLevelILInstruction]
class HighLevelILCallSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Localcall, SSA

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property dest: HighLevelILInstruction
property dest_memory: int
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property params: List[HighLevelILInstruction]
property src_memory: int
class HighLevelILCarryBase(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Arithmetic

Parameters:
as_ast: bool
property carry: HighLevelILInstruction
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property left: HighLevelILInstruction
property right: HighLevelILInstruction
class HighLevelILCase(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction

Parameters:
as_ast: bool
property body: HighLevelILInstruction
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property values: List[HighLevelILInstruction]
class HighLevelILCeil(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpE(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpNe(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpSge(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, Signed

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpSgt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, Signed

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpSle(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, Signed

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpSlt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, Signed

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpUge(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpUgt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpUle(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILCmpUlt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILComparisonBase(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Comparison

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILConst(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Constant

Parameters:
as_ast: bool
property constant: int
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILConstData(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Constant

Parameters:
as_ast: bool
property constant_data: ConstantData
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILConstPtr(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Constant

Parameters:
as_ast: bool
property constant: int
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property string: Tuple[str, StringType] | None
class HighLevelILContinue(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, ControlFlow

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILDeref(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILDerefField(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property member_index: int | None
property offset: int
property src: HighLevelILInstruction
class HighLevelILDerefFieldSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, SSA

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property member_index: int | None
property offset: int
property src: HighLevelILInstruction
property src_memory: int
class HighLevelILDerefSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, SSA

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property src: HighLevelILInstruction
property src_memory: int
class HighLevelILDivs(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Signed

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILDivsDp(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Signed, DoublePrecision

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILDivu(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, Arithmetic

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILDivuDp(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, DoublePrecision

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILDoWhile(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Loop

Parameters:
as_ast: bool
property body: HighLevelILInstruction
property condition: HighLevelILInstruction
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILDoWhileSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Loop, SSA

Parameters:
as_ast: bool
property body: HighLevelILInstruction
property condition: HighLevelILInstruction
property condition_phi: HighLevelILInstruction
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILExpr(index: ExpressionIndex)[source]

Bases: object

class HighLevelILExpr hold the index of IL Expressions.

Note

Use ExpressionIndex instead

Parameters:

index (ExpressionIndex) –

property index: ExpressionIndex
class HighLevelILExternPtr(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Constant

Parameters:
as_ast: bool
property constant: int
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property offset: int
class HighLevelILFabs(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFadd(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpE(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpGe(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpGt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpLe(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpLt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpNe(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpO(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFcmpUo(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILComparisonBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFdiv(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFloatConst(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Constant

Parameters:
as_ast: bool
property constant: float
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFloatConv(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFloatToInt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFloor(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFmul(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFneg(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFor(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Loop

Parameters:
as_ast: bool
property body: HighLevelILInstruction
property condition: HighLevelILInstruction
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
property init: HighLevelILInstruction
instr_index: InstructionIndex
property update: HighLevelILInstruction
class HighLevelILForSsa(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Loop, SSA

Parameters:
as_ast: bool
property body: HighLevelILInstruction
property condition: HighLevelILInstruction
property condition_phi: HighLevelILInstruction
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
property init: HighLevelILInstruction
instr_index: InstructionIndex
property update: HighLevelILInstruction
class HighLevelILFsqrt(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFsub(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILBinaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFtrunc(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILFunction(arch: Architecture | None = None, handle: BNHighLevelILFunction | None = None, source_func: Function | None = None)[source]

Bases: object

class HighLevelILFunction contains the a HighLevelILInstruction object that makes up the abstract syntax tree of a function.

Parameters:
  • arch (Architecture | None) –

  • handle (BNHighLevelILFunction | None) –

  • source_func (Function | None) –

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

add_operand_list returns an operand list expression for the given list of integer operands.

Parameters:

operands (list(int)) – list of operand numbers

Returns:

an operand list expression

Return type:

ExpressionIndex

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

settings (DisassemblySettings | None) –

Return type:

CoreFlowGraph

expr(operation: str | HighLevelILOperation, a: int = 0, b: int = 0, c: int = 0, d: int = 0, e: int = 0, size: int = 0) ExpressionIndex[source]
Parameters:
Return type:

ExpressionIndex

finalize() None[source]

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

Return type:

None

generate_ssa_form(variables: List[Variable] | None = None) None[source]

generate_ssa_form generate SSA form given the current HLIL

Parameters:

variables (list(Variable)) – optional list of aliased variables

Return type:

None

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

get_basic_block_at returns the BasicBlock at the given HLIL instruction index.

Parameters:

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

Example:
>>> current_il_function.get_basic_block_at(current_il_index)
<llil block: x86@19-26>
Return type:

BasicBlock | None

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_label(label_idx: int) HighLevelILInstruction | None[source]
Parameters:

label_idx (int) –

Return type:

HighLevelILInstruction | None

get_label_uses(label_idx: int) List[HighLevelILInstruction][source]
Parameters:

label_idx (int) –

Return type:

List[HighLevelILInstruction]

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

expr (ExpressionIndex) –

Return type:

ExpressionIndex | None

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

expr (ExpressionIndex) –

Return type:

List[ExpressionIndex]

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

instr (int) –

Return type:

int

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

instr (int) –

Return type:

int

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

version (int) –

Return type:

HighLevelILInstruction | None

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

version (int) –

Return type:

List[HighLevelILInstruction]

get_ssa_var_definition(ssa_var: SSAVariable | HighLevelILVarSsa) HighLevelILInstruction | 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 | HighLevelILVarSsa) –

Return type:

HighLevelILInstruction | None

get_ssa_var_uses(ssa_var: SSAVariable | HighLevelILVarSsa) List[HighLevelILInstruction][source]

Gets all the instructions that use the given SSA variable.

Parameters:

ssa_var (SSAVariable | HighLevelILVarSsa) –

Return type:

List[HighLevelILInstruction]

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

var (Variable) –

Return type:

List[HighLevelILInstruction]

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

var (Variable) –

Return type:

List[HighLevelILInstruction]

is_ssa_var_live(ssa_var: SSAVariable) bool[source]

is_ssa_var_live determines if ssa_var is live at any point in the function

Parameters:

ssa_var (SSAVariable) – the SSA variable to query

Returns:

whether the variable is live at any point in the function

Return type:

bool

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

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

Parameters:
  • ssa_var (SSAVariable) –

  • instr (InstructionIndex) –

Return type:

bool

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

is_var_live_at determines if var is live at a given point in the function

Parameters:
  • var (Variable) –

  • instr (InstructionIndex) –

Return type:

bool

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

replace_expr allows modification of HLIL expressions

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

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

Return type:

None

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

None

set_expr_attributes(expr: HighLevelILInstruction | 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

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

traverse iterates through all the instructions in the HighLevelILInstruction and calls the callback function for each instruction and sub-instruction. See the Developer Docs for more examples.

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

  • 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:
>>> # find all calls to memcpy where the third parameter is not a constant
>>> def find_non_constant_memcpy(i, target) -> HighLevelILInstruction:
...     match i:
...             case Localcall(dest=Constant(constant=c), params=[_, _, p]) if c == target and not isinstance(p, Constant):
...                     return i
>>> target_address = bv.get_symbol_by_raw_name('_memcpy').address
>>> list(current_il_function.traverse(find_non_constant_memcpy, target_address))
visit(cb: Callable[[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str, HighLevelILInstruction | 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 (HighLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

Returns:

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

Return type:

bool

Deprecated since version 4.0.4907: Use HighLevelILFunction.traverse instead.

visit_all(cb: Callable[[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str, HighLevelILInstruction | 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 (HighLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

Returns:

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

Return type:

bool

Deprecated since version 4.0.4907: Use HighLevelILFunction.traverse instead.

visit_operands(cb: Callable[[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str, HighLevelILInstruction | 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 (HighLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

Returns:

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

Return type:

bool

Deprecated since version 4.0.4907: Use HighLevelILFunction.traverse instead.

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 HighLevelIlFunction.vars and HighLevelIlFunction.source_function.parameter_vars

property arch: Architecture
property basic_blocks: HighLevelILBasicBlockList
property current_address: int

Current IL Address (read/write)

property il_form: FunctionGraphType
property instructions: Generator[HighLevelILInstruction, None, None]

A generator of hlil instructions of the current function

property medium_level_il: MediumLevelILFunction | None

Medium level IL for this function

property mlil: MediumLevelILFunction | None

Alias for medium_level_il

property non_ssa_form: HighLevelILFunction | None

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

property root: HighLevelILInstruction | None

Root of the abstract syntax tree

property source_function: Function
property ssa_form: HighLevelILFunction

High level IL in SSA form (read-only)

property ssa_vars: List[SSAVariable]

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

property vars: List[Variable] | List[SSAVariable]

This gets just the HLIL variables - you may be interested in the union of HighLevelIlFunction.source_function.parameter_vars and HighLevelIlFunction.aliased_vars as well for all the variables used in the function

property view: BinaryView
class HighLevelILGoto(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Terminal

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property target: GotoLabel
class HighLevelILIf(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, ControlFlow

Parameters:
as_ast: bool
property condition: HighLevelILInstruction
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

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

expr_index: ExpressionIndex
property false: HighLevelILInstruction
function: HighLevelILFunction
instr_index: InstructionIndex
property true: HighLevelILInstruction
class HighLevelILImport(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Constant

Parameters:
as_ast: bool
property constant: int
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILInstruction(function: HighLevelILFunction, expr_index: ExpressionIndex, core_instr: CoreHighLevelILInstruction, as_ast: bool, instr_index: InstructionIndex)[source]

Bases: BaseILInstruction

class HighLevelILInstruction High Level Intermediate Language Instructions form an abstract syntax tree of the code. Control flow structures are present as high level constructs in the HLIL tree.

Parameters:
classmethod create(func: HighLevelILFunction, expr_index: ExpressionIndex, as_ast: bool = True, instr_index: InstructionIndex | None = None) HighLevelILInstruction[source]
Parameters:
  • func (HighLevelILFunction) –

  • expr_index (ExpressionIndex) –

  • as_ast (bool) –

  • instr_index (InstructionIndex | None) –

Return type:

HighLevelILInstruction

get_constant_data(operand_index1: int, operand_index2: int) ConstantData[source]
Parameters:
  • operand_index1 (int) –

  • operand_index2 (int) –

Return type:

ConstantData

get_expr(operand_index: int) HighLevelILInstruction[source]
Parameters:

operand_index (int) –

Return type:

HighLevelILInstruction

get_expr_list(operand_index1: int, operand_index2: int) List[HighLevelILInstruction][source]
Parameters:
  • operand_index1 (int) –

  • operand_index2 (int) –

Return type:

List[HighLevelILInstruction]

get_float(operand_index: int) float[source]
Parameters:

operand_index (int) –

Return type:

float

get_int(operand_index: int) int[source]
Parameters:

operand_index (int) –

Return type:

int

get_int_list(operand_index: int) List[int][source]
Parameters:

operand_index (int) –

Return type:

List[int]

get_intrinsic(operand_index: int) ILIntrinsic[source]
Parameters:

operand_index (int) –

Return type:

ILIntrinsic

get_label(operand_index: int) GotoLabel[source]
Parameters:

operand_index (int) –

Return type:

GotoLabel

get_member_index(operand_index: int) int | None[source]
Parameters:

operand_index (int) –

Return type:

int | None

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

options (List[DataFlowQueryOption] | None) –

Return type:

PossibleValueSet

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

var (Variable) –

Return type:

int

get_var(operand_index: int) Variable[source]
Parameters:

operand_index (int) –

Return type:

Variable

get_var_ssa(operand_index1: int, operand_index2: int) SSAVariable[source]
Parameters:
  • operand_index1 (int) –

  • operand_index2 (int) –

Return type:

SSAVariable

get_var_ssa_dest_and_src(operand_index1: int, operand_index2: int) SSAVariable[source]
Parameters:
  • operand_index1 (int) –

  • operand_index2 (int) –

Return type:

SSAVariable

get_var_ssa_list(operand_index1: int, _: int) List[SSAVariable][source]
Parameters:
  • operand_index1 (int) –

  • _ (int) –

Return type:

List[SSAVariable]

static show_hlil_hierarchy()[source]

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

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

traverse is a generator that allows you to traverse the HLIL AST in a depth-first manner. It will yield the result of the callback function for each node in the AST. Arguments can be passed to the callback function using args and kwargs. See the Developer Docs for more examples.

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

  • 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: HighLevelILInstruction, 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, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str, HighLevelILInstruction | None], bool], name: str = 'root', parent: HighLevelILInstruction | None = None) bool[source]

Visits all HighLevelILInstructions 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 (HighLevelILVisitorCallback) – Callback function that takes the name of the operand, the operand, operand type, and parent instruction

  • name (str) –

  • parent (HighLevelILInstruction | None) –

Returns:

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

Example:

Return type:

bool

>>> 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 bv.hlil_instructions:
>>>     inst.visit(visitor)

Deprecated since version 4.0.4907: Use HighLevelILInstruction.traverse instead.

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

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

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

  • name (str) –

  • parent (HighLevelILInstruction | None) –

Returns:

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

Return type:

bool

Deprecated since version 4.0.4907: Use HighLevelILInstruction.traverse instead.

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

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

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

  • name (str) –

  • parent (HighLevelILInstruction | None) –

Returns:

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

Return type:

bool

Deprecated since version 4.0.4907: Use HighLevelILInstruction.traverse instead.

ILOperations: ClassVar[Mapping[HighLevelILOperation, List[Tuple[str, str]]]] = {HighLevelILOperation.HLIL_NOP: [], HighLevelILOperation.HLIL_BLOCK: [('body', 'expr_list')], HighLevelILOperation.HLIL_IF: [('condition', 'expr'), ('true', 'expr'), ('false', 'expr')], HighLevelILOperation.HLIL_WHILE: [('condition', 'expr'), ('body', 'expr')], HighLevelILOperation.HLIL_DO_WHILE: [('body', 'expr'), ('condition', 'expr')], HighLevelILOperation.HLIL_FOR: [('init', 'expr'), ('condition', 'expr'), ('update', 'expr'), ('body', 'expr')], HighLevelILOperation.HLIL_SWITCH: [('condition', 'expr'), ('default', 'expr'), ('cases', 'expr_list')], HighLevelILOperation.HLIL_CASE: [('values', 'expr_list'), ('body', 'expr')], HighLevelILOperation.HLIL_BREAK: [], HighLevelILOperation.HLIL_CONTINUE: [], HighLevelILOperation.HLIL_JUMP: [('dest', 'expr')], HighLevelILOperation.HLIL_RET: [('src', 'expr_list')], HighLevelILOperation.HLIL_NORET: [], HighLevelILOperation.HLIL_GOTO: [('target', 'label')], HighLevelILOperation.HLIL_LABEL: [('target', 'label')], HighLevelILOperation.HLIL_VAR_DECLARE: [('var', 'var')], HighLevelILOperation.HLIL_VAR_INIT: [('dest', 'var'), ('src', 'expr')], HighLevelILOperation.HLIL_ASSIGN: [('dest', 'expr'), ('src', 'expr')], HighLevelILOperation.HLIL_ASSIGN_UNPACK: [('dest', 'expr_list'), ('src', 'expr')], HighLevelILOperation.HLIL_VAR: [('var', 'var')], HighLevelILOperation.HLIL_STRUCT_FIELD: [('src', 'expr'), ('offset', 'int'), ('member_index', 'member_index')], HighLevelILOperation.HLIL_ARRAY_INDEX: [('src', 'expr'), ('index', 'expr')], HighLevelILOperation.HLIL_SPLIT: [('high', 'expr'), ('low', 'expr')], HighLevelILOperation.HLIL_DEREF: [('src', 'expr')], HighLevelILOperation.HLIL_DEREF_FIELD: [('src', 'expr'), ('offset', 'int'), ('member_index', 'member_index')], HighLevelILOperation.HLIL_ADDRESS_OF: [('src', 'expr')], HighLevelILOperation.HLIL_CONST: [('constant', 'int')], HighLevelILOperation.HLIL_CONST_DATA: [('constant_data', 'constant_data')], HighLevelILOperation.HLIL_CONST_PTR: [('constant', 'int')], HighLevelILOperation.HLIL_EXTERN_PTR: [('constant', 'int'), ('offset', 'int')], HighLevelILOperation.HLIL_FLOAT_CONST: [('constant', 'float')], HighLevelILOperation.HLIL_IMPORT: [('constant', 'int')], HighLevelILOperation.HLIL_ADD: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_ADC: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], HighLevelILOperation.HLIL_SUB: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_SBB: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], HighLevelILOperation.HLIL_AND: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_OR: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_XOR: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_LSL: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_LSR: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_ASR: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_ROL: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_RLC: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], HighLevelILOperation.HLIL_ROR: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_RRC: [('left', 'expr'), ('right', 'expr'), ('carry', 'expr')], HighLevelILOperation.HLIL_MUL: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_MULU_DP: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_MULS_DP: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_DIVU: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_DIVU_DP: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_DIVS: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_DIVS_DP: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_MODU: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_MODU_DP: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_MODS: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_MODS_DP: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_NEG: [('src', 'expr')], HighLevelILOperation.HLIL_NOT: [('src', 'expr')], HighLevelILOperation.HLIL_SX: [('src', 'expr')], HighLevelILOperation.HLIL_ZX: [('src', 'expr')], HighLevelILOperation.HLIL_LOW_PART: [('src', 'expr')], HighLevelILOperation.HLIL_CALL: [('dest', 'expr'), ('params', 'expr_list')], HighLevelILOperation.HLIL_CMP_E: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_NE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_SLT: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_ULT: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_SLE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_ULE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_SGE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_UGE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_SGT: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_CMP_UGT: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_TEST_BIT: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_BOOL_TO_INT: [('src', 'expr')], HighLevelILOperation.HLIL_ADD_OVERFLOW: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_SYSCALL: [('params', 'expr_list')], HighLevelILOperation.HLIL_TAILCALL: [('dest', 'expr'), ('params', 'expr_list')], HighLevelILOperation.HLIL_INTRINSIC: [('intrinsic', 'intrinsic'), ('params', 'expr_list')], HighLevelILOperation.HLIL_BP: [], HighLevelILOperation.HLIL_TRAP: [('vector', 'int')], HighLevelILOperation.HLIL_UNDEF: [], HighLevelILOperation.HLIL_UNIMPL: [], HighLevelILOperation.HLIL_UNIMPL_MEM: [('src', 'expr')], HighLevelILOperation.HLIL_FADD: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FSUB: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FMUL: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FDIV: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FSQRT: [('src', 'expr')], HighLevelILOperation.HLIL_FNEG: [('src', 'expr')], HighLevelILOperation.HLIL_FABS: [('src', 'expr')], HighLevelILOperation.HLIL_FLOAT_TO_INT: [('src', 'expr')], HighLevelILOperation.HLIL_INT_TO_FLOAT: [('src', 'expr')], HighLevelILOperation.HLIL_FLOAT_CONV: [('src', 'expr')], HighLevelILOperation.HLIL_ROUND_TO_INT: [('src', 'expr')], HighLevelILOperation.HLIL_FLOOR: [('src', 'expr')], HighLevelILOperation.HLIL_CEIL: [('src', 'expr')], HighLevelILOperation.HLIL_FTRUNC: [('src', 'expr')], HighLevelILOperation.HLIL_FCMP_E: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FCMP_NE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FCMP_LT: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FCMP_LE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FCMP_GE: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FCMP_GT: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FCMP_O: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_FCMP_UO: [('left', 'expr'), ('right', 'expr')], HighLevelILOperation.HLIL_UNREACHABLE: [], HighLevelILOperation.HLIL_WHILE_SSA: [('condition_phi', 'expr'), ('condition', 'expr'), ('body', 'expr')], HighLevelILOperation.HLIL_DO_WHILE_SSA: [('body', 'expr'), ('condition_phi', 'expr'), ('condition', 'expr')], HighLevelILOperation.HLIL_FOR_SSA: [('init', 'expr'), ('condition_phi', 'expr'), ('condition', 'expr'), ('update', 'expr'), ('body', 'expr')], HighLevelILOperation.HLIL_VAR_INIT_SSA: [('dest', 'var_ssa'), ('src', 'expr')], HighLevelILOperation.HLIL_ASSIGN_MEM_SSA: [('dest', 'expr'), ('dest_memory', 'int'), ('src', 'expr'), ('src_memory', 'int')], HighLevelILOperation.HLIL_ASSIGN_UNPACK_MEM_SSA: [('dest', 'expr_list'), ('dest_memory', 'int'), ('src', 'expr'), ('src_memory', 'int')], HighLevelILOperation.HLIL_VAR_SSA: [('var', 'var_ssa')], HighLevelILOperation.HLIL_ARRAY_INDEX_SSA: [('src', 'expr'), ('src_memory', 'int'), ('index', 'expr')], HighLevelILOperation.HLIL_DEREF_SSA: [('src', 'expr'), ('src_memory', 'int')], HighLevelILOperation.HLIL_DEREF_FIELD_SSA: [('src', 'expr'), ('src_memory', 'int'), ('offset', 'int'), ('member_index', 'member_index')], HighLevelILOperation.HLIL_CALL_SSA: [('dest', 'expr'), ('params', 'expr_list'), ('dest_memory', 'int'), ('src_memory', 'int')], HighLevelILOperation.HLIL_SYSCALL_SSA: [('params', 'expr_list'), ('dest_memory', 'int'), ('src_memory', 'int')], HighLevelILOperation.HLIL_INTRINSIC_SSA: [('intrinsic', 'intrinsic'), ('params', 'expr_list'), ('dest_memory', 'int'), ('src_memory', 'int')], HighLevelILOperation.HLIL_VAR_PHI: [('dest', 'var_ssa'), ('src', 'var_ssa_list')], HighLevelILOperation.HLIL_MEM_PHI: [('dest', 'int'), ('src', 'int_list')]}
property address: int
as_ast: bool
property ast: HighLevelILInstruction

This expression with full AST printing (read-only)

property attributes: Set[ILInstructionAttribute]

The set of optional attributes placed on the instruction

core_instr: CoreHighLevelILInstruction
property core_operands: Tuple[ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex, ExpressionIndex]
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

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

expr_index: ExpressionIndex
property expr_type: Type | None

Type of expression

function: HighLevelILFunction
property il_basic_block: HighLevelILBasicBlock | None

IL basic block object containing this expression (read-only) (only available on finalized functions). Returns None for HLIL_BLOCK expressions as these can contain multiple basic blocks.

property instr: HighLevelILInstruction

The statement that this expression belongs to (read-only)

instr_index: InstructionIndex
property instruction_operands: List[HighLevelILInstruction]
property lines: Generator[DisassemblyTextLine, None, None]

HLIL text lines (read-only)

property llil: LowLevelILInstruction | None

Alias for low_level_il

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

Low level IL form of this expression

property medium_level_il: MediumLevelILInstruction | None

Medium level IL form of this expression

property mlil: MediumLevelILInstruction | None

Alias for medium_level_il

property mlils: List[MediumLevelILInstruction] | None
property non_ast: HighLevelILInstruction

This expression without full AST printing (read-only)

property non_ssa_form: HighLevelILInstruction | None

Non-SSA form of expression (read-only)

property operands: List[HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer]

Operands for the instruction

property operation: HighLevelILOperation
property parent: HighLevelILInstruction | None
property possible_values: PossibleValueSet

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

property postfix_operands: List[HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer | HighLevelILOperationAndSize]

All operands in the expression tree in postfix order

property prefix_operands: List[HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer | HighLevelILOperationAndSize]

All operands in the expression tree in prefix order

property size: int
property source_operand: ExpressionIndex
property ssa_form: HighLevelILInstruction

SSA form of expression (read-only)

property ssa_memory_version: int

Version of active memory contents in SSA form for this instruction

property tokens: List[InstructionTextToken]

HLIL tokens taken from the HLIL text lines (read-only) – does not include newlines or indentation, use lines for that information

property value: RegisterValue

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

property vars: List[SSAVariable | Variable]

Non-unique list of variables read by instruction

property vars_address_taken: List[SSAVariable | Variable]

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

Note

This property has some nuance to it, so use carefully. This property will return only those variable which directly have their address taken such as &var_4 or &var_8.d but not those which are involved in an address calculation such as &(var_4 + 0) or &var_4[0] even though they may be functionally equivalent.

property vars_read: List[SSAVariable | Variable]

Non-unique list of variables whose value is read by this instruction

property vars_written: List[SSAVariable | Variable]

List of variables value is written by this instruction

class HighLevelILIntToFloat(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILUnaryBase, FloatingPoint

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
expr_index: ExpressionIndex
function: HighLevelILFunction
instr_index: InstructionIndex
class HighLevelILIntrinsic(function: 'HighLevelILFunction', expr_index: <function NewType.<locals>.new_type at 0x7fc323ea5ca0>, core_instr: binaryninja.highlevelil.CoreHighLevelILInstruction, as_ast: bool, instr_index: <function NewType.<locals>.new_type at 0x7fc323ea5e50>)[source]

Bases: HighLevelILInstruction, Intrinsic

Parameters:
as_ast: bool
core_instr: CoreHighLevelILInstruction
property detailed_operands: List[Tuple[str, HighLevelILInstruction | ILIntrinsic | Variable | SSAVariable | List[int] | List[Variable] | List[SSAVariable] | List[HighLevelILInstruction] | int | None | float | GotoLabel | ConstantData | DataBuffer, str]]

Returns a list of tuples containing the 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: HighLevelILFunction
instr_index: InstructionIndex
property intrinsic