Medium Level IL

Detailed Description

Classes

struct  BinaryNinja::MediumLevelILLabel
 
class  BinaryNinja::MediumLevelILFunction
 
struct  BinaryNinja::SSAVariable
 
class  BinaryNinja::MediumLevelILInstructionAccessException
 
class  BinaryNinja::MediumLevelILIntegerList
 
class  BinaryNinja::MediumLevelILIndexList
 
class  BinaryNinja::MediumLevelILIndexMap
 
class  BinaryNinja::MediumLevelILVariableList
 
class  BinaryNinja::MediumLevelILSSAVariableList
 
class  BinaryNinja::MediumLevelILInstructionList
 
struct  BinaryNinja::MediumLevelILInstructionBase
 
struct  BinaryNinja::MediumLevelILInstruction
 
class  BinaryNinja::MediumLevelILOperand
 
class  BinaryNinja::MediumLevelILOperandList
 
struct  BinaryNinja::MediumLevelILConstantInstruction
 
struct  BinaryNinja::MediumLevelILConstantDataInstruction
 
struct  BinaryNinja::MediumLevelILOneOperandInstruction
 
struct  BinaryNinja::MediumLevelILTwoOperandInstruction
 
struct  BinaryNinja::MediumLevelILTwoOperandWithCarryInstruction
 

Enumerations

enum  BinaryNinja::MediumLevelILOperandType {
  BinaryNinja::IntegerMediumLevelOperand , BinaryNinja::ConstantDataMediumLevelOperand , BinaryNinja::IndexMediumLevelOperand , BinaryNinja::IntrinsicMediumLevelOperand ,
  BinaryNinja::ExprMediumLevelOperand , BinaryNinja::VariableMediumLevelOperand , BinaryNinja::SSAVariableMediumLevelOperand , BinaryNinja::IndexListMediumLevelOperand ,
  BinaryNinja::IndexMapMediumLevelOperand , BinaryNinja::VariableListMediumLevelOperand , BinaryNinja::SSAVariableListMediumLevelOperand , BinaryNinja::ExprListMediumLevelOperand
}
 
enum  BinaryNinja::MediumLevelILOperandUsage {
  BinaryNinja::SourceExprMediumLevelOperandUsage , BinaryNinja::SourceVariableMediumLevelOperandUsage , BinaryNinja::SourceSSAVariableMediumLevelOperandUsage , BinaryNinja::PartialSSAVariableSourceMediumLevelOperandUsage ,
  BinaryNinja::DestExprMediumLevelOperandUsage , BinaryNinja::DestVariableMediumLevelOperandUsage , BinaryNinja::DestSSAVariableMediumLevelOperandUsage , BinaryNinja::LeftExprMediumLevelOperandUsage ,
  BinaryNinja::RightExprMediumLevelOperandUsage , BinaryNinja::CarryExprMediumLevelOperandUsage , BinaryNinja::StackExprMediumLevelOperandUsage , BinaryNinja::ConditionExprMediumLevelOperandUsage ,
  BinaryNinja::HighVariableMediumLevelOperandUsage , BinaryNinja::LowVariableMediumLevelOperandUsage , BinaryNinja::HighSSAVariableMediumLevelOperandUsage , BinaryNinja::LowSSAVariableMediumLevelOperandUsage ,
  BinaryNinja::OffsetMediumLevelOperandUsage , BinaryNinja::ConstantMediumLevelOperandUsage , BinaryNinja::ConstantDataMediumLevelOperandUsage , BinaryNinja::VectorMediumLevelOperandUsage ,
  BinaryNinja::IntrinsicMediumLevelOperandUsage , BinaryNinja::TargetMediumLevelOperandUsage , BinaryNinja::TrueTargetMediumLevelOperandUsage , BinaryNinja::FalseTargetMediumLevelOperandUsage ,
  BinaryNinja::DestMemoryVersionMediumLevelOperandUsage , BinaryNinja::SourceMemoryVersionMediumLevelOperandUsage , BinaryNinja::TargetsMediumLevelOperandUsage , BinaryNinja::SourceMemoryVersionsMediumLevelOperandUsage ,
  BinaryNinja::OutputVariablesMediumLevelOperandUsage , BinaryNinja::OutputVariablesSubExprMediumLevelOperandUsage , BinaryNinja::OutputSSAVariablesMediumLevelOperandUsage , BinaryNinja::OutputSSAVariablesSubExprMediumLevelOperandUsage ,
  BinaryNinja::OutputSSAMemoryVersionMediumLevelOperandUsage , BinaryNinja::ParameterExprsMediumLevelOperandUsage , BinaryNinja::SourceExprsMediumLevelOperandUsage , BinaryNinja::UntypedParameterExprsMediumLevelOperandUsage ,
  BinaryNinja::UntypedParameterSSAExprsMediumLevelOperandUsage , BinaryNinja::ParameterSSAMemoryVersionMediumLevelOperandUsage , BinaryNinja::SourceSSAVariablesMediumLevelOperandUsages
}
 

Class Documentation

◆ BinaryNinja::MediumLevelILLabel

struct BinaryNinja::MediumLevelILLabel

Public Member Functions

 MediumLevelILLabel ()
 

Additional Inherited Members

- Public Attributes inherited from BNMediumLevelILLabel
bool resolved
 
size_t ref
 
size_t operand
 

Constructor & Destructor Documentation

◆ MediumLevelILLabel()

MediumLevelILLabel::MediumLevelILLabel ( )

◆ BinaryNinja::MediumLevelILFunction

class BinaryNinja::MediumLevelILFunction

Public Member Functions

 MediumLevelILFunction (Architecture *arch, Function *func=nullptr)
 
 MediumLevelILFunction (BNMediumLevelILFunction *func)
 
Ref< FunctionGetFunction () const
 
Ref< ArchitectureGetArchitecture () const
 
uint64_t GetCurrentAddress () const
 
void SetCurrentAddress (Architecture *arch, uint64_t addr)
 
size_t GetInstructionStart (Architecture *arch, uint64_t addr)
 
void PrepareToCopyFunction (MediumLevelILFunction *func)
 
void PrepareToCopyBlock (BasicBlock *block)
 
BNMediumLevelILLabelGetLabelForSourceInstruction (size_t i)
 Get the MediumLevelILLabel for a given source instruction. More...
 
ExprId AddExpr (BNMediumLevelILOperation operation, size_t size, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0, ExprId e=0)
 
ExprId AddExprWithLocation (BNMediumLevelILOperation operation, uint64_t addr, uint32_t sourceOperand, size_t size, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0, ExprId e=0)
 
ExprId AddExprWithLocation (BNMediumLevelILOperation operation, const ILSourceLocation &loc, size_t size, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0, ExprId e=0)
 
ExprId Nop (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVar (size_t size, const Variable &dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarField (size_t size, const Variable &dest, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSplit (size_t size, const Variable &high, const Variable &low, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSSA (size_t size, const SSAVariable &dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSSAField (size_t size, const Variable &dest, size_t newVersion, size_t prevVersion, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarSSASplit (size_t size, const SSAVariable &high, const SSAVariable &low, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarAliased (size_t size, const Variable &dest, size_t newMemVersion, size_t prevMemVersion, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SetVarAliasedField (size_t size, const Variable &dest, size_t newMemVersion, size_t prevMemVersion, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Load (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LoadStruct (size_t size, ExprId src, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LoadSSA (size_t size, ExprId src, size_t memVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LoadStructSSA (size_t size, ExprId src, uint64_t offset, size_t memVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Store (size_t size, ExprId dest, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId StoreStruct (size_t size, ExprId dest, uint64_t offset, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId StoreSSA (size_t size, ExprId dest, size_t newMemVersion, size_t prevMemVersion, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId StoreStructSSA (size_t size, ExprId dest, uint64_t offset, size_t newMemVersion, size_t prevMemVersion, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Var (size_t size, const Variable &src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarField (size_t size, const Variable &src, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSplit (size_t size, const Variable &high, const Variable &low, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSSA (size_t size, const SSAVariable &src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSSAField (size_t size, const SSAVariable &src, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarAliased (size_t size, const Variable &src, size_t memVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarAliasedField (size_t size, const Variable &src, size_t memVersion, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarSplitSSA (size_t size, const SSAVariable &high, const SSAVariable &low, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId AddressOf (const Variable &var, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId AddressOfField (const Variable &var, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Const (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ConstPointer (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ExternPointer (size_t size, uint64_t val, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatConstRaw (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatConstSingle (float val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatConstDouble (double val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ImportedAddress (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ConstData (size_t size, const ConstantData &data, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Add (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId AddWithCarry (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Sub (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SubWithBorrow (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId And (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Or (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Xor (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ShiftLeft (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LogicalShiftRight (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ArithShiftRight (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateLeft (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateLeftCarry (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateRight (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RotateRightCarry (size_t size, ExprId left, ExprId right, ExprId carry, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Mult (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId MultDoublePrecSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId MultDoublePrecUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivDoublePrecSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId DivDoublePrecUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModDoublePrecSigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ModDoublePrecUnsigned (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Neg (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Not (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SignExtend (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ZeroExtend (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId LowPart (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Jump (ExprId dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId JumpTo (ExprId dest, const std::map< uint64_t, BNMediumLevelILLabel * > &targets, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId ReturnHint (ExprId dest, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Call (const std::vector< Variable > &output, ExprId dest, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallUntyped (const std::vector< Variable > &output, ExprId dest, const std::vector< ExprId > &params, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Syscall (const std::vector< Variable > &output, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SyscallUntyped (const std::vector< Variable > &output, const std::vector< ExprId > &params, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCall (const std::vector< Variable > &output, ExprId dest, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCallUntyped (const std::vector< Variable > &output, ExprId dest, const std::vector< ExprId > &params, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CallUntypedSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SyscallSSA (const std::vector< SSAVariable > &output, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SyscallUntypedSSA (const std::vector< SSAVariable > &output, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCallSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TailCallUntypedSSA (const std::vector< SSAVariable > &output, ExprId dest, const std::vector< ExprId > &params, size_t newMemVersion, size_t prevMemVersion, ExprId stack, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SeparateParamList (const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId SharedParamSlot (const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Return (const std::vector< ExprId > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId NoReturn (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareNotEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedLessThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedLessThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedLessEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedLessEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedGreaterEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedGreaterEqual (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareSignedGreaterThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId CompareUnsignedGreaterThan (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId TestBit (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId BoolToInt (size_t size, ExprId src, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId AddOverflow (size_t size, ExprId left, ExprId right, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Breakpoint (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Trap (int64_t vector, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Intrinsic (const std::vector< Variable > &outputs, uint32_t intrinsic, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId IntrinsicSSA (const std::vector< SSAVariable > &outputs, uint32_t intrinsic, const std::vector< ExprId > &params, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FreeVarSlot (const Variable &var, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FreeVarSlotSSA (const Variable &var, size_t newVersion, size_t prevVersion, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Undefined (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Unimplemented (const ILSourceLocation &loc=ILSourceLocation())
 
ExprId UnimplementedMemoryRef (size_t size, ExprId target, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId VarPhi (const SSAVariable &dest, const std::vector< SSAVariable > &sources, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId MemoryPhi (size_t destMemVersion, const std::vector< size_t > &sourceMemVersions, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatAdd (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatSub (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatMult (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatDiv (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatSqrt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatNeg (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatAbs (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatToInt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId IntToFloat (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatConvert (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId RoundToInt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Floor (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Ceil (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatTrunc (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareNotEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareLessThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareLessEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareGreaterEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareGreaterThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareOrdered (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId FloatCompareUnordered (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId Goto (BNMediumLevelILLabel &label, const ILSourceLocation &loc=ILSourceLocation())
 
ExprId If (ExprId operand, BNMediumLevelILLabel &t, BNMediumLevelILLabel &f, const ILSourceLocation &loc=ILSourceLocation())
 
void MarkLabel (BNMediumLevelILLabel &label)
 
ExprId AddInstruction (ExprId expr)
 
std::vector< uint64_t > GetOperandList (ExprId i, size_t listOperand)
 
ExprId AddLabelMap (const std::map< uint64_t, BNMediumLevelILLabel * > &labels)
 
ExprId AddOperandList (const std::vector< ExprId > operands)
 
ExprId AddIndexList (const std::vector< size_t > &operands)
 
ExprId AddVariableList (const std::vector< Variable > &vars)
 
ExprId AddSSAVariableList (const std::vector< SSAVariable > &vars)
 
BNMediumLevelILInstruction GetRawExpr (size_t i) const
 
MediumLevelILInstruction operator[] (size_t i)
 
MediumLevelILInstruction GetInstruction (size_t i)
 
MediumLevelILInstruction GetExpr (size_t i)
 
size_t GetIndexForInstruction (size_t i) const
 
size_t GetInstructionForExpr (size_t expr) const
 
size_t GetInstructionCount () const
 
size_t GetExprCount () const
 
void UpdateInstructionOperand (size_t i, size_t operandIndex, ExprId value)
 
void MarkInstructionForRemoval (size_t i)
 
void ReplaceInstruction (size_t i, ExprId expr)
 
void ReplaceExpr (size_t expr, size_t newExpr)
 
void SetExprAttributes (size_t expr, uint32_t attributes)
 
void Finalize ()
 
void GenerateSSAForm (bool analyzeConditionals=true, bool handleAliases=true, const std::set< Variable > &knownNotAliases=std::set< Variable >(), const std::set< Variable > &knownAliases=std::set< Variable >())
 
bool GetExprText (Architecture *arch, ExprId expr, std::vector< InstructionTextToken > &tokens, DisassemblySettings *settings=nullptr)
 
bool GetInstructionText (Function *func, Architecture *arch, size_t i, std::vector< InstructionTextToken > &tokens, DisassemblySettings *settings=nullptr)
 
void VisitInstructions (const std::function< void(BasicBlock *block, const MediumLevelILInstruction &instr)> &func)
 
void VisitAllExprs (const std::function< bool(BasicBlock *block, const MediumLevelILInstruction &expr)> &func)
 
std::vector< Ref< BasicBlock > > GetBasicBlocks () const
 
Ref< BasicBlockGetBasicBlockForInstruction (size_t i) const
 
Ref< MediumLevelILFunctionGetSSAForm () const
 
Ref< MediumLevelILFunctionGetNonSSAForm () const
 
size_t GetSSAInstructionIndex (size_t instr) const
 
size_t GetNonSSAInstructionIndex (size_t instr) const
 
size_t GetSSAExprIndex (size_t instr) const
 
size_t GetNonSSAExprIndex (size_t instr) const
 
size_t GetSSAVarDefinition (const SSAVariable &var) const
 
size_t GetSSAMemoryDefinition (size_t version) const
 
std::set< size_t > GetSSAVarUses (const SSAVariable &var) const
 
std::set< size_t > GetSSAMemoryUses (size_t version) const
 
bool IsSSAVarLive (const SSAVariable &var) const
 
std::set< size_t > GetVariableSSAVersions (const Variable &var) const
 
std::set< size_t > GetVariableDefinitions (const Variable &var) const
 
std::set< size_t > GetVariableUses (const Variable &var) const
 
RegisterValue GetSSAVarValue (const SSAVariable &var)
 
RegisterValue GetExprValue (size_t expr)
 
RegisterValue GetExprValue (const MediumLevelILInstruction &expr)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleExprValues (size_t expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleExprValues (const MediumLevelILInstruction &expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
size_t GetSSAVarVersionAtInstruction (const Variable &var, size_t instr) const
 
size_t GetSSAMemoryVersionAtInstruction (size_t instr) const
 
Variable GetVariableForRegisterAtInstruction (uint32_t reg, size_t instr) const
 
Variable GetVariableForFlagAtInstruction (uint32_t flag, size_t instr) const
 
Variable GetVariableForStackLocationAtInstruction (int64_t offset, size_t instr) const
 
RegisterValue GetRegisterValueAtInstruction (uint32_t reg, size_t instr)
 
RegisterValue GetRegisterValueAfterInstruction (uint32_t reg, size_t instr)
 
PossibleValueSet GetPossibleRegisterValuesAtInstruction (uint32_t reg, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleRegisterValuesAfterInstruction (uint32_t reg, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
RegisterValue GetFlagValueAtInstruction (uint32_t flag, size_t instr)
 
RegisterValue GetFlagValueAfterInstruction (uint32_t flag, size_t instr)
 
PossibleValueSet GetPossibleFlagValuesAtInstruction (uint32_t flag, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleFlagValuesAfterInstruction (uint32_t flag, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
RegisterValue GetStackContentsAtInstruction (int32_t offset, size_t len, size_t instr)
 
RegisterValue GetStackContentsAfterInstruction (int32_t offset, size_t len, size_t instr)
 
PossibleValueSet GetPossibleStackContentsAtInstruction (int32_t offset, size_t len, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
PossibleValueSet GetPossibleStackContentsAfterInstruction (int32_t offset, size_t len, size_t instr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >())
 
BNILBranchDependence GetBranchDependenceAtInstruction (size_t curInstr, size_t branchInstr) const
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependenceAtInstruction (size_t instr) const
 
Ref< LowLevelILFunctionGetLowLevelIL () const
 
size_t GetLowLevelILInstructionIndex (size_t instr) const
 
size_t GetLowLevelILExprIndex (size_t expr) const
 
std::set< size_t > GetLowLevelILExprIndexes (size_t expr) const
 
Ref< HighLevelILFunctionGetHighLevelIL () const
 
size_t GetHighLevelILInstructionIndex (size_t instr) const
 
size_t GetHighLevelILExprIndex (size_t expr) const
 
std::set< size_t > GetHighLevelILExprIndexes (size_t expr) const
 
Confidence< Ref< Type > > GetExprType (size_t expr)
 
Confidence< Ref< Type > > GetExprType (const MediumLevelILInstruction &expr)
 
void SetExprType (size_t expr, const Confidence< Ref< Type > > &type)
 SetExprType sets the type of a given expression. More...
 
void SetExprType (const MediumLevelILInstruction &expr, const Confidence< Ref< Type > > &type)
 
Ref< FlowGraphCreateFunctionGraph (DisassemblySettings *settings=nullptr)
 
std::set< size_t > GetLiveInstructionsForVariable (const Variable &var, bool includeLastUse=true)
 
Variable GetSplitVariableForDefinition (const Variable &var, size_t instrIndex)
 
- Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNMediumLevelILFunction, BNNewMediumLevelILFunctionReference, BNFreeMediumLevelILFunction >
 CoreRefCountObject ()
 
virtual ~CoreRefCountObject ()
 
BNMediumLevelILFunctionGetObject () const
 
void AddRef ()
 
void Release ()
 
void AddRefForRegistration ()
 
void ReleaseForRegistration ()
 
void AddRefForCallback ()
 
void ReleaseForCallback ()
 

Static Public Member Functions

static bool IsConstantType (BNMediumLevelILOperation op)
 
- Static Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNMediumLevelILFunction, BNNewMediumLevelILFunctionReference, BNFreeMediumLevelILFunction >
static BNMediumLevelILFunctionGetObject (CoreRefCountObject *obj)
 
static BNMediumLevelILFunctionGetObject (const CoreRefCountObject *obj)
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNMediumLevelILFunction, BNNewMediumLevelILFunctionReference, BNFreeMediumLevelILFunction >
std::atomic< int > m_refs
 
bool m_registeredRef
 
BNMediumLevelILFunctionm_object
 

Constructor & Destructor Documentation

◆ MediumLevelILFunction() [1/2]

MediumLevelILFunction::MediumLevelILFunction ( Architecture arch,
Function func = nullptr 
)

◆ MediumLevelILFunction() [2/2]

MediumLevelILFunction::MediumLevelILFunction ( BNMediumLevelILFunction func)

Member Function Documentation

◆ GetFunction()

Ref< Function > MediumLevelILFunction::GetFunction ( ) const

◆ GetArchitecture()

Ref< Architecture > MediumLevelILFunction::GetArchitecture ( ) const

◆ GetCurrentAddress()

uint64_t MediumLevelILFunction::GetCurrentAddress ( ) const

◆ SetCurrentAddress()

void MediumLevelILFunction::SetCurrentAddress ( Architecture arch,
uint64_t  addr 
)

◆ GetInstructionStart()

size_t MediumLevelILFunction::GetInstructionStart ( Architecture arch,
uint64_t  addr 
)

◆ PrepareToCopyFunction()

void MediumLevelILFunction::PrepareToCopyFunction ( MediumLevelILFunction func)

◆ PrepareToCopyBlock()

void MediumLevelILFunction::PrepareToCopyBlock ( BasicBlock block)

◆ GetLabelForSourceInstruction()

BNMediumLevelILLabel * MediumLevelILFunction::GetLabelForSourceInstruction ( size_t  i)

Get the MediumLevelILLabel for a given source instruction.

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

Parameters
iIndex of the source instruction
Returns
The MediumLevelILLabel for the source instruction

◆ AddExpr()

ExprId MediumLevelILFunction::AddExpr ( BNMediumLevelILOperation  operation,
size_t  size,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0,
ExprId  e = 0 
)

◆ AddExprWithLocation() [1/2]

ExprId MediumLevelILFunction::AddExprWithLocation ( BNMediumLevelILOperation  operation,
uint64_t  addr,
uint32_t  sourceOperand,
size_t  size,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0,
ExprId  e = 0 
)

◆ AddExprWithLocation() [2/2]

ExprId MediumLevelILFunction::AddExprWithLocation ( BNMediumLevelILOperation  operation,
const ILSourceLocation loc,
size_t  size,
ExprId  a = 0,
ExprId  b = 0,
ExprId  c = 0,
ExprId  d = 0,
ExprId  e = 0 
)

◆ Nop()

ExprId MediumLevelILFunction::Nop ( const ILSourceLocation loc = ILSourceLocation())

◆ SetVar()

ExprId MediumLevelILFunction::SetVar ( size_t  size,
const Variable dest,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarField()

ExprId MediumLevelILFunction::SetVarField ( size_t  size,
const Variable dest,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSplit()

ExprId MediumLevelILFunction::SetVarSplit ( size_t  size,
const Variable high,
const Variable low,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSSA()

ExprId MediumLevelILFunction::SetVarSSA ( size_t  size,
const SSAVariable dest,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSSAField()

ExprId MediumLevelILFunction::SetVarSSAField ( size_t  size,
const Variable dest,
size_t  newVersion,
size_t  prevVersion,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarSSASplit()

ExprId MediumLevelILFunction::SetVarSSASplit ( size_t  size,
const SSAVariable high,
const SSAVariable low,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarAliased()

ExprId MediumLevelILFunction::SetVarAliased ( size_t  size,
const Variable dest,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SetVarAliasedField()

ExprId MediumLevelILFunction::SetVarAliasedField ( size_t  size,
const Variable dest,
size_t  newMemVersion,
size_t  prevMemVersion,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Load()

ExprId MediumLevelILFunction::Load ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LoadStruct()

ExprId MediumLevelILFunction::LoadStruct ( size_t  size,
ExprId  src,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LoadSSA()

ExprId MediumLevelILFunction::LoadSSA ( size_t  size,
ExprId  src,
size_t  memVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LoadStructSSA()

ExprId MediumLevelILFunction::LoadStructSSA ( size_t  size,
ExprId  src,
uint64_t  offset,
size_t  memVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Store()

ExprId MediumLevelILFunction::Store ( size_t  size,
ExprId  dest,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ StoreStruct()

ExprId MediumLevelILFunction::StoreStruct ( size_t  size,
ExprId  dest,
uint64_t  offset,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ StoreSSA()

ExprId MediumLevelILFunction::StoreSSA ( size_t  size,
ExprId  dest,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ StoreStructSSA()

ExprId MediumLevelILFunction::StoreStructSSA ( size_t  size,
ExprId  dest,
uint64_t  offset,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Var()

ExprId MediumLevelILFunction::Var ( size_t  size,
const Variable src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarField()

ExprId MediumLevelILFunction::VarField ( size_t  size,
const Variable src,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSplit()

ExprId MediumLevelILFunction::VarSplit ( size_t  size,
const Variable high,
const Variable low,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSSA()

ExprId MediumLevelILFunction::VarSSA ( size_t  size,
const SSAVariable src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSSAField()

ExprId MediumLevelILFunction::VarSSAField ( size_t  size,
const SSAVariable src,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarAliased()

ExprId MediumLevelILFunction::VarAliased ( size_t  size,
const Variable src,
size_t  memVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarAliasedField()

ExprId MediumLevelILFunction::VarAliasedField ( size_t  size,
const Variable src,
size_t  memVersion,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarSplitSSA()

ExprId MediumLevelILFunction::VarSplitSSA ( size_t  size,
const SSAVariable high,
const SSAVariable low,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddressOf()

ExprId MediumLevelILFunction::AddressOf ( const Variable var,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddressOfField()

ExprId MediumLevelILFunction::AddressOfField ( const Variable var,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Const()

ExprId MediumLevelILFunction::Const ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ConstPointer()

ExprId MediumLevelILFunction::ConstPointer ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ExternPointer()

ExprId MediumLevelILFunction::ExternPointer ( size_t  size,
uint64_t  val,
uint64_t  offset,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConstRaw()

ExprId MediumLevelILFunction::FloatConstRaw ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConstSingle()

ExprId MediumLevelILFunction::FloatConstSingle ( float  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConstDouble()

ExprId MediumLevelILFunction::FloatConstDouble ( double  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ImportedAddress()

ExprId MediumLevelILFunction::ImportedAddress ( size_t  size,
uint64_t  val,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ConstData()

ExprId MediumLevelILFunction::ConstData ( size_t  size,
const ConstantData data,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Add()

ExprId MediumLevelILFunction::Add ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddWithCarry()

ExprId MediumLevelILFunction::AddWithCarry ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Sub()

ExprId MediumLevelILFunction::Sub ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SubWithBorrow()

ExprId MediumLevelILFunction::SubWithBorrow ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ And()

ExprId MediumLevelILFunction::And ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Or()

ExprId MediumLevelILFunction::Or ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Xor()

ExprId MediumLevelILFunction::Xor ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ShiftLeft()

ExprId MediumLevelILFunction::ShiftLeft ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LogicalShiftRight()

ExprId MediumLevelILFunction::LogicalShiftRight ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ArithShiftRight()

ExprId MediumLevelILFunction::ArithShiftRight ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateLeft()

ExprId MediumLevelILFunction::RotateLeft ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateLeftCarry()

ExprId MediumLevelILFunction::RotateLeftCarry ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateRight()

ExprId MediumLevelILFunction::RotateRight ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RotateRightCarry()

ExprId MediumLevelILFunction::RotateRightCarry ( size_t  size,
ExprId  left,
ExprId  right,
ExprId  carry,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Mult()

ExprId MediumLevelILFunction::Mult ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MultDoublePrecSigned()

ExprId MediumLevelILFunction::MultDoublePrecSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MultDoublePrecUnsigned()

ExprId MediumLevelILFunction::MultDoublePrecUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivSigned()

ExprId MediumLevelILFunction::DivSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivUnsigned()

ExprId MediumLevelILFunction::DivUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivDoublePrecSigned()

ExprId MediumLevelILFunction::DivDoublePrecSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ DivDoublePrecUnsigned()

ExprId MediumLevelILFunction::DivDoublePrecUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModSigned()

ExprId MediumLevelILFunction::ModSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModUnsigned()

ExprId MediumLevelILFunction::ModUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModDoublePrecSigned()

ExprId MediumLevelILFunction::ModDoublePrecSigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ModDoublePrecUnsigned()

ExprId MediumLevelILFunction::ModDoublePrecUnsigned ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Neg()

ExprId MediumLevelILFunction::Neg ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Not()

ExprId MediumLevelILFunction::Not ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SignExtend()

ExprId MediumLevelILFunction::SignExtend ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ZeroExtend()

ExprId MediumLevelILFunction::ZeroExtend ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ LowPart()

ExprId MediumLevelILFunction::LowPart ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Jump()

ExprId MediumLevelILFunction::Jump ( ExprId  dest,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ JumpTo()

ExprId MediumLevelILFunction::JumpTo ( ExprId  dest,
const std::map< uint64_t, BNMediumLevelILLabel * > &  targets,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ ReturnHint()

ExprId MediumLevelILFunction::ReturnHint ( ExprId  dest,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Call()

ExprId MediumLevelILFunction::Call ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallUntyped()

ExprId MediumLevelILFunction::CallUntyped ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Syscall()

ExprId MediumLevelILFunction::Syscall ( const std::vector< Variable > &  output,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SyscallUntyped()

ExprId MediumLevelILFunction::SyscallUntyped ( const std::vector< Variable > &  output,
const std::vector< ExprId > &  params,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCall()

ExprId MediumLevelILFunction::TailCall ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCallUntyped()

ExprId MediumLevelILFunction::TailCallUntyped ( const std::vector< Variable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallSSA()

ExprId MediumLevelILFunction::CallSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CallUntypedSSA()

ExprId MediumLevelILFunction::CallUntypedSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SyscallSSA()

ExprId MediumLevelILFunction::SyscallSSA ( const std::vector< SSAVariable > &  output,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SyscallUntypedSSA()

ExprId MediumLevelILFunction::SyscallUntypedSSA ( const std::vector< SSAVariable > &  output,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCallSSA()

ExprId MediumLevelILFunction::TailCallSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TailCallUntypedSSA()

ExprId MediumLevelILFunction::TailCallUntypedSSA ( const std::vector< SSAVariable > &  output,
ExprId  dest,
const std::vector< ExprId > &  params,
size_t  newMemVersion,
size_t  prevMemVersion,
ExprId  stack,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SeparateParamList()

ExprId MediumLevelILFunction::SeparateParamList ( const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ SharedParamSlot()

ExprId MediumLevelILFunction::SharedParamSlot ( const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Return()

ExprId MediumLevelILFunction::Return ( const std::vector< ExprId > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ NoReturn()

ExprId MediumLevelILFunction::NoReturn ( const ILSourceLocation loc = ILSourceLocation())

◆ CompareEqual()

ExprId MediumLevelILFunction::CompareEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareNotEqual()

ExprId MediumLevelILFunction::CompareNotEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedLessThan()

ExprId MediumLevelILFunction::CompareSignedLessThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedLessThan()

ExprId MediumLevelILFunction::CompareUnsignedLessThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedLessEqual()

ExprId MediumLevelILFunction::CompareSignedLessEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedLessEqual()

ExprId MediumLevelILFunction::CompareUnsignedLessEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedGreaterEqual()

ExprId MediumLevelILFunction::CompareSignedGreaterEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedGreaterEqual()

ExprId MediumLevelILFunction::CompareUnsignedGreaterEqual ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareSignedGreaterThan()

ExprId MediumLevelILFunction::CompareSignedGreaterThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ CompareUnsignedGreaterThan()

ExprId MediumLevelILFunction::CompareUnsignedGreaterThan ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ TestBit()

ExprId MediumLevelILFunction::TestBit ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ BoolToInt()

ExprId MediumLevelILFunction::BoolToInt ( size_t  size,
ExprId  src,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ AddOverflow()

ExprId MediumLevelILFunction::AddOverflow ( size_t  size,
ExprId  left,
ExprId  right,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Breakpoint()

ExprId MediumLevelILFunction::Breakpoint ( const ILSourceLocation loc = ILSourceLocation())

◆ Trap()

ExprId MediumLevelILFunction::Trap ( int64_t  vector,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Intrinsic()

ExprId MediumLevelILFunction::Intrinsic ( const std::vector< Variable > &  outputs,
uint32_t  intrinsic,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ IntrinsicSSA()

ExprId MediumLevelILFunction::IntrinsicSSA ( const std::vector< SSAVariable > &  outputs,
uint32_t  intrinsic,
const std::vector< ExprId > &  params,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FreeVarSlot()

ExprId MediumLevelILFunction::FreeVarSlot ( const Variable var,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FreeVarSlotSSA()

ExprId MediumLevelILFunction::FreeVarSlotSSA ( const Variable var,
size_t  newVersion,
size_t  prevVersion,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Undefined()

ExprId MediumLevelILFunction::Undefined ( const ILSourceLocation loc = ILSourceLocation())

◆ Unimplemented()

ExprId MediumLevelILFunction::Unimplemented ( const ILSourceLocation loc = ILSourceLocation())

◆ UnimplementedMemoryRef()

ExprId MediumLevelILFunction::UnimplementedMemoryRef ( size_t  size,
ExprId  target,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ VarPhi()

ExprId MediumLevelILFunction::VarPhi ( const SSAVariable dest,
const std::vector< SSAVariable > &  sources,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MemoryPhi()

ExprId MediumLevelILFunction::MemoryPhi ( size_t  destMemVersion,
const std::vector< size_t > &  sourceMemVersions,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatAdd()

ExprId MediumLevelILFunction::FloatAdd ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatSub()

ExprId MediumLevelILFunction::FloatSub ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatMult()

ExprId MediumLevelILFunction::FloatMult ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatDiv()

ExprId MediumLevelILFunction::FloatDiv ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatSqrt()

ExprId MediumLevelILFunction::FloatSqrt ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatNeg()

ExprId MediumLevelILFunction::FloatNeg ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatAbs()

ExprId MediumLevelILFunction::FloatAbs ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatToInt()

ExprId MediumLevelILFunction::FloatToInt ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ IntToFloat()

ExprId MediumLevelILFunction::IntToFloat ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatConvert()

ExprId MediumLevelILFunction::FloatConvert ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ RoundToInt()

ExprId MediumLevelILFunction::RoundToInt ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Floor()

ExprId MediumLevelILFunction::Floor ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Ceil()

ExprId MediumLevelILFunction::Ceil ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatTrunc()

ExprId MediumLevelILFunction::FloatTrunc ( size_t  size,
ExprId  a,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareEqual()

ExprId MediumLevelILFunction::FloatCompareEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareNotEqual()

ExprId MediumLevelILFunction::FloatCompareNotEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareLessThan()

ExprId MediumLevelILFunction::FloatCompareLessThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareLessEqual()

ExprId MediumLevelILFunction::FloatCompareLessEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareGreaterEqual()

ExprId MediumLevelILFunction::FloatCompareGreaterEqual ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareGreaterThan()

ExprId MediumLevelILFunction::FloatCompareGreaterThan ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareOrdered()

ExprId MediumLevelILFunction::FloatCompareOrdered ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ FloatCompareUnordered()

ExprId MediumLevelILFunction::FloatCompareUnordered ( size_t  size,
ExprId  a,
ExprId  b,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ Goto()

ExprId MediumLevelILFunction::Goto ( BNMediumLevelILLabel label,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ If()

ExprId MediumLevelILFunction::If ( ExprId  operand,
BNMediumLevelILLabel t,
BNMediumLevelILLabel f,
const ILSourceLocation loc = ILSourceLocation() 
)

◆ MarkLabel()

void MediumLevelILFunction::MarkLabel ( BNMediumLevelILLabel label)

◆ AddInstruction()

ExprId MediumLevelILFunction::AddInstruction ( ExprId  expr)

◆ GetOperandList()

vector< uint64_t > MediumLevelILFunction::GetOperandList ( ExprId  i,
size_t  listOperand 
)

◆ AddLabelMap()

ExprId MediumLevelILFunction::AddLabelMap ( const std::map< uint64_t, BNMediumLevelILLabel * > &  labels)

◆ AddOperandList()

ExprId MediumLevelILFunction::AddOperandList ( const std::vector< ExprId operands)

◆ AddIndexList()

ExprId MediumLevelILFunction::AddIndexList ( const std::vector< size_t > &  operands)

◆ AddVariableList()

ExprId MediumLevelILFunction::AddVariableList ( const std::vector< Variable > &  vars)

◆ AddSSAVariableList()

ExprId MediumLevelILFunction::AddSSAVariableList ( const std::vector< SSAVariable > &  vars)

◆ GetRawExpr()

BNMediumLevelILInstruction MediumLevelILFunction::GetRawExpr ( size_t  i) const

◆ operator[]()

MediumLevelILInstruction MediumLevelILFunction::operator[] ( size_t  i)

◆ GetInstruction()

MediumLevelILInstruction MediumLevelILFunction::GetInstruction ( size_t  i)

◆ GetExpr()

MediumLevelILInstruction MediumLevelILFunction::GetExpr ( size_t  i)

◆ GetIndexForInstruction()

size_t MediumLevelILFunction::GetIndexForInstruction ( size_t  i) const

◆ GetInstructionForExpr()

size_t MediumLevelILFunction::GetInstructionForExpr ( size_t  expr) const

◆ GetInstructionCount()

size_t MediumLevelILFunction::GetInstructionCount ( ) const

◆ GetExprCount()

size_t MediumLevelILFunction::GetExprCount ( ) const

◆ UpdateInstructionOperand()

void MediumLevelILFunction::UpdateInstructionOperand ( size_t  i,
size_t  operandIndex,
ExprId  value 
)

◆ MarkInstructionForRemoval()

void MediumLevelILFunction::MarkInstructionForRemoval ( size_t  i)

◆ ReplaceInstruction()

void MediumLevelILFunction::ReplaceInstruction ( size_t  i,
ExprId  expr 
)

◆ ReplaceExpr()

void MediumLevelILFunction::ReplaceExpr ( size_t  expr,
size_t  newExpr 
)

◆ SetExprAttributes()

void MediumLevelILFunction::SetExprAttributes ( size_t  expr,
uint32_t  attributes 
)

◆ Finalize()

void MediumLevelILFunction::Finalize ( )

◆ GenerateSSAForm()

void MediumLevelILFunction::GenerateSSAForm ( bool  analyzeConditionals = true,
bool  handleAliases = true,
const std::set< Variable > &  knownNotAliases = std::set<Variable>(),
const std::set< Variable > &  knownAliases = std::set<Variable>() 
)

◆ GetExprText()

bool MediumLevelILFunction::GetExprText ( Architecture arch,
ExprId  expr,
std::vector< InstructionTextToken > &  tokens,
DisassemblySettings settings = nullptr 
)

◆ GetInstructionText()

bool MediumLevelILFunction::GetInstructionText ( Function func,
Architecture arch,
size_t  i,
std::vector< InstructionTextToken > &  tokens,
DisassemblySettings settings = nullptr 
)

◆ VisitInstructions()

void MediumLevelILFunction::VisitInstructions ( const std::function< void(BasicBlock *block, const MediumLevelILInstruction &instr)> &  func)

◆ VisitAllExprs()

void MediumLevelILFunction::VisitAllExprs ( const std::function< bool(BasicBlock *block, const MediumLevelILInstruction &expr)> &  func)

◆ GetBasicBlocks()

vector< Ref< BasicBlock > > MediumLevelILFunction::GetBasicBlocks ( ) const

◆ GetBasicBlockForInstruction()

Ref< BasicBlock > MediumLevelILFunction::GetBasicBlockForInstruction ( size_t  i) const

◆ GetSSAForm()

Ref< MediumLevelILFunction > MediumLevelILFunction::GetSSAForm ( ) const

◆ GetNonSSAForm()

Ref< MediumLevelILFunction > MediumLevelILFunction::GetNonSSAForm ( ) const

◆ GetSSAInstructionIndex()

size_t MediumLevelILFunction::GetSSAInstructionIndex ( size_t  instr) const

◆ GetNonSSAInstructionIndex()

size_t MediumLevelILFunction::GetNonSSAInstructionIndex ( size_t  instr) const

◆ GetSSAExprIndex()

size_t MediumLevelILFunction::GetSSAExprIndex ( size_t  instr) const

◆ GetNonSSAExprIndex()

size_t MediumLevelILFunction::GetNonSSAExprIndex ( size_t  instr) const

◆ GetSSAVarDefinition()

size_t MediumLevelILFunction::GetSSAVarDefinition ( const SSAVariable var) const

◆ GetSSAMemoryDefinition()

size_t MediumLevelILFunction::GetSSAMemoryDefinition ( size_t  version) const

◆ GetSSAVarUses()

set< size_t > MediumLevelILFunction::GetSSAVarUses ( const SSAVariable var) const

◆ GetSSAMemoryUses()

set< size_t > MediumLevelILFunction::GetSSAMemoryUses ( size_t  version) const

◆ IsSSAVarLive()

bool MediumLevelILFunction::IsSSAVarLive ( const SSAVariable var) const

◆ GetVariableSSAVersions()

set< size_t > MediumLevelILFunction::GetVariableSSAVersions ( const Variable var) const

◆ GetVariableDefinitions()

set< size_t > MediumLevelILFunction::GetVariableDefinitions ( const Variable var) const

◆ GetVariableUses()

set< size_t > MediumLevelILFunction::GetVariableUses ( const Variable var) const

◆ GetSSAVarValue()

RegisterValue MediumLevelILFunction::GetSSAVarValue ( const SSAVariable var)

◆ GetExprValue() [1/2]

RegisterValue MediumLevelILFunction::GetExprValue ( size_t  expr)

◆ GetExprValue() [2/2]

RegisterValue MediumLevelILFunction::GetExprValue ( const MediumLevelILInstruction expr)

◆ GetPossibleSSAVarValues()

PossibleValueSet MediumLevelILFunction::GetPossibleSSAVarValues ( const SSAVariable var,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleExprValues() [1/2]

PossibleValueSet BinaryNinja::MediumLevelILFunction::GetPossibleExprValues ( size_t  expr,
const std::set< BNDataFlowQueryOption > &  options = std::set< BNDataFlowQueryOption >() 
)

◆ GetPossibleExprValues() [2/2]

PossibleValueSet BinaryNinja::MediumLevelILFunction::GetPossibleExprValues ( const MediumLevelILInstruction expr,
const std::set< BNDataFlowQueryOption > &  options = std::set< BNDataFlowQueryOption >() 
)

◆ GetSSAVarVersionAtInstruction()

size_t MediumLevelILFunction::GetSSAVarVersionAtInstruction ( const Variable var,
size_t  instr 
) const

◆ GetSSAMemoryVersionAtInstruction()

size_t MediumLevelILFunction::GetSSAMemoryVersionAtInstruction ( size_t  instr) const

◆ GetVariableForRegisterAtInstruction()

Variable MediumLevelILFunction::GetVariableForRegisterAtInstruction ( uint32_t  reg,
size_t  instr 
) const

◆ GetVariableForFlagAtInstruction()

Variable MediumLevelILFunction::GetVariableForFlagAtInstruction ( uint32_t  flag,
size_t  instr 
) const

◆ GetVariableForStackLocationAtInstruction()

Variable MediumLevelILFunction::GetVariableForStackLocationAtInstruction ( int64_t  offset,
size_t  instr 
) const

◆ GetRegisterValueAtInstruction()

RegisterValue MediumLevelILFunction::GetRegisterValueAtInstruction ( uint32_t  reg,
size_t  instr 
)

◆ GetRegisterValueAfterInstruction()

RegisterValue MediumLevelILFunction::GetRegisterValueAfterInstruction ( uint32_t  reg,
size_t  instr 
)

◆ GetPossibleRegisterValuesAtInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleRegisterValuesAtInstruction ( uint32_t  reg,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleRegisterValuesAfterInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleRegisterValuesAfterInstruction ( uint32_t  reg,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetFlagValueAtInstruction()

RegisterValue MediumLevelILFunction::GetFlagValueAtInstruction ( uint32_t  flag,
size_t  instr 
)

◆ GetFlagValueAfterInstruction()

RegisterValue MediumLevelILFunction::GetFlagValueAfterInstruction ( uint32_t  flag,
size_t  instr 
)

◆ GetPossibleFlagValuesAtInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleFlagValuesAtInstruction ( uint32_t  flag,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleFlagValuesAfterInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleFlagValuesAfterInstruction ( uint32_t  flag,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetStackContentsAtInstruction()

RegisterValue MediumLevelILFunction::GetStackContentsAtInstruction ( int32_t  offset,
size_t  len,
size_t  instr 
)

◆ GetStackContentsAfterInstruction()

RegisterValue MediumLevelILFunction::GetStackContentsAfterInstruction ( int32_t  offset,
size_t  len,
size_t  instr 
)

◆ GetPossibleStackContentsAtInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleStackContentsAtInstruction ( int32_t  offset,
size_t  len,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetPossibleStackContentsAfterInstruction()

PossibleValueSet MediumLevelILFunction::GetPossibleStackContentsAfterInstruction ( int32_t  offset,
size_t  len,
size_t  instr,
const std::set< BNDataFlowQueryOption > &  options = std::set<BNDataFlowQueryOption>() 
)

◆ GetBranchDependenceAtInstruction()

BNILBranchDependence MediumLevelILFunction::GetBranchDependenceAtInstruction ( size_t  curInstr,
size_t  branchInstr 
) const

◆ GetAllBranchDependenceAtInstruction()

unordered_map< size_t, BNILBranchDependence > MediumLevelILFunction::GetAllBranchDependenceAtInstruction ( size_t  instr) const

◆ GetLowLevelIL()

Ref< LowLevelILFunction > MediumLevelILFunction::GetLowLevelIL ( ) const

◆ GetLowLevelILInstructionIndex()

size_t MediumLevelILFunction::GetLowLevelILInstructionIndex ( size_t  instr) const

◆ GetLowLevelILExprIndex()

size_t MediumLevelILFunction::GetLowLevelILExprIndex ( size_t  expr) const

◆ GetLowLevelILExprIndexes()

set< size_t > MediumLevelILFunction::GetLowLevelILExprIndexes ( size_t  expr) const

◆ GetHighLevelIL()

Ref< HighLevelILFunction > MediumLevelILFunction::GetHighLevelIL ( ) const

◆ GetHighLevelILInstructionIndex()

size_t MediumLevelILFunction::GetHighLevelILInstructionIndex ( size_t  instr) const

◆ GetHighLevelILExprIndex()

size_t MediumLevelILFunction::GetHighLevelILExprIndex ( size_t  expr) const

◆ GetHighLevelILExprIndexes()

set< size_t > MediumLevelILFunction::GetHighLevelILExprIndexes ( size_t  expr) const

◆ GetExprType() [1/2]

Confidence< Ref< Type > > MediumLevelILFunction::GetExprType ( size_t  expr)

◆ GetExprType() [2/2]

Confidence< Ref< Type > > MediumLevelILFunction::GetExprType ( const MediumLevelILInstruction expr)

◆ SetExprType() [1/2]

void MediumLevelILFunction::SetExprType ( size_t  expr,
const Confidence< Ref< Type > > &  type 
)

SetExprType sets the type of a given expression.

Warning
This method 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
exprindex of the expression to set
typenew type of the expression

◆ SetExprType() [2/2]

void MediumLevelILFunction::SetExprType ( const MediumLevelILInstruction expr,
const Confidence< Ref< Type > > &  type 
)

◆ IsConstantType()

static bool BinaryNinja::MediumLevelILFunction::IsConstantType ( BNMediumLevelILOperation  op)
inlinestatic

◆ CreateFunctionGraph()

Ref< FlowGraph > MediumLevelILFunction::CreateFunctionGraph ( DisassemblySettings settings = nullptr)

◆ GetLiveInstructionsForVariable()

set< size_t > MediumLevelILFunction::GetLiveInstructionsForVariable ( const Variable var,
bool  includeLastUse = true 
)

◆ GetSplitVariableForDefinition()

Variable MediumLevelILFunction::GetSplitVariableForDefinition ( const Variable var,
size_t  instrIndex 
)

◆ BinaryNinja::SSAVariable

struct BinaryNinja::SSAVariable

Public Member Functions

 SSAVariable ()
 
 SSAVariable (const Variable &v, size_t i)
 
 SSAVariable (const SSAVariable &v)
 
SSAVariableoperator= (const SSAVariable &v)
 
bool operator== (const SSAVariable &v) const
 
bool operator!= (const SSAVariable &v) const
 
bool operator< (const SSAVariable &v) const
 

Public Attributes

Variable var
 
size_t version
 

Constructor & Destructor Documentation

◆ SSAVariable() [1/3]

SSAVariable::SSAVariable ( )

◆ SSAVariable() [2/3]

SSAVariable::SSAVariable ( const Variable v,
size_t  i 
)

◆ SSAVariable() [3/3]

SSAVariable::SSAVariable ( const SSAVariable v)

Member Function Documentation

◆ operator=()

SSAVariable & SSAVariable::operator= ( const SSAVariable v)

◆ operator==()

bool SSAVariable::operator== ( const SSAVariable v) const

◆ operator!=()

bool SSAVariable::operator!= ( const SSAVariable v) const

◆ operator<()

bool SSAVariable::operator< ( const SSAVariable v) const

Member Data Documentation

◆ var

Variable BinaryNinja::SSAVariable::var

◆ version

size_t BinaryNinja::SSAVariable::version

◆ BinaryNinja::MediumLevelILInstructionAccessException

class BinaryNinja::MediumLevelILInstructionAccessException

Public Member Functions

 MediumLevelILInstructionAccessException ()
 
- Public Member Functions inherited from BinaryNinja::ExceptionWithStackTrace
 ExceptionWithStackTrace (const std::string &message)
 
 ExceptionWithStackTrace (std::exception_ptr exc1, std::exception_ptr exc2)
 
const char * what () const noexcept override
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::ExceptionWithStackTrace
std::string m_originalMessage
 
std::string m_message
 
std::string m_stackTrace
 

Constructor & Destructor Documentation

◆ MediumLevelILInstructionAccessException()

BinaryNinja::MediumLevelILInstructionAccessException::MediumLevelILInstructionAccessException ( )
inline

◆ BinaryNinja::MediumLevelILIntegerList

class BinaryNinja::MediumLevelILIntegerList

Public Types

typedef ListIterator const_iterator
 

Public Member Functions

 MediumLevelILIntegerList (MediumLevelILFunction *func, const BNMediumLevelILInstruction &instr, size_t count)
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
uint64_t operator[] (size_t i) const
 
 operator std::vector< uint64_t > () const
 

Member Typedef Documentation

◆ const_iterator

Constructor & Destructor Documentation

◆ MediumLevelILIntegerList()

MediumLevelILIntegerList::MediumLevelILIntegerList ( MediumLevelILFunction func,
const BNMediumLevelILInstruction instr,
size_t  count 
)

Member Function Documentation

◆ begin()

MediumLevelILIntegerList::const_iterator MediumLevelILIntegerList::begin ( ) const

◆ end()

MediumLevelILIntegerList::const_iterator MediumLevelILIntegerList::end ( ) const

◆ size()

size_t MediumLevelILIntegerList::size ( ) const

◆ operator[]()

uint64_t MediumLevelILIntegerList::operator[] ( size_t  i) const

◆ operator std::vector< uint64_t >()

BinaryNinja::MediumLevelILIntegerList::operator std::vector< uint64_t > ( ) const

◆ BinaryNinja::MediumLevelILIndexList

class BinaryNinja::MediumLevelILIndexList

Public Types

typedef ListIterator const_iterator
 

Public Member Functions

 MediumLevelILIndexList (MediumLevelILFunction *func, const BNMediumLevelILInstruction &instr, size_t count)
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
size_t operator[] (size_t i) const
 
 operator std::vector< size_t > () const
 

Member Typedef Documentation

◆ const_iterator

Constructor & Destructor Documentation

◆ MediumLevelILIndexList()

MediumLevelILIndexList::MediumLevelILIndexList ( MediumLevelILFunction func,
const BNMediumLevelILInstruction instr,
size_t  count 
)

Member Function Documentation

◆ begin()

MediumLevelILIndexList::const_iterator MediumLevelILIndexList::begin ( ) const

◆ end()

MediumLevelILIndexList::const_iterator MediumLevelILIndexList::end ( ) const

◆ size()

size_t MediumLevelILIndexList::size ( ) const

◆ operator[]()

size_t MediumLevelILIndexList::operator[] ( size_t  i) const

◆ operator std::vector< size_t >()

BinaryNinja::MediumLevelILIndexList::operator std::vector< size_t > ( ) const

◆ BinaryNinja::MediumLevelILIndexMap

class BinaryNinja::MediumLevelILIndexMap

Public Types

typedef ListIterator const_iterator
 

Public Member Functions

 MediumLevelILIndexMap (MediumLevelILFunction *func, const BNMediumLevelILInstruction &instr, size_t count)
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
size_t operator[] (uint64_t) const
 
 operator std::map< uint64_t, size_t > () const
 

Member Typedef Documentation

◆ const_iterator

Constructor & Destructor Documentation

◆ MediumLevelILIndexMap()

MediumLevelILIndexMap::MediumLevelILIndexMap ( MediumLevelILFunction func,
const BNMediumLevelILInstruction instr,
size_t  count 
)

Member Function Documentation

◆ begin()

MediumLevelILIndexMap::const_iterator MediumLevelILIndexMap::begin ( ) const

◆ end()

MediumLevelILIndexMap::const_iterator MediumLevelILIndexMap::end ( ) const

◆ size()

size_t MediumLevelILIndexMap::size ( ) const

◆ operator[]()

size_t MediumLevelILIndexMap::operator[] ( uint64_t  value) const

◆ operator std::map< uint64_t, size_t >()

BinaryNinja::MediumLevelILIndexMap::operator std::map< uint64_t, size_t > ( ) const

◆ BinaryNinja::MediumLevelILVariableList

class BinaryNinja::MediumLevelILVariableList

Public Types

typedef ListIterator const_iterator
 

Public Member Functions

 MediumLevelILVariableList (MediumLevelILFunction *func, const BNMediumLevelILInstruction &instr, size_t count)
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
const Variable operator[] (size_t i) const
 
 operator std::vector< Variable > () const
 

Member Typedef Documentation

◆ const_iterator

Constructor & Destructor Documentation

◆ MediumLevelILVariableList()

MediumLevelILVariableList::MediumLevelILVariableList ( MediumLevelILFunction func,
const BNMediumLevelILInstruction instr,
size_t  count 
)

Member Function Documentation

◆ begin()

MediumLevelILVariableList::const_iterator MediumLevelILVariableList::begin ( ) const

◆ end()

MediumLevelILVariableList::const_iterator MediumLevelILVariableList::end ( ) const

◆ size()

size_t MediumLevelILVariableList::size ( ) const

◆ operator[]()

const Variable MediumLevelILVariableList::operator[] ( size_t  i) const

◆ operator std::vector< Variable >()

BinaryNinja::MediumLevelILVariableList::operator std::vector< Variable > ( ) const

◆ BinaryNinja::MediumLevelILSSAVariableList

class BinaryNinja::MediumLevelILSSAVariableList

Public Types

typedef ListIterator const_iterator
 

Public Member Functions

 MediumLevelILSSAVariableList (MediumLevelILFunction *func, const BNMediumLevelILInstruction &instr, size_t count)
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
const SSAVariable operator[] (size_t i) const
 
 operator std::vector< SSAVariable > () const
 

Member Typedef Documentation

◆ const_iterator

Constructor & Destructor Documentation

◆ MediumLevelILSSAVariableList()

MediumLevelILSSAVariableList::MediumLevelILSSAVariableList ( MediumLevelILFunction func,
const BNMediumLevelILInstruction instr,
size_t  count 
)

Member Function Documentation

◆ begin()

MediumLevelILSSAVariableList::const_iterator MediumLevelILSSAVariableList::begin ( ) const

◆ end()

MediumLevelILSSAVariableList::const_iterator MediumLevelILSSAVariableList::end ( ) const

◆ size()

size_t MediumLevelILSSAVariableList::size ( ) const

◆ operator[]()

const SSAVariable MediumLevelILSSAVariableList::operator[] ( size_t  i) const

◆ operator std::vector< SSAVariable >()

BinaryNinja::MediumLevelILSSAVariableList::operator std::vector< SSAVariable > ( ) const

◆ BinaryNinja::MediumLevelILInstructionList

class BinaryNinja::MediumLevelILInstructionList

Public Types

typedef ListIterator const_iterator
 

Public Member Functions

 MediumLevelILInstructionList (MediumLevelILFunction *func, const BNMediumLevelILInstruction &instr, size_t count, size_t instructionIndex)
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
const MediumLevelILInstruction operator[] (size_t i) const
 
 operator std::vector< MediumLevelILInstruction > () const
 

Member Typedef Documentation

◆ const_iterator

Constructor & Destructor Documentation

◆ MediumLevelILInstructionList()

MediumLevelILInstructionList::MediumLevelILInstructionList ( MediumLevelILFunction func,
const BNMediumLevelILInstruction instr,
size_t  count,
size_t  instructionIndex 
)

Member Function Documentation

◆ begin()

MediumLevelILInstructionList::const_iterator MediumLevelILInstructionList::begin ( ) const

◆ end()

MediumLevelILInstructionList::const_iterator MediumLevelILInstructionList::end ( ) const

◆ size()

size_t MediumLevelILInstructionList::size ( ) const

◆ operator[]()

const MediumLevelILInstruction MediumLevelILInstructionList::operator[] ( size_t  i) const

◆ operator std::vector< MediumLevelILInstruction >()

BinaryNinja::MediumLevelILInstructionList::operator std::vector< MediumLevelILInstruction > ( ) const

◆ BinaryNinja::MediumLevelILInstructionBase

struct BinaryNinja::MediumLevelILInstructionBase

Public Member Functions

MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
ConstantData GetRawOperandAsConstantData (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
char * Dump () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
void SetAttributes (uint32_t attributes)
 
void SetAttribute (BNILInstructionAttribute attribute, bool state=true)
 
void ClearAttribute (BNILInstructionAttribute attribute)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILConstantDataInstructionAsConstantData () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Public Attributes

Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t attributes
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 

Static Public Attributes

static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ GetOperands()

MediumLevelILOperandList MediumLevelILInstructionBase::GetOperands ( ) const

◆ GetRawOperandAsInteger()

uint64_t MediumLevelILInstructionBase::GetRawOperandAsInteger ( size_t  operand) const

◆ GetRawOperandAsConstantData()

ConstantData MediumLevelILInstructionBase::GetRawOperandAsConstantData ( size_t  operand) const

◆ GetRawOperandAsIndex()

size_t MediumLevelILInstructionBase::GetRawOperandAsIndex ( size_t  operand) const

◆ GetRawOperandAsExpr()

MediumLevelILInstruction MediumLevelILInstructionBase::GetRawOperandAsExpr ( size_t  operand) const

◆ GetRawOperandAsVariable()

Variable MediumLevelILInstructionBase::GetRawOperandAsVariable ( size_t  operand) const

◆ GetRawOperandAsSSAVariable()

SSAVariable MediumLevelILInstructionBase::GetRawOperandAsSSAVariable ( size_t  operand) const

◆ GetRawOperandAsPartialSSAVariableSource()

SSAVariable MediumLevelILInstructionBase::GetRawOperandAsPartialSSAVariableSource ( size_t  operand) const

◆ GetRawOperandAsIndexList()

MediumLevelILIndexList MediumLevelILInstructionBase::GetRawOperandAsIndexList ( size_t  operand) const

◆ GetRawOperandAsIndexMap()

MediumLevelILIndexMap MediumLevelILInstructionBase::GetRawOperandAsIndexMap ( size_t  operand) const

◆ GetRawOperandAsVariableList()

MediumLevelILVariableList MediumLevelILInstructionBase::GetRawOperandAsVariableList ( size_t  operand) const

◆ GetRawOperandAsSSAVariableList()

MediumLevelILSSAVariableList MediumLevelILInstructionBase::GetRawOperandAsSSAVariableList ( size_t  operand) const

◆ GetRawOperandAsExprList()

MediumLevelILInstructionList MediumLevelILInstructionBase::GetRawOperandAsExprList ( size_t  operand) const

◆ UpdateRawOperand()

void MediumLevelILInstructionBase::UpdateRawOperand ( size_t  operandIndex,
ExprId  value 
)

◆ UpdateRawOperandAsSSAVariableList()

void MediumLevelILInstructionBase::UpdateRawOperandAsSSAVariableList ( size_t  operandIndex,
const std::vector< SSAVariable > &  vars 
)

◆ UpdateRawOperandAsExprList() [1/2]

void BinaryNinja::MediumLevelILInstructionBase::UpdateRawOperandAsExprList ( size_t  operandIndex,
const std::vector< MediumLevelILInstruction > &  exprs 
)

◆ UpdateRawOperandAsExprList() [2/2]

void BinaryNinja::MediumLevelILInstructionBase::UpdateRawOperandAsExprList ( size_t  operandIndex,
const std::vector< size_t > &  exprs 
)

◆ GetValue()

RegisterValue MediumLevelILInstructionBase::GetValue ( ) const

◆ GetPossibleValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleValues ( const std::set< BNDataFlowQueryOption > &  options = std::set <BNDataFlowQueryOption>()) const

◆ GetType()

Confidence< Ref< Type > > MediumLevelILInstructionBase::GetType ( ) const

◆ Dump()

char * MediumLevelILInstructionBase::Dump ( ) const

◆ GetSSAVarVersion()

size_t MediumLevelILInstructionBase::GetSSAVarVersion ( const Variable var)

◆ GetSSAMemoryVersion()

size_t MediumLevelILInstructionBase::GetSSAMemoryVersion ( )

◆ GetVariableForRegister()

Variable MediumLevelILInstructionBase::GetVariableForRegister ( uint32_t  reg)

◆ GetVariableForFlag()

Variable MediumLevelILInstructionBase::GetVariableForFlag ( uint32_t  flag)

◆ GetVariableForStackLocation()

Variable MediumLevelILInstructionBase::GetVariableForStackLocation ( int64_t  offset)

◆ GetPossibleSSAVarValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleSSAVarValues ( const SSAVariable var)

◆ GetRegisterValue()

RegisterValue MediumLevelILInstructionBase::GetRegisterValue ( uint32_t  reg)

◆ GetRegisterValueAfter()

RegisterValue MediumLevelILInstructionBase::GetRegisterValueAfter ( uint32_t  reg)

◆ GetPossibleRegisterValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleRegisterValues ( uint32_t  reg)

◆ GetPossibleRegisterValuesAfter()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleRegisterValuesAfter ( uint32_t  reg)

◆ GetFlagValue()

RegisterValue MediumLevelILInstructionBase::GetFlagValue ( uint32_t  flag)

◆ GetFlagValueAfter()

RegisterValue MediumLevelILInstructionBase::GetFlagValueAfter ( uint32_t  flag)

◆ GetPossibleFlagValues()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleFlagValues ( uint32_t  flag)

◆ GetPossibleFlagValuesAfter()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleFlagValuesAfter ( uint32_t  flag)

◆ GetStackContents()

RegisterValue MediumLevelILInstructionBase::GetStackContents ( int32_t  offset,
size_t  len 
)

◆ GetStackContentsAfter()

RegisterValue MediumLevelILInstructionBase::GetStackContentsAfter ( int32_t  offset,
size_t  len 
)

◆ GetPossibleStackContents()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleStackContents ( int32_t  offset,
size_t  len 
)

◆ GetPossibleStackContentsAfter()

PossibleValueSet MediumLevelILInstructionBase::GetPossibleStackContentsAfter ( int32_t  offset,
size_t  len 
)

◆ GetBranchDependence() [1/2]

BNILBranchDependence MediumLevelILInstructionBase::GetBranchDependence ( size_t  branchInstr)

◆ GetBranchDependence() [2/2]

BNILBranchDependence MediumLevelILInstructionBase::GetBranchDependence ( const MediumLevelILInstruction branch)

◆ GetAllBranchDependence()

unordered_map< size_t, BNILBranchDependence > MediumLevelILInstructionBase::GetAllBranchDependence ( )

◆ GetSSAInstructionIndex()

size_t MediumLevelILInstructionBase::GetSSAInstructionIndex ( ) const

◆ GetNonSSAInstructionIndex()

size_t MediumLevelILInstructionBase::GetNonSSAInstructionIndex ( ) const

◆ GetSSAExprIndex()

size_t MediumLevelILInstructionBase::GetSSAExprIndex ( ) const

◆ GetNonSSAExprIndex()

size_t MediumLevelILInstructionBase::GetNonSSAExprIndex ( ) const

◆ GetSSAForm()

MediumLevelILInstruction MediumLevelILInstructionBase::GetSSAForm ( ) const

◆ GetNonSSAForm()

MediumLevelILInstruction MediumLevelILInstructionBase::GetNonSSAForm ( ) const

◆ GetLowLevelILInstructionIndex()

size_t MediumLevelILInstructionBase::GetLowLevelILInstructionIndex ( ) const

◆ GetLowLevelILExprIndex()

size_t MediumLevelILInstructionBase::GetLowLevelILExprIndex ( ) const

◆ GetHighLevelILInstructionIndex()

size_t MediumLevelILInstructionBase::GetHighLevelILInstructionIndex ( ) const

◆ GetHighLevelILExprIndex()

size_t MediumLevelILInstructionBase::GetHighLevelILExprIndex ( ) const

◆ HasLowLevelIL()

bool MediumLevelILInstructionBase::HasLowLevelIL ( ) const

◆ GetLowLevelIL()

LowLevelILInstruction MediumLevelILInstructionBase::GetLowLevelIL ( ) const

◆ MarkInstructionForRemoval()

void MediumLevelILInstructionBase::MarkInstructionForRemoval ( )

◆ Replace()

void MediumLevelILInstructionBase::Replace ( ExprId  expr)

◆ SetAttributes()

void MediumLevelILInstructionBase::SetAttributes ( uint32_t  attributes)

◆ SetAttribute()

void MediumLevelILInstructionBase::SetAttribute ( BNILInstructionAttribute  attribute,
bool  state = true 
)

◆ ClearAttribute()

void MediumLevelILInstructionBase::ClearAttribute ( BNILInstructionAttribute  attribute)

◆ As() [1/2]

MediumLevelILInstructionAccessor< N > & BinaryNinja::MediumLevelILInstructionBase::As ( )
inline

◆ AsOneOperand() [1/2]

MediumLevelILOneOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsOneOperand ( )
inline

◆ AsTwoOperand() [1/2]

MediumLevelILTwoOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperand ( )
inline

◆ AsTwoOperandWithCarry() [1/2]

MediumLevelILTwoOperandWithCarryInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperandWithCarry ( )
inline

◆ As() [2/2]

const MediumLevelILInstructionAccessor< N > & BinaryNinja::MediumLevelILInstructionBase::As ( ) const
inline

◆ AsConstant()

const MediumLevelILConstantInstruction & BinaryNinja::MediumLevelILInstructionBase::AsConstant ( ) const
inline

◆ AsConstantData()

const MediumLevelILConstantDataInstruction & BinaryNinja::MediumLevelILInstructionBase::AsConstantData ( ) const
inline

◆ AsOneOperand() [2/2]

const MediumLevelILOneOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsOneOperand ( ) const
inline

◆ AsTwoOperand() [2/2]

const MediumLevelILTwoOperandInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperand ( ) const
inline

◆ AsTwoOperandWithCarry() [2/2]

const MediumLevelILTwoOperandWithCarryInstruction & BinaryNinja::MediumLevelILInstructionBase::AsTwoOperandWithCarry ( ) const
inline

Member Data Documentation

◆ function

Ref<MediumLevelILFunction> BinaryNinja::MediumLevelILInstructionBase::function

◆ exprIndex

size_t BinaryNinja::MediumLevelILInstructionBase::exprIndex

◆ instructionIndex

size_t BinaryNinja::MediumLevelILInstructionBase::instructionIndex

◆ operandTypeForUsage

unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandType > MediumLevelILInstructionBase::operandTypeForUsage
static

◆ operationOperandUsage

unordered_map< BNMediumLevelILOperation, vector< MediumLevelILOperandUsage > > MediumLevelILInstructionBase::operationOperandUsage
static

◆ operationOperandIndex

unordered_map< BNMediumLevelILOperation, unordered_map< MediumLevelILOperandUsage, size_t > > MediumLevelILInstructionBase::operationOperandIndex = GetOperandIndexForOperandUsages()
static

◆ BinaryNinja::MediumLevelILInstruction

struct BinaryNinja::MediumLevelILInstruction

Public Member Functions

 MediumLevelILInstruction ()
 
 MediumLevelILInstruction (MediumLevelILFunction *func, const BNMediumLevelILInstruction &instr, size_t expr, size_t instrIdx)
 
 MediumLevelILInstruction (const MediumLevelILInstructionBase &instr)
 
void VisitExprs (const std::function< bool(const MediumLevelILInstruction &expr)> &func) const
 
ExprId CopyTo (MediumLevelILFunction *dest) const
 
ExprId CopyTo (MediumLevelILFunction *dest, const std::function< ExprId(const MediumLevelILInstruction &subExpr)> &subExprHandler) const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstruction GetSourceExpr () const
 
template<BNMediumLevelILOperation N>
Variable GetSourceVariable () const
 
template<BNMediumLevelILOperation N>
SSAVariable GetSourceSSAVariable () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstruction GetDestExpr () const
 
template<BNMediumLevelILOperation N>
Variable GetDestVariable () const
 
template<BNMediumLevelILOperation N>
SSAVariable GetDestSSAVariable () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstruction GetLeftExpr () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstruction GetRightExpr () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstruction GetCarryExpr () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstruction GetStackExpr () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstruction GetConditionExpr () const
 
template<BNMediumLevelILOperation N>
Variable GetHighVariable () const
 
template<BNMediumLevelILOperation N>
Variable GetLowVariable () const
 
template<BNMediumLevelILOperation N>
SSAVariable GetHighSSAVariable () const
 
template<BNMediumLevelILOperation N>
SSAVariable GetLowSSAVariable () const
 
template<BNMediumLevelILOperation N>
uint64_t GetOffset () const
 
template<BNMediumLevelILOperation N>
int64_t GetConstant () const
 
template<BNMediumLevelILOperation N>
ConstantData GetConstantData () const
 
template<BNMediumLevelILOperation N>
int64_t GetVector () const
 
template<BNMediumLevelILOperation N>
uint32_t GetIntrinsic () const
 
template<BNMediumLevelILOperation N>
size_t GetTarget () const
 
template<BNMediumLevelILOperation N>
size_t GetTrueTarget () const
 
template<BNMediumLevelILOperation N>
size_t GetFalseTarget () const
 
template<BNMediumLevelILOperation N>
size_t GetDestMemoryVersion () const
 
template<BNMediumLevelILOperation N>
size_t GetSourceMemoryVersion () const
 
template<BNMediumLevelILOperation N>
MediumLevelILIndexMap GetTargets () const
 
template<BNMediumLevelILOperation N>
MediumLevelILIndexList GetSourceMemoryVersions () const
 
template<BNMediumLevelILOperation N>
MediumLevelILVariableList GetOutputVariables () const
 
template<BNMediumLevelILOperation N>
MediumLevelILSSAVariableList GetOutputSSAVariables () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionList GetParameterExprs () const
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionList GetSourceExprs () const
 
template<BNMediumLevelILOperation N>
MediumLevelILSSAVariableList GetSourceSSAVariables () const
 
template<BNMediumLevelILOperation N>
void SetDestSSAVersion (size_t version)
 
template<BNMediumLevelILOperation N>
void SetSourceSSAVersion (size_t version)
 
template<BNMediumLevelILOperation N>
void SetHighSSAVersion (size_t version)
 
template<BNMediumLevelILOperation N>
void SetLowSSAVersion (size_t version)
 
template<BNMediumLevelILOperation N>
void SetDestMemoryVersion (size_t version)
 
template<BNMediumLevelILOperation N>
void SetSourceMemoryVersion (size_t version)
 
template<BNMediumLevelILOperation N>
void SetOutputSSAVariables (const std::vector< SSAVariable > &vars)
 
template<BNMediumLevelILOperation N>
void SetParameterExprs (const std::vector< MediumLevelILInstruction > &params)
 
template<BNMediumLevelILOperation N>
void SetParameterExprs (const std::vector< ExprId > &params)
 
template<BNMediumLevelILOperation N>
void SetSourceExprs (const std::vector< MediumLevelILInstruction > &params)
 
template<BNMediumLevelILOperation N>
void SetSourceExprs (const std::vector< ExprId > &params)
 
bool GetOperandIndexForUsage (MediumLevelILOperandUsage usage, size_t &operandIndex) const
 
MediumLevelILInstruction GetSourceExpr () const
 
Variable GetSourceVariable () const
 
SSAVariable GetSourceSSAVariable () const
 
MediumLevelILInstruction GetDestExpr () const
 
Variable GetDestVariable () const
 
SSAVariable GetDestSSAVariable () const
 
MediumLevelILInstruction GetLeftExpr () const
 
MediumLevelILInstruction GetRightExpr () const
 
MediumLevelILInstruction GetCarryExpr () const
 
MediumLevelILInstruction GetStackExpr () const
 
MediumLevelILInstruction GetConditionExpr () const
 
Variable GetHighVariable () const
 
Variable GetLowVariable () const
 
SSAVariable GetHighSSAVariable () const
 
SSAVariable GetLowSSAVariable () const
 
uint64_t GetOffset () const
 
int64_t GetConstant () const
 
ConstantData GetConstantData () const
 
int64_t GetVector () const
 
uint32_t GetIntrinsic () const
 
size_t GetTarget () const
 
size_t GetTrueTarget () const
 
size_t GetFalseTarget () const
 
size_t GetDestMemoryVersion () const
 
size_t GetSourceMemoryVersion () const
 
MediumLevelILIndexMap GetTargets () const
 
MediumLevelILIndexList GetSourceMemoryVersions () const
 
MediumLevelILVariableList GetOutputVariables () const
 
MediumLevelILSSAVariableList GetOutputSSAVariables () const
 
MediumLevelILInstructionList GetParameterExprs () const
 
MediumLevelILInstructionList GetSourceExprs () const
 
MediumLevelILSSAVariableList GetSourceSSAVariables () const
 
- Public Member Functions inherited from BinaryNinja::MediumLevelILInstructionBase
MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
ConstantData GetRawOperandAsConstantData (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
char * Dump () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
void SetAttributes (uint32_t attributes)
 
void SetAttribute (BNILInstructionAttribute attribute, bool state=true)
 
void ClearAttribute (BNILInstructionAttribute attribute)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILConstantDataInstructionAsConstantData () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t attributes
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 
- Static Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Constructor & Destructor Documentation

◆ MediumLevelILInstruction() [1/3]

MediumLevelILInstruction::MediumLevelILInstruction ( )

◆ MediumLevelILInstruction() [2/3]

MediumLevelILInstruction::MediumLevelILInstruction ( MediumLevelILFunction func,
const BNMediumLevelILInstruction instr,
size_t  expr,
size_t  instrIdx 
)

◆ MediumLevelILInstruction() [3/3]

MediumLevelILInstruction::MediumLevelILInstruction ( const MediumLevelILInstructionBase instr)

Member Function Documentation

◆ VisitExprs()

void MediumLevelILInstruction::VisitExprs ( const std::function< bool(const MediumLevelILInstruction &expr)> &  func) const

◆ CopyTo() [1/2]

ExprId MediumLevelILInstruction::CopyTo ( MediumLevelILFunction dest) const

◆ CopyTo() [2/2]

ExprId MediumLevelILInstruction::CopyTo ( MediumLevelILFunction dest,
const std::function< ExprId(const MediumLevelILInstruction &subExpr)> &  subExprHandler 
) const

◆ GetSourceExpr() [1/2]

MediumLevelILInstruction BinaryNinja::MediumLevelILInstruction::GetSourceExpr ( ) const
inline

◆ GetSourceVariable() [1/2]

Variable BinaryNinja::MediumLevelILInstruction::GetSourceVariable ( ) const
inline

◆ GetSourceSSAVariable() [1/2]

SSAVariable BinaryNinja::MediumLevelILInstruction::GetSourceSSAVariable ( ) const
inline

◆ GetDestExpr() [1/2]

MediumLevelILInstruction BinaryNinja::MediumLevelILInstruction::GetDestExpr ( ) const
inline

◆ GetDestVariable() [1/2]

Variable BinaryNinja::MediumLevelILInstruction::GetDestVariable ( ) const
inline

◆ GetDestSSAVariable() [1/2]

SSAVariable BinaryNinja::MediumLevelILInstruction::GetDestSSAVariable ( ) const
inline

◆ GetLeftExpr() [1/2]

MediumLevelILInstruction BinaryNinja::MediumLevelILInstruction::GetLeftExpr ( ) const
inline

◆ GetRightExpr() [1/2]

MediumLevelILInstruction BinaryNinja::MediumLevelILInstruction::GetRightExpr ( ) const
inline

◆ GetCarryExpr() [1/2]

MediumLevelILInstruction BinaryNinja::MediumLevelILInstruction::GetCarryExpr ( ) const
inline

◆ GetStackExpr() [1/2]

MediumLevelILInstruction BinaryNinja::MediumLevelILInstruction::GetStackExpr ( ) const
inline

◆ GetConditionExpr() [1/2]

MediumLevelILInstruction BinaryNinja::MediumLevelILInstruction::GetConditionExpr ( ) const
inline

◆ GetHighVariable() [1/2]

Variable BinaryNinja::MediumLevelILInstruction::GetHighVariable ( ) const
inline

◆ GetLowVariable() [1/2]

Variable BinaryNinja::MediumLevelILInstruction::GetLowVariable ( ) const
inline

◆ GetHighSSAVariable() [1/2]

SSAVariable BinaryNinja::MediumLevelILInstruction::GetHighSSAVariable ( ) const
inline

◆ GetLowSSAVariable() [1/2]

SSAVariable BinaryNinja::MediumLevelILInstruction::GetLowSSAVariable ( ) const
inline

◆ GetOffset() [1/2]

uint64_t BinaryNinja::MediumLevelILInstruction::GetOffset ( ) const
inline

◆ GetConstant() [1/2]

int64_t BinaryNinja::MediumLevelILInstruction::GetConstant ( ) const
inline

◆ GetConstantData() [1/2]

ConstantData BinaryNinja::MediumLevelILInstruction::GetConstantData ( ) const
inline

◆ GetVector() [1/2]

int64_t BinaryNinja::MediumLevelILInstruction::GetVector ( ) const
inline

◆ GetIntrinsic() [1/2]

uint32_t BinaryNinja::MediumLevelILInstruction::GetIntrinsic ( ) const
inline

◆ GetTarget() [1/2]

size_t BinaryNinja::MediumLevelILInstruction::GetTarget ( ) const
inline

◆ GetTrueTarget() [1/2]

size_t BinaryNinja::MediumLevelILInstruction::GetTrueTarget ( ) const
inline

◆ GetFalseTarget() [1/2]

size_t BinaryNinja::MediumLevelILInstruction::GetFalseTarget ( ) const
inline

◆ GetDestMemoryVersion() [1/2]

size_t BinaryNinja::MediumLevelILInstruction::GetDestMemoryVersion ( ) const
inline

◆ GetSourceMemoryVersion() [1/2]

size_t BinaryNinja::MediumLevelILInstruction::GetSourceMemoryVersion ( ) const
inline

◆ GetTargets() [1/2]

MediumLevelILIndexMap BinaryNinja::MediumLevelILInstruction::GetTargets ( ) const
inline

◆ GetSourceMemoryVersions() [1/2]

MediumLevelILIndexList BinaryNinja::MediumLevelILInstruction::GetSourceMemoryVersions ( ) const
inline

◆ GetOutputVariables() [1/2]

MediumLevelILVariableList BinaryNinja::MediumLevelILInstruction::GetOutputVariables ( ) const
inline

◆ GetOutputSSAVariables() [1/2]

MediumLevelILSSAVariableList BinaryNinja::MediumLevelILInstruction::GetOutputSSAVariables ( ) const
inline

◆ GetParameterExprs() [1/2]

MediumLevelILInstructionList BinaryNinja::MediumLevelILInstruction::GetParameterExprs ( ) const
inline

◆ GetSourceExprs() [1/2]

MediumLevelILInstructionList BinaryNinja::MediumLevelILInstruction::GetSourceExprs ( ) const
inline

◆ GetSourceSSAVariables() [1/2]

MediumLevelILSSAVariableList BinaryNinja::MediumLevelILInstruction::GetSourceSSAVariables ( ) const
inline

◆ SetDestSSAVersion()

void BinaryNinja::MediumLevelILInstruction::SetDestSSAVersion ( size_t  version)
inline

◆ SetSourceSSAVersion()

void BinaryNinja::MediumLevelILInstruction::SetSourceSSAVersion ( size_t  version)
inline

◆ SetHighSSAVersion()

void BinaryNinja::MediumLevelILInstruction::SetHighSSAVersion ( size_t  version)
inline

◆ SetLowSSAVersion()

void BinaryNinja::MediumLevelILInstruction::SetLowSSAVersion ( size_t  version)
inline

◆ SetDestMemoryVersion()

void BinaryNinja::MediumLevelILInstruction::SetDestMemoryVersion ( size_t  version)
inline

◆ SetSourceMemoryVersion()

void BinaryNinja::MediumLevelILInstruction::SetSourceMemoryVersion ( size_t  version)
inline

◆ SetOutputSSAVariables()

void BinaryNinja::MediumLevelILInstruction::SetOutputSSAVariables ( const std::vector< SSAVariable > &  vars)
inline

◆ SetParameterExprs() [1/2]

void BinaryNinja::MediumLevelILInstruction::SetParameterExprs ( const std::vector< MediumLevelILInstruction > &  params)
inline

◆ SetParameterExprs() [2/2]

void BinaryNinja::MediumLevelILInstruction::SetParameterExprs ( const std::vector< ExprId > &  params)
inline

◆ SetSourceExprs() [1/2]

void BinaryNinja::MediumLevelILInstruction::SetSourceExprs ( const std::vector< MediumLevelILInstruction > &  params)
inline

◆ SetSourceExprs() [2/2]

void BinaryNinja::MediumLevelILInstruction::SetSourceExprs ( const std::vector< ExprId > &  params)
inline

◆ GetOperandIndexForUsage()

bool MediumLevelILInstruction::GetOperandIndexForUsage ( MediumLevelILOperandUsage  usage,
size_t &  operandIndex 
) const

◆ GetSourceExpr() [2/2]

MediumLevelILInstruction MediumLevelILInstruction::GetSourceExpr ( ) const

◆ GetSourceVariable() [2/2]

Variable MediumLevelILInstruction::GetSourceVariable ( ) const

◆ GetSourceSSAVariable() [2/2]

SSAVariable MediumLevelILInstruction::GetSourceSSAVariable ( ) const

◆ GetDestExpr() [2/2]

MediumLevelILInstruction MediumLevelILInstruction::GetDestExpr ( ) const

◆ GetDestVariable() [2/2]

Variable MediumLevelILInstruction::GetDestVariable ( ) const

◆ GetDestSSAVariable() [2/2]

SSAVariable MediumLevelILInstruction::GetDestSSAVariable ( ) const

◆ GetLeftExpr() [2/2]

MediumLevelILInstruction MediumLevelILInstruction::GetLeftExpr ( ) const

◆ GetRightExpr() [2/2]

MediumLevelILInstruction MediumLevelILInstruction::GetRightExpr ( ) const

◆ GetCarryExpr() [2/2]

MediumLevelILInstruction MediumLevelILInstruction::GetCarryExpr ( ) const

◆ GetStackExpr() [2/2]

MediumLevelILInstruction MediumLevelILInstruction::GetStackExpr ( ) const

◆ GetConditionExpr() [2/2]

MediumLevelILInstruction MediumLevelILInstruction::GetConditionExpr ( ) const

◆ GetHighVariable() [2/2]

Variable MediumLevelILInstruction::GetHighVariable ( ) const

◆ GetLowVariable() [2/2]

Variable MediumLevelILInstruction::GetLowVariable ( ) const

◆ GetHighSSAVariable() [2/2]

SSAVariable MediumLevelILInstruction::GetHighSSAVariable ( ) const

◆ GetLowSSAVariable() [2/2]

SSAVariable MediumLevelILInstruction::GetLowSSAVariable ( ) const

◆ GetOffset() [2/2]

uint64_t MediumLevelILInstruction::GetOffset ( ) const

◆ GetConstant() [2/2]

int64_t MediumLevelILInstruction::GetConstant ( ) const

◆ GetConstantData() [2/2]

ConstantData MediumLevelILInstruction::GetConstantData ( ) const

◆ GetVector() [2/2]

int64_t MediumLevelILInstruction::GetVector ( ) const

◆ GetIntrinsic() [2/2]

uint32_t MediumLevelILInstruction::GetIntrinsic ( ) const

◆ GetTarget() [2/2]

size_t MediumLevelILInstruction::GetTarget ( ) const

◆ GetTrueTarget() [2/2]

size_t MediumLevelILInstruction::GetTrueTarget ( ) const

◆ GetFalseTarget() [2/2]

size_t MediumLevelILInstruction::GetFalseTarget ( ) const

◆ GetDestMemoryVersion() [2/2]

size_t MediumLevelILInstruction::GetDestMemoryVersion ( ) const

◆ GetSourceMemoryVersion() [2/2]

size_t MediumLevelILInstruction::GetSourceMemoryVersion ( ) const

◆ GetTargets() [2/2]

MediumLevelILIndexMap MediumLevelILInstruction::GetTargets ( ) const

◆ GetSourceMemoryVersions() [2/2]

MediumLevelILIndexList MediumLevelILInstruction::GetSourceMemoryVersions ( ) const

◆ GetOutputVariables() [2/2]

MediumLevelILVariableList MediumLevelILInstruction::GetOutputVariables ( ) const

◆ GetOutputSSAVariables() [2/2]

MediumLevelILSSAVariableList MediumLevelILInstruction::GetOutputSSAVariables ( ) const

◆ GetParameterExprs() [2/2]

MediumLevelILInstructionList MediumLevelILInstruction::GetParameterExprs ( ) const

◆ GetSourceExprs() [2/2]

MediumLevelILInstructionList MediumLevelILInstruction::GetSourceExprs ( ) const

◆ GetSourceSSAVariables() [2/2]

MediumLevelILSSAVariableList MediumLevelILInstruction::GetSourceSSAVariables ( ) const

◆ BinaryNinja::MediumLevelILOperand

class BinaryNinja::MediumLevelILOperand

Public Member Functions

 MediumLevelILOperand (const MediumLevelILInstruction &instr, MediumLevelILOperandUsage usage, size_t operandIndex)
 
MediumLevelILOperandType GetType () const
 
MediumLevelILOperandUsage GetUsage () const
 
uint64_t GetInteger () const
 
ConstantData GetConstantData () const
 
size_t GetIndex () const
 
uint32_t GetIntrinsic () const
 
MediumLevelILInstruction GetExpr () const
 
Variable GetVariable () const
 
SSAVariable GetSSAVariable () const
 
MediumLevelILIndexList GetIndexList () const
 
MediumLevelILIndexMap GetIndexMap () const
 
MediumLevelILVariableList GetVariableList () const
 
MediumLevelILSSAVariableList GetSSAVariableList () const
 
MediumLevelILInstructionList GetExprList () const
 

Constructor & Destructor Documentation

◆ MediumLevelILOperand()

MediumLevelILOperand::MediumLevelILOperand ( const MediumLevelILInstruction instr,
MediumLevelILOperandUsage  usage,
size_t  operandIndex 
)

Member Function Documentation

◆ GetType()

MediumLevelILOperandType BinaryNinja::MediumLevelILOperand::GetType ( ) const
inline

◆ GetUsage()

MediumLevelILOperandUsage BinaryNinja::MediumLevelILOperand::GetUsage ( ) const
inline

◆ GetInteger()

uint64_t MediumLevelILOperand::GetInteger ( ) const

◆ GetConstantData()

ConstantData MediumLevelILOperand::GetConstantData ( ) const

◆ GetIndex()

size_t MediumLevelILOperand::GetIndex ( ) const

◆ GetIntrinsic()

uint32_t MediumLevelILOperand::GetIntrinsic ( ) const

◆ GetExpr()

MediumLevelILInstruction MediumLevelILOperand::GetExpr ( ) const

◆ GetVariable()

Variable MediumLevelILOperand::GetVariable ( ) const

◆ GetSSAVariable()

SSAVariable MediumLevelILOperand::GetSSAVariable ( ) const

◆ GetIndexList()

MediumLevelILIndexList MediumLevelILOperand::GetIndexList ( ) const

◆ GetIndexMap()

MediumLevelILIndexMap MediumLevelILOperand::GetIndexMap ( ) const

◆ GetVariableList()

MediumLevelILVariableList MediumLevelILOperand::GetVariableList ( ) const

◆ GetSSAVariableList()

MediumLevelILSSAVariableList MediumLevelILOperand::GetSSAVariableList ( ) const

◆ GetExprList()

MediumLevelILInstructionList MediumLevelILOperand::GetExprList ( ) const

◆ BinaryNinja::MediumLevelILOperandList

class BinaryNinja::MediumLevelILOperandList

Public Types

typedef ListIterator const_iterator
 

Public Member Functions

 MediumLevelILOperandList (const MediumLevelILInstruction &instr, const std::vector< MediumLevelILOperandUsage > &usageList, const std::unordered_map< MediumLevelILOperandUsage, size_t > &operandIndexMap)
 
const_iterator begin () const
 
const_iterator end () const
 
size_t size () const
 
const MediumLevelILOperand operator[] (size_t i) const
 
 operator std::vector< MediumLevelILOperand > () const
 

Member Typedef Documentation

◆ const_iterator

Constructor & Destructor Documentation

◆ MediumLevelILOperandList()

MediumLevelILOperandList::MediumLevelILOperandList ( const MediumLevelILInstruction instr,
const std::vector< MediumLevelILOperandUsage > &  usageList,
const std::unordered_map< MediumLevelILOperandUsage, size_t > &  operandIndexMap 
)

Member Function Documentation

◆ begin()

MediumLevelILOperandList::const_iterator MediumLevelILOperandList::begin ( ) const

◆ end()

MediumLevelILOperandList::const_iterator MediumLevelILOperandList::end ( ) const

◆ size()

size_t MediumLevelILOperandList::size ( ) const

◆ operator[]()

const MediumLevelILOperand MediumLevelILOperandList::operator[] ( size_t  i) const

◆ operator std::vector< MediumLevelILOperand >()

BinaryNinja::MediumLevelILOperandList::operator std::vector< MediumLevelILOperand > ( ) const

◆ BinaryNinja::MediumLevelILConstantInstruction

struct BinaryNinja::MediumLevelILConstantInstruction

Public Member Functions

int64_t GetConstant () const
 
- Public Member Functions inherited from BinaryNinja::MediumLevelILInstructionBase
MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
ConstantData GetRawOperandAsConstantData (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
char * Dump () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
void SetAttributes (uint32_t attributes)
 
void SetAttribute (BNILInstructionAttribute attribute, bool state=true)
 
void ClearAttribute (BNILInstructionAttribute attribute)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILConstantDataInstructionAsConstantData () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t attributes
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 
- Static Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ GetConstant()

int64_t BinaryNinja::MediumLevelILConstantInstruction::GetConstant ( ) const
inline

◆ BinaryNinja::MediumLevelILConstantDataInstruction

struct BinaryNinja::MediumLevelILConstantDataInstruction

Public Member Functions

ConstantData GetConstantData () const
 
- Public Member Functions inherited from BinaryNinja::MediumLevelILInstructionBase
MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
ConstantData GetRawOperandAsConstantData (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
char * Dump () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
void SetAttributes (uint32_t attributes)
 
void SetAttribute (BNILInstructionAttribute attribute, bool state=true)
 
void ClearAttribute (BNILInstructionAttribute attribute)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILConstantDataInstructionAsConstantData () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t attributes
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 
- Static Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ GetConstantData()

ConstantData BinaryNinja::MediumLevelILConstantDataInstruction::GetConstantData ( ) const
inline

◆ BinaryNinja::MediumLevelILOneOperandInstruction

struct BinaryNinja::MediumLevelILOneOperandInstruction

Public Member Functions

MediumLevelILInstruction GetSourceExpr () const
 
- Public Member Functions inherited from BinaryNinja::MediumLevelILInstructionBase
MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
ConstantData GetRawOperandAsConstantData (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
char * Dump () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
void SetAttributes (uint32_t attributes)
 
void SetAttribute (BNILInstructionAttribute attribute, bool state=true)
 
void ClearAttribute (BNILInstructionAttribute attribute)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILConstantDataInstructionAsConstantData () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t attributes
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 
- Static Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ GetSourceExpr()

MediumLevelILInstruction BinaryNinja::MediumLevelILOneOperandInstruction::GetSourceExpr ( ) const
inline

◆ BinaryNinja::MediumLevelILTwoOperandInstruction

struct BinaryNinja::MediumLevelILTwoOperandInstruction

Public Member Functions

MediumLevelILInstruction GetLeftExpr () const
 
MediumLevelILInstruction GetRightExpr () const
 
- Public Member Functions inherited from BinaryNinja::MediumLevelILInstructionBase
MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
ConstantData GetRawOperandAsConstantData (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
char * Dump () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
void SetAttributes (uint32_t attributes)
 
void SetAttribute (BNILInstructionAttribute attribute, bool state=true)
 
void ClearAttribute (BNILInstructionAttribute attribute)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILConstantDataInstructionAsConstantData () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t attributes
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 
- Static Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ GetLeftExpr()

MediumLevelILInstruction BinaryNinja::MediumLevelILTwoOperandInstruction::GetLeftExpr ( ) const
inline

◆ GetRightExpr()

MediumLevelILInstruction BinaryNinja::MediumLevelILTwoOperandInstruction::GetRightExpr ( ) const
inline

◆ BinaryNinja::MediumLevelILTwoOperandWithCarryInstruction

struct BinaryNinja::MediumLevelILTwoOperandWithCarryInstruction

Public Member Functions

MediumLevelILInstruction GetLeftExpr () const
 
MediumLevelILInstruction GetRightExpr () const
 
MediumLevelILInstruction GetCarryExpr () const
 
- Public Member Functions inherited from BinaryNinja::MediumLevelILInstructionBase
MediumLevelILOperandList GetOperands () const
 
uint64_t GetRawOperandAsInteger (size_t operand) const
 
ConstantData GetRawOperandAsConstantData (size_t operand) const
 
size_t GetRawOperandAsIndex (size_t operand) const
 
MediumLevelILInstruction GetRawOperandAsExpr (size_t operand) const
 
Variable GetRawOperandAsVariable (size_t operand) const
 
SSAVariable GetRawOperandAsSSAVariable (size_t operand) const
 
SSAVariable GetRawOperandAsPartialSSAVariableSource (size_t operand) const
 
MediumLevelILIndexList GetRawOperandAsIndexList (size_t operand) const
 
MediumLevelILIndexMap GetRawOperandAsIndexMap (size_t operand) const
 
MediumLevelILVariableList GetRawOperandAsVariableList (size_t operand) const
 
MediumLevelILSSAVariableList GetRawOperandAsSSAVariableList (size_t operand) const
 
MediumLevelILInstructionList GetRawOperandAsExprList (size_t operand) const
 
void UpdateRawOperand (size_t operandIndex, ExprId value)
 
void UpdateRawOperandAsSSAVariableList (size_t operandIndex, const std::vector< SSAVariable > &vars)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< MediumLevelILInstruction > &exprs)
 
void UpdateRawOperandAsExprList (size_t operandIndex, const std::vector< size_t > &exprs)
 
RegisterValue GetValue () const
 
PossibleValueSet GetPossibleValues (const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) const
 
Confidence< Ref< Type > > GetType () const
 
char * Dump () const
 
size_t GetSSAVarVersion (const Variable &var)
 
size_t GetSSAMemoryVersion ()
 
Variable GetVariableForRegister (uint32_t reg)
 
Variable GetVariableForFlag (uint32_t flag)
 
Variable GetVariableForStackLocation (int64_t offset)
 
PossibleValueSet GetPossibleSSAVarValues (const SSAVariable &var)
 
RegisterValue GetRegisterValue (uint32_t reg)
 
RegisterValue GetRegisterValueAfter (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValues (uint32_t reg)
 
PossibleValueSet GetPossibleRegisterValuesAfter (uint32_t reg)
 
RegisterValue GetFlagValue (uint32_t flag)
 
RegisterValue GetFlagValueAfter (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValues (uint32_t flag)
 
PossibleValueSet GetPossibleFlagValuesAfter (uint32_t flag)
 
RegisterValue GetStackContents (int32_t offset, size_t len)
 
RegisterValue GetStackContentsAfter (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContents (int32_t offset, size_t len)
 
PossibleValueSet GetPossibleStackContentsAfter (int32_t offset, size_t len)
 
BNILBranchDependence GetBranchDependence (size_t branchInstr)
 
BNILBranchDependence GetBranchDependence (const MediumLevelILInstruction &branch)
 
std::unordered_map< size_t, BNILBranchDependenceGetAllBranchDependence ()
 
size_t GetSSAInstructionIndex () const
 
size_t GetNonSSAInstructionIndex () const
 
size_t GetSSAExprIndex () const
 
size_t GetNonSSAExprIndex () const
 
MediumLevelILInstruction GetSSAForm () const
 
MediumLevelILInstruction GetNonSSAForm () const
 
size_t GetLowLevelILInstructionIndex () const
 
size_t GetLowLevelILExprIndex () const
 
size_t GetHighLevelILInstructionIndex () const
 
size_t GetHighLevelILExprIndex () const
 
bool HasLowLevelIL () const
 
LowLevelILInstruction GetLowLevelIL () const
 
void MarkInstructionForRemoval ()
 
void Replace (ExprId expr)
 
void SetAttributes (uint32_t attributes)
 
void SetAttribute (BNILInstructionAttribute attribute, bool state=true)
 
void ClearAttribute (BNILInstructionAttribute attribute)
 
template<BNMediumLevelILOperation N>
MediumLevelILInstructionAccessor< N > & As ()
 
MediumLevelILOneOperandInstructionAsOneOperand ()
 
MediumLevelILTwoOperandInstructionAsTwoOperand ()
 
MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry ()
 
template<BNMediumLevelILOperation N>
const MediumLevelILInstructionAccessor< N > & As () const
 
const MediumLevelILConstantInstructionAsConstant () const
 
const MediumLevelILConstantDataInstructionAsConstantData () const
 
const MediumLevelILOneOperandInstructionAsOneOperand () const
 
const MediumLevelILTwoOperandInstructionAsTwoOperand () const
 
const MediumLevelILTwoOperandWithCarryInstructionAsTwoOperandWithCarry () const
 

Additional Inherited Members

- Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
Ref< MediumLevelILFunctionfunction
 
size_t exprIndex
 
size_t instructionIndex
 
- Public Attributes inherited from BNMediumLevelILInstruction
BNMediumLevelILOperation operation
 
uint32_t attributes
 
uint32_t sourceOperand
 
size_t size
 
uint64_t operands [5]
 
uint64_t address
 
- Static Public Attributes inherited from BinaryNinja::MediumLevelILInstructionBase
static std::unordered_map< MediumLevelILOperandUsage, MediumLevelILOperandTypeoperandTypeForUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::vector< MediumLevelILOperandUsage > > operationOperandUsage
 
static std::unordered_map< BNMediumLevelILOperation, std::unordered_map< MediumLevelILOperandUsage, size_t > > operationOperandIndex = GetOperandIndexForOperandUsages()
 

Member Function Documentation

◆ GetLeftExpr()

MediumLevelILInstruction BinaryNinja::MediumLevelILTwoOperandWithCarryInstruction::GetLeftExpr ( ) const
inline

◆ GetRightExpr()

MediumLevelILInstruction BinaryNinja::MediumLevelILTwoOperandWithCarryInstruction::GetRightExpr ( ) const
inline

◆ GetCarryExpr()

MediumLevelILInstruction BinaryNinja::MediumLevelILTwoOperandWithCarryInstruction::GetCarryExpr ( ) const
inline

Enumeration Type Documentation

◆ MediumLevelILOperandType

Enumerator
IntegerMediumLevelOperand 
ConstantDataMediumLevelOperand 
IndexMediumLevelOperand 
IntrinsicMediumLevelOperand 
ExprMediumLevelOperand 
VariableMediumLevelOperand 
SSAVariableMediumLevelOperand 
IndexListMediumLevelOperand 
IndexMapMediumLevelOperand 
VariableListMediumLevelOperand 
SSAVariableListMediumLevelOperand 
ExprListMediumLevelOperand 

◆ MediumLevelILOperandUsage

Enumerator
SourceExprMediumLevelOperandUsage 
SourceVariableMediumLevelOperandUsage 
SourceSSAVariableMediumLevelOperandUsage 
PartialSSAVariableSourceMediumLevelOperandUsage 
DestExprMediumLevelOperandUsage 
DestVariableMediumLevelOperandUsage 
DestSSAVariableMediumLevelOperandUsage 
LeftExprMediumLevelOperandUsage 
RightExprMediumLevelOperandUsage 
CarryExprMediumLevelOperandUsage 
StackExprMediumLevelOperandUsage 
ConditionExprMediumLevelOperandUsage 
HighVariableMediumLevelOperandUsage 
LowVariableMediumLevelOperandUsage 
HighSSAVariableMediumLevelOperandUsage 
LowSSAVariableMediumLevelOperandUsage 
OffsetMediumLevelOperandUsage 
ConstantMediumLevelOperandUsage 
ConstantDataMediumLevelOperandUsage 
VectorMediumLevelOperandUsage 
IntrinsicMediumLevelOperandUsage 
TargetMediumLevelOperandUsage 
TrueTargetMediumLevelOperandUsage 
FalseTargetMediumLevelOperandUsage 
DestMemoryVersionMediumLevelOperandUsage 
SourceMemoryVersionMediumLevelOperandUsage 
TargetsMediumLevelOperandUsage 
SourceMemoryVersionsMediumLevelOperandUsage 
OutputVariablesMediumLevelOperandUsage 
OutputVariablesSubExprMediumLevelOperandUsage 
OutputSSAVariablesMediumLevelOperandUsage 
OutputSSAVariablesSubExprMediumLevelOperandUsage 
OutputSSAMemoryVersionMediumLevelOperandUsage 
ParameterExprsMediumLevelOperandUsage 
SourceExprsMediumLevelOperandUsage 
UntypedParameterExprsMediumLevelOperandUsage 
UntypedParameterSSAExprsMediumLevelOperandUsage 
ParameterSSAMemoryVersionMediumLevelOperandUsage 
SourceSSAVariablesMediumLevelOperandUsages