struct BinaryNinja::LowLevelILLabel |
Public Member Functions | |
LowLevelILLabel () | |
Additional Inherited Members | |
Public Attributes inherited from BNLowLevelILLabel | |
bool | resolved |
size_t | ref |
size_t | operand |
LowLevelILLabel::LowLevelILLabel | ( | ) |
class BinaryNinja::LowLevelILFunction |
Public Member Functions | |
LowLevelILFunction (Architecture *arch, Function *func=nullptr) | |
LowLevelILFunction (BNLowLevelILFunction *func) | |
Ref< Function > | GetFunction () const |
Ref< Architecture > | GetArchitecture () const |
void | PrepareToCopyFunction (LowLevelILFunction *func) |
void | PrepareToCopyBlock (BasicBlock *block) |
BNLowLevelILLabel * | GetLabelForSourceInstruction (size_t i) |
Get the LowLevelILLabel for a given source instruction. | |
uint64_t | GetCurrentAddress () const |
Get the current IL address. | |
void | SetCurrentAddress (Architecture *arch, uint64_t addr) |
size_t | GetInstructionStart (Architecture *arch, uint64_t addr) |
void | ClearIndirectBranches () |
void | SetIndirectBranches (const std::vector< ArchAndAddr > &branches) |
std::vector< uint32_t > | GetRegisters () |
Get a list of registers used in the LLIL function. | |
std::vector< uint32_t > | GetRegisterStacks () |
Get a list of used register stacks used in the LLIL function. | |
std::vector< uint32_t > | GetFlags () |
Get the list of flags used in this LLIL function. | |
std::vector< SSARegister > | GetSSARegistersWithoutVersions () |
std::vector< SSARegisterStack > | GetSSARegisterStacksWithoutVersions () |
std::vector< SSAFlag > | GetSSAFlagsWithoutVersions () |
std::vector< SSARegister > | GetSSARegisters () |
std::vector< SSARegisterStack > | GetSSARegisterStacks () |
std::vector< SSAFlag > | GetSSAFlags () |
ExprId | AddExpr (BNLowLevelILOperation operation, size_t size, uint32_t flags, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0) |
ExprId | AddExprWithLocation (BNLowLevelILOperation operation, uint64_t addr, uint32_t sourceOperand, size_t size, uint32_t flags, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0) |
ExprId | AddExprWithLocation (BNLowLevelILOperation operation, const ILSourceLocation &loc, size_t size, uint32_t flags, ExprId a=0, ExprId b=0, ExprId c=0, ExprId d=0) |
ExprId | AddInstruction (ExprId expr) |
ExprId | Nop (const ILSourceLocation &loc=ILSourceLocation()) |
No operation, this instruction does nothing. | |
ExprId | SetRegister (size_t size, uint32_t reg, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Sets the register reg of size size to the expression value . | |
ExprId | SetRegisterSplit (size_t size, uint32_t high, uint32_t low, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Uses hi and lo as a single extended register setting hi:lo to the expression value . | |
ExprId | SetRegisterSSA (size_t size, const SSARegister ®, ExprId val, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SetRegisterSSAPartial (size_t size, const SSARegister &fullReg, uint32_t partialReg, ExprId val, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SetRegisterSplitSSA (size_t size, const SSARegister &high, const SSARegister &low, ExprId val, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SetRegisterStackTopRelative (size_t size, uint32_t regStack, ExprId entry, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Sets the top-relative entry entry of size size in register stack reg_stack to the expression value . | |
ExprId | RegisterStackPush (size_t size, uint32_t regStack, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Pushes the expression value of size size onto the top of the register stack reg_stack . | |
ExprId | SetRegisterStackTopRelativeSSA (size_t size, uint32_t regStack, size_t destVersion, size_t srcVersion, ExprId entry, const SSARegister &top, ExprId val, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SetRegisterStackAbsoluteSSA (size_t size, uint32_t regStack, size_t destVersion, size_t srcVersion, uint32_t reg, ExprId val, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SetFlag (uint32_t flag, ExprId val, const ILSourceLocation &loc=ILSourceLocation()) |
Sets the flag flag to the ExpressionIndex value . | |
ExprId | SetFlagSSA (const SSAFlag &flag, ExprId val, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Load (size_t size, ExprId addr, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Reads size bytes from the expression addr . | |
ExprId | LoadSSA (size_t size, ExprId addr, size_t sourceMemoryVer, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Store (size_t size, ExprId addr, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Writes size bytes to expression addr read from expression val . | |
ExprId | StoreSSA (size_t size, ExprId addr, ExprId val, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Push (size_t size, ExprId val, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Writes size bytes from expression value to the stack, adjusting the stack by size . | |
ExprId | Pop (size_t size, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Reads ``size`` bytes from the stack, adjusting the stack by ``size``. | |
ExprId | Register (size_t size, uint32_t reg, const ILSourceLocation &loc=ILSourceLocation()) |
Returns a register of size size with name reg . | |
ExprId | RegisterSSA (size_t size, const SSARegister ®, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterSSAPartial (size_t size, const SSARegister &fullReg, uint32_t partialReg, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterSplit (size_t size, uint32_t high, uint32_t low, const ILSourceLocation &loc=ILSourceLocation()) |
Combines registers of size ``size`` with names ``hi`` and ``lo``. | |
ExprId | RegisterSplitSSA (size_t size, const SSARegister &high, const SSARegister &low, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterStackTopRelative (size_t size, uint32_t regStack, ExprId entry, const ILSourceLocation &loc=ILSourceLocation()) |
Returns a register stack entry of size size at top-relative location entry in register stack with name regStack . | |
ExprId | RegisterStackPop (size_t size, uint32_t regStack, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns the top entry of size size in register stack with name reg_stack , and removes the entry from the stack. | |
ExprId | RegisterStackFreeReg (uint32_t reg, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterStackFreeTopRelative (uint32_t regStack, ExprId entry, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterStackTopRelativeSSA (size_t size, const SSARegisterStack ®Stack, ExprId entry, const SSARegister &top, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterStackAbsoluteSSA (size_t size, const SSARegisterStack ®Stack, uint32_t reg, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterStackFreeTopRelativeSSA (uint32_t regStack, size_t destVersion, size_t srcVersion, ExprId entry, const SSARegister &top, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterStackFreeAbsoluteSSA (uint32_t regStack, size_t destVersion, size_t srcVersion, uint32_t reg, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Const (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression for the constant integer value with size size . | |
ExprId | ConstPointer (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression for the constant pointer value with size size . | |
ExprId | ExternPointer (size_t size, uint64_t val, uint64_t offset, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression for the constant relocated pointer ``value`` with size ``size``. | |
ExprId | FloatConstRaw (size_t size, uint64_t val, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression for the constant raw binary floating point value value with size size . | |
ExprId | FloatConstSingle (float val, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression for the single precision floating point value value . | |
ExprId | FloatConstDouble (double val, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression for the double precision floating point value value . | |
ExprId | Flag (uint32_t flag, const ILSourceLocation &loc=ILSourceLocation()) |
Returns a flag expression for the given flag index. | |
ExprId | FlagSSA (const SSAFlag &flag, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | FlagBit (size_t size, uint32_t flag, size_t bitIndex, const ILSourceLocation &loc=ILSourceLocation()) |
Sets the flag with index flag and size size to the constant integer value bit . | |
ExprId | FlagBitSSA (size_t size, const SSAFlag &flag, size_t bitIndex, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Add (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Adds expression a to expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | AddCarry (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Adds with carry expression a to expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | Sub (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Subtracts expression b from expression a potentially setting flags flags and returning an expression of size bytes. | |
ExprId | SubBorrow (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Subtracts with borrow expression b from expression a potentially setting flags flags and returning an expression of size bytes. | |
ExprId | And (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Bitwise and's expression a and expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | Or (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Bitwise or's expression a and expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | Xor (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Xor's expression a with expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | ShiftLeft (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Shifts left expression a by expression b from expression a potentially setting flags flags and returning an expression of size bytes. | |
ExprId | LogicalShiftRight (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Shifts logically right expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | ArithShiftRight (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Shifts arithmetic right expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | RotateLeft (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Bitwise rotates left expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | RotateLeftCarry (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Bitwise rotates left with carry expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | RotateRight (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Bitwise rotates right expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | RotateRightCarry (size_t size, ExprId a, ExprId b, ExprId carry, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Bitwise rotates right with carry expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | Mult (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Multiplies expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | MultDoublePrecUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Multiplies unsigned with double precision expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | MultDoublePrecSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Multiplies signed with double precision expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | DivUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Unsigned divide expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | DivDoublePrecUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Unsigned double precision divide using expression a as a single double precision register by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | DivSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Signed divide expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | DivDoublePrecSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Signed double precision divide using expression a as a single double precision register by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | ModUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Unsigned modulus expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | ModDoublePrecUnsigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Unsigned double precision modulus using expression a as a single double precision register by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | ModSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Signed modulus expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | ModDoublePrecSigned (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Signed double precision modulus using expression a as a single double precision register by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | Neg (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Two's complement sign negation of expression value of size size potentially setting flags. | |
ExprId | Not (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Bitwise inverse of expression value of size size potentially setting flags. | |
ExprId | SignExtend (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Two's complement sign-extends the expression in value to size bytes. | |
ExprId | ZeroExtend (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Zero-extends the expression in value to size bytes. | |
ExprId | LowPart (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Truncates value to size bytes. | |
ExprId | Jump (ExprId dest, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression which jumps (branches) to the expression dest . | |
ExprId | JumpTo (ExprId dest, const std::map< uint64_t, BNLowLevelILLabel * > &targets, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Call (ExprId dest, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression which first pushes the address of the next instruction onto the stack then jumps (branches) to the expression dest . | |
ExprId | CallStackAdjust (ExprId dest, int64_t adjust, const std::map< uint32_t, int32_t > ®StackAdjust, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression which first pushes the address of the next instruction onto the stack then jumps (branches) to the expression dest . | |
ExprId | TailCall (ExprId dest, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression which jumps (branches) to the expression dest . | |
ExprId | CallSSA (const std::vector< SSARegister > &output, ExprId dest, const std::vector< ExprId > ¶ms, const SSARegister &stack, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SystemCallSSA (const std::vector< SSARegister > &output, const std::vector< ExprId > ¶ms, const SSARegister &stack, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | TailCallSSA (const std::vector< SSARegister > &output, ExprId dest, const std::vector< ExprId > ¶ms, const SSARegister &stack, size_t newMemoryVer, size_t prevMemoryVer, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SeparateParamListSSA (const std::vector< ExprId > ¶ms, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SharedParamSlotSSA (const std::vector< ExprId > ¶ms, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Return (size_t dest, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression which jumps (branches) to the expression dest . | |
ExprId | NoReturn (const ILSourceLocation &loc=ILSourceLocation()) |
Returns an expression that halts disassembly. | |
ExprId | FlagCondition (BNLowLevelILFlagCondition cond, uint32_t semClass=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns a flag_condition expression for the given LowLevelILFlagCondition. | |
ExprId | FlagGroup (uint32_t semGroup, const ILSourceLocation &loc=ILSourceLocation()) |
Returns a flag_group expression for the given semantic flag group. | |
ExprId | CompareEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is equal to expression b . | |
ExprId | CompareNotEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is not equal to expression b . | |
ExprId | CompareSignedLessThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is signed less than expression b . | |
ExprId | CompareUnsignedLessThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is unsigned less than expression b . | |
ExprId | CompareSignedLessEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is signed less than or equal to expression b . | |
ExprId | CompareUnsignedLessEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is unsigned less than or equal to expression b . | |
ExprId | CompareSignedGreaterEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is signed greater than or equal to expression b . | |
ExprId | CompareUnsignedGreaterEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is unsigned greater than or equal to expression b . | |
ExprId | CompareSignedGreaterThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is signed greater than or equal to expression b . | |
ExprId | CompareUnsignedGreaterThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns comparison expression of size size checking if expression a is unsigned greater than or equal to expression b . | |
ExprId | TestBit (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | BoolToInt (size_t size, ExprId a, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | SystemCall (const ILSourceLocation &loc=ILSourceLocation()) |
Returns a system call expression. | |
ExprId | Intrinsic (const std::vector< RegisterOrFlag > &outputs, uint32_t intrinsic, const std::vector< ExprId > ¶ms, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns an intrinsic expression. | |
ExprId | IntrinsicSSA (const std::vector< SSARegisterOrFlag > &outputs, uint32_t intrinsic, const std::vector< ExprId > ¶ms, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | MemoryIntrinsicSSA (const std::vector< SSARegisterOrFlag > &outputs, uint32_t intrinsic, const std::vector< ExprId > ¶ms, size_t newMemVersion, size_t prevMemVersion, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | Breakpoint (const ILSourceLocation &loc=ILSourceLocation()) |
Returns a processor breakpoint expression. | |
ExprId | Trap (int64_t num, const ILSourceLocation &loc=ILSourceLocation()) |
Returns a processor trap (interrupt) expression of the given integer value . | |
ExprId | Undefined (const ILSourceLocation &loc=ILSourceLocation()) |
Returns the undefined expression. | |
ExprId | Unimplemented (const ILSourceLocation &loc=ILSourceLocation()) |
Returns the unimplemented expression. | |
ExprId | UnimplementedMemoryRef (size_t size, ExprId addr, const ILSourceLocation &loc=ILSourceLocation()) |
A memory reference to expression addr of size size with unimplemented operation. | |
ExprId | RegisterPhi (const SSARegister &dest, const std::vector< SSARegister > &sources, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RegisterStackPhi (const SSARegisterStack &dest, const std::vector< SSARegisterStack > &sources, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | FlagPhi (const SSAFlag &dest, const std::vector< SSAFlag > &sources, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | MemoryPhi (size_t dest, const std::vector< size_t > &sources, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | FloatAdd (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Adds floating point expression a to expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | FloatSub (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Subtracts floating point expression b from expression a potentially setting flags flags and returning an expression of size bytes. | |
ExprId | FloatMult (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Multiplies floating point expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | FloatDiv (size_t size, ExprId a, ExprId b, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Divides floating point expression a by expression b potentially setting flags flags and returning an expression of size bytes. | |
ExprId | FloatSqrt (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns the square root of floating point expression value of size size potentially setting flags. | |
ExprId | FloatNeg (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns sign negation of floating point expression value of size size potentially setting flags. | |
ExprId | FloatAbs (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns absolute value of floating point expression value of size size potentially setting flags. | |
ExprId | FloatToInt (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns integer value of floating point expression value of size size potentially setting flags. | |
ExprId | IntToFloat (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point value of integer expression value of size size potentially setting flags. | |
ExprId | FloatConvert (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
ExprId | RoundToInt (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Rounds a floating point value to the nearest integer. | |
ExprId | Floor (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Rounds a floating point value to an integer, towards negative infinity. | |
ExprId | Ceil (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Rounds a floating point value to an integer, towards positive infinity. | |
ExprId | FloatTrunc (size_t size, ExprId a, uint32_t flags=0, const ILSourceLocation &loc=ILSourceLocation()) |
Rounds a floating point value to an integer towards zero. | |
ExprId | FloatCompareEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is equal to expression b . | |
ExprId | FloatCompareNotEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is not equal to expression b . | |
ExprId | FloatCompareLessThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is less than expression b . | |
ExprId | FloatCompareLessEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is less than or equal to expression b . | |
ExprId | FloatCompareGreaterEqual (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is greater than or equal to expression b . | |
ExprId | FloatCompareGreaterThan (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is greater than expression b . | |
ExprId | FloatCompareOrdered (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is ordered relative to expression b . | |
ExprId | FloatCompareUnordered (size_t size, ExprId a, ExprId b, const ILSourceLocation &loc=ILSourceLocation()) |
Returns floating point comparison expression of size size checking if expression a is unordered relative to expression b . | |
ExprId | Goto (BNLowLevelILLabel &label, const ILSourceLocation &loc=ILSourceLocation()) |
Returns a goto expression which jumps to the provided LowLevelILLabel. | |
ExprId | If (ExprId operand, BNLowLevelILLabel &t, BNLowLevelILLabel &f, const ILSourceLocation &loc=ILSourceLocation()) |
Returns the if expression which depending on condition operand jumps to the LowLevelILLabel t when the condition expression operand is non-zero and f`` when it's zero. | |
void | MarkLabel (BNLowLevelILLabel &label) |
Assigns a LowLevelILLabel to the current IL address. | |
std::vector< uint64_t > | GetOperandList (ExprId i, size_t listOperand) |
ExprId | AddLabelMap (const std::map< uint64_t, BNLowLevelILLabel * > &labels) |
ExprId | AddOperandList (const std::vector< ExprId > operands) |
ExprId | AddIndexList (const std::vector< size_t > operands) |
ExprId | AddRegisterOrFlagList (const std::vector< RegisterOrFlag > ®s) |
ExprId | AddSSARegisterList (const std::vector< SSARegister > ®s) |
ExprId | AddSSARegisterStackList (const std::vector< SSARegisterStack > ®Stacks) |
ExprId | AddSSAFlagList (const std::vector< SSAFlag > &flags) |
ExprId | AddSSARegisterOrFlagList (const std::vector< SSARegisterOrFlag > ®s) |
ExprId | GetExprForRegisterOrConstant (const BNRegisterOrConstant &operand, size_t size) |
ExprId | GetNegExprForRegisterOrConstant (const BNRegisterOrConstant &operand, size_t size) |
ExprId | GetExprForFlagOrConstant (const BNRegisterOrConstant &operand) |
ExprId | GetExprForRegisterOrConstantOperation (BNLowLevelILOperation op, size_t size, BNRegisterOrConstant *operands, size_t operandCount) |
ExprId | Operand (size_t n, ExprId expr) |
BNLowLevelILInstruction | GetRawExpr (size_t i) const |
LowLevelILInstruction | operator[] (size_t i) |
LowLevelILInstruction | GetInstruction (size_t i) |
LowLevelILInstruction | 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 | ReplaceExpr (size_t expr, size_t newExpr) |
void | SetExprAttributes (size_t expr, uint32_t attributes) |
void | AddLabelForAddress (Architecture *arch, uint64_t addr) |
BNLowLevelILLabel * | GetLabelForAddress (Architecture *arch, uint64_t addr) |
Get the LowLevelILLabel for a given address. | |
void | Finalize () |
Ends the function and computes the list of basic blocks. | |
void | GenerateSSAForm () |
Generate SSA form given the current LLIL. | |
bool | GetExprText (Architecture *arch, ExprId expr, std::vector< InstructionTextToken > &tokens, DisassemblySettings *settings=nullptr) |
Get the list of InstructionTextTokens for a given expression. | |
bool | GetInstructionText (Function *func, Architecture *arch, size_t i, std::vector< InstructionTextToken > &tokens, DisassemblySettings *settings=nullptr) |
Get the list of InstructionTextTokens for a given instruction. | |
uint32_t | GetTemporaryRegisterCount () |
uint32_t | GetTemporaryFlagCount () |
std::vector< Ref< BasicBlock > > | GetBasicBlocks () const |
Ref< BasicBlock > | GetBasicBlockForInstruction (size_t i) const |
Ref< LowLevelILFunction > | GetSSAForm () const |
Ref< LowLevelILFunction > | GetNonSSAForm () 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 | GetSSARegisterDefinition (const SSARegister ®) const |
size_t | GetSSAFlagDefinition (const SSAFlag &flag) const |
size_t | GetSSAMemoryDefinition (size_t version) const |
std::set< size_t > | GetSSARegisterUses (const SSARegister ®) const |
std::set< size_t > | GetSSAFlagUses (const SSAFlag &flag) const |
std::set< size_t > | GetSSAMemoryUses (size_t version) const |
RegisterValue | GetSSARegisterValue (const SSARegister ®) |
RegisterValue | GetSSAFlagValue (const SSAFlag &flag) |
RegisterValue | GetExprValue (size_t expr) |
RegisterValue | GetExprValue (const LowLevelILInstruction &expr) |
PossibleValueSet | GetPossibleExprValues (size_t expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) |
PossibleValueSet | GetPossibleExprValues (const LowLevelILInstruction &expr, const std::set< BNDataFlowQueryOption > &options=std::set< BNDataFlowQueryOption >()) |
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 >()) |
Ref< MediumLevelILFunction > | GetMediumLevelIL () const |
Ref< MediumLevelILFunction > | GetMappedMediumLevelIL () const |
size_t | GetMediumLevelILInstructionIndex (size_t instr) const |
size_t | GetMediumLevelILExprIndex (size_t expr) const |
std::set< size_t > | GetMediumLevelILExprIndexes (size_t expr) const |
size_t | GetMappedMediumLevelILInstructionIndex (size_t instr) const |
size_t | GetMappedMediumLevelILExprIndex (size_t expr) const |
Ref< FlowGraph > | CreateFunctionGraph (DisassemblySettings *settings=nullptr) |
Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNLowLevelILFunction, BNNewLowLevelILFunctionReference, BNFreeLowLevelILFunction > | |
CoreRefCountObject () | |
virtual | ~CoreRefCountObject () |
BNLowLevelILFunction * | GetObject () const |
void | AddRef () |
void | Release () |
void | AddRefForRegistration () |
void | ReleaseForRegistration () |
void | AddRefForCallback () |
void | ReleaseForCallback () |
Static Public Member Functions | |
static bool | IsConstantType (BNLowLevelILOperation type) |
Static Public Member Functions inherited from BinaryNinja::CoreRefCountObject< BNLowLevelILFunction, BNNewLowLevelILFunctionReference, BNFreeLowLevelILFunction > | |
static BNLowLevelILFunction * | GetObject (CoreRefCountObject *obj) |
static BNLowLevelILFunction * | GetObject (const CoreRefCountObject *obj) |
Additional Inherited Members | |
Public Attributes inherited from BinaryNinja::CoreRefCountObject< BNLowLevelILFunction, BNNewLowLevelILFunctionReference, BNFreeLowLevelILFunction > | |
std::atomic< int > | m_refs |
bool | m_registeredRef |
BNLowLevelILFunction * | m_object |
LowLevelILFunction::LowLevelILFunction | ( | Architecture * | arch, |
Function * | func = nullptr ) |
LowLevelILFunction::LowLevelILFunction | ( | BNLowLevelILFunction * | func | ) |
Ref< Architecture > LowLevelILFunction::GetArchitecture | ( | ) | const |
void LowLevelILFunction::PrepareToCopyFunction | ( | LowLevelILFunction * | func | ) |
void LowLevelILFunction::PrepareToCopyBlock | ( | BasicBlock * | block | ) |
BNLowLevelILLabel * LowLevelILFunction::GetLabelForSourceInstruction | ( | size_t | i | ) |
Get the LowLevelILLabel for a given source instruction.
The returned pointer is to an internal object with the same lifetime as the containing LowLevelILFunction.
i | The source instruction index |
uint64_t LowLevelILFunction::GetCurrentAddress | ( | ) | const |
Get the current IL address.
void LowLevelILFunction::SetCurrentAddress | ( | Architecture * | arch, |
uint64_t | addr ) |
size_t LowLevelILFunction::GetInstructionStart | ( | Architecture * | arch, |
uint64_t | addr ) |
void LowLevelILFunction::ClearIndirectBranches | ( | ) |
void LowLevelILFunction::SetIndirectBranches | ( | const std::vector< ArchAndAddr > & | branches | ) |
std::vector< uint32_t > LowLevelILFunction::GetRegisters | ( | ) |
Get a list of registers used in the LLIL function.
std::vector< uint32_t > LowLevelILFunction::GetRegisterStacks | ( | ) |
Get a list of used register stacks used in the LLIL function.
std::vector< uint32_t > LowLevelILFunction::GetFlags | ( | ) |
Get the list of flags used in this LLIL function.
std::vector< SSARegister > LowLevelILFunction::GetSSARegistersWithoutVersions | ( | ) |
std::vector< SSARegisterStack > LowLevelILFunction::GetSSARegisterStacksWithoutVersions | ( | ) |
std::vector< SSAFlag > LowLevelILFunction::GetSSAFlagsWithoutVersions | ( | ) |
std::vector< SSARegister > LowLevelILFunction::GetSSARegisters | ( | ) |
std::vector< SSARegisterStack > LowLevelILFunction::GetSSARegisterStacks | ( | ) |
std::vector< SSAFlag > LowLevelILFunction::GetSSAFlags | ( | ) |
ExprId LowLevelILFunction::AddExpr | ( | BNLowLevelILOperation | operation, |
size_t | size, | ||
uint32_t | flags, | ||
ExprId | a = 0, | ||
ExprId | b = 0, | ||
ExprId | c = 0, | ||
ExprId | d = 0 ) |
ExprId LowLevelILFunction::AddExprWithLocation | ( | BNLowLevelILOperation | operation, |
uint64_t | addr, | ||
uint32_t | sourceOperand, | ||
size_t | size, | ||
uint32_t | flags, | ||
ExprId | a = 0, | ||
ExprId | b = 0, | ||
ExprId | c = 0, | ||
ExprId | d = 0 ) |
ExprId LowLevelILFunction::AddExprWithLocation | ( | BNLowLevelILOperation | operation, |
const ILSourceLocation & | loc, | ||
size_t | size, | ||
uint32_t | flags, | ||
ExprId | a = 0, | ||
ExprId | b = 0, | ||
ExprId | c = 0, | ||
ExprId | d = 0 ) |
ExprId LowLevelILFunction::Nop | ( | const ILSourceLocation & | loc = ILSourceLocation() | ) |
No operation, this instruction does nothing.
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::SetRegister | ( | size_t | size, |
uint32_t | reg, | ||
ExprId | val, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Sets the register reg
of size size
to the expression value
.
size | Size of the register parameter in bytes |
reg | The register name |
val | An expression to set the register to |
flags | Which flags are set by this operation |
loc | Optional IL Location this instruction was added from. |
reg = value
ExprId LowLevelILFunction::SetRegisterSplit | ( | size_t | size, |
uint32_t | high, | ||
uint32_t | low, | ||
ExprId | val, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Uses hi
and lo
as a single extended register setting hi:lo
to the expression value
.
size | Size of the register parameter in bytes |
high | The high register name |
low | The low register name |
val | An expression to set the split registers to |
flags | Which flags are set by this operation |
loc | Optional IL Location this instruction was added from. |
hi:lo = value
ExprId LowLevelILFunction::SetRegisterSSA | ( | size_t | size, |
const SSARegister & | reg, | ||
ExprId | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SetRegisterSSAPartial | ( | size_t | size, |
const SSARegister & | fullReg, | ||
uint32_t | partialReg, | ||
ExprId | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SetRegisterSplitSSA | ( | size_t | size, |
const SSARegister & | high, | ||
const SSARegister & | low, | ||
ExprId | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SetRegisterStackTopRelative | ( | size_t | size, |
uint32_t | regStack, | ||
ExprId | entry, | ||
ExprId | val, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Sets the top-relative entry entry
of size size
in register stack reg_stack
to the expression value
.
size | Size of the register parameter in bytes |
regStack | The register stack name |
entry | An expression for which stack entry to set |
val | An expression to set the entry to |
flags | Which flags are set by this operation |
loc | Optional IL Location this instruction was added from. |
reg_stack[entry] = value
ExprId LowLevelILFunction::RegisterStackPush | ( | size_t | size, |
uint32_t | regStack, | ||
ExprId | val, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Pushes the expression value
of size size
onto the top of the register stack reg_stack
.
size | Size of the register parameter in bytes |
regStack | The register stack name |
val | An expression to push |
flags | Which flags are set by this operation |
loc | Optional IL Location this instruction was added from. |
reg_stack.push(value)
ExprId LowLevelILFunction::SetRegisterStackTopRelativeSSA | ( | size_t | size, |
uint32_t | regStack, | ||
size_t | destVersion, | ||
size_t | srcVersion, | ||
ExprId | entry, | ||
const SSARegister & | top, | ||
ExprId | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SetRegisterStackAbsoluteSSA | ( | size_t | size, |
uint32_t | regStack, | ||
size_t | destVersion, | ||
size_t | srcVersion, | ||
uint32_t | reg, | ||
ExprId | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SetFlag | ( | uint32_t | flag, |
ExprId | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Sets the flag flag
to the ExpressionIndex value
.
flag | Flag index |
val | An expression to set the flag to |
loc | Optional IL Location this instruction was added from. |
FLAG.flag = value
ExprId LowLevelILFunction::SetFlagSSA | ( | const SSAFlag & | flag, |
ExprId | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Load | ( | size_t | size, |
ExprId | addr, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Reads size
bytes from the expression addr
.
size | Number of bytes to read |
addr | The expression to read memory from |
flags | Flags set by this expression |
loc | Optional IL Location this instruction was added from. |
[addr].size ExprId LowLevelILFunction::LoadSSA | ( | size_t | size, |
ExprId | addr, | ||
size_t | sourceMemoryVer, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Store | ( | size_t | size, |
ExprId | addr, | ||
ExprId | val, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Writes size
bytes to expression addr
read from expression val
.
size | Number of bytes to write |
addr | The expression to write to |
val | The expression to be written |
flags | Which flags are set by this operation |
loc | Optional IL Location this instruction was added from. |
[addr].size = value
ExprId LowLevelILFunction::StoreSSA | ( | size_t | size, |
ExprId | addr, | ||
ExprId | val, | ||
size_t | newMemoryVer, | ||
size_t | prevMemoryVer, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Push | ( | size_t | size, |
ExprId | val, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Writes size
bytes from expression value
to the stack, adjusting the stack by size
.
size | Number of bytes to write and adjust the stack by |
val | The expression to write |
flags | Flags set by this expression |
loc | Optional IL Location this instruction was added from. |
push(value)
ExprId LowLevelILFunction::Pop | ( | size_t | size, |
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Reads ``size`` bytes from the stack, adjusting the stack by ``size``.
size | Number of bytes to read from the stack |
flags | Flags set by this expression |
loc | Optional IL Location this instruction was added from. |
pop
ExprId LowLevelILFunction::Register | ( | size_t | size, |
uint32_t | reg, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns a register of size size
with name reg
.
size | The size of the register in bytes |
reg | The name of the register |
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::RegisterSSA | ( | size_t | size, |
const SSARegister & | reg, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterSSAPartial | ( | size_t | size, |
const SSARegister & | fullReg, | ||
uint32_t | partialReg, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterSplit | ( | size_t | size, |
uint32_t | high, | ||
uint32_t | low, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Combines registers of size ``size`` with names ``hi`` and ``lo``.
size | The size of the register in bytes |
high | Register holding high part of value |
low | Register holding low part of value |
loc | Optional IL Location this instruction was added from. |
hi:lo
ExprId LowLevelILFunction::RegisterSplitSSA | ( | size_t | size, |
const SSARegister & | high, | ||
const SSARegister & | low, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterStackTopRelative | ( | size_t | size, |
uint32_t | regStack, | ||
ExprId | entry, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns a register stack entry of size size
at top-relative location entry
in register stack with name regStack
.
size | The size of the register in bytes |
regStack | The index of the register stack |
entry | An expression for which stack entry to fetch |
loc | Optional IL Location this instruction was added from. |
reg_stack
[entry] ExprId LowLevelILFunction::RegisterStackPop | ( | size_t | size, |
uint32_t | regStack, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns the top entry of size size
in register stack with name reg_stack
, and removes the entry from the stack.
size | The size of the register in bytes |
regStack | The index of the register stack |
flags | Any flags set by this expression |
loc | Optional IL Location this instruction was added from. |
reg_stack.pop
ExprId LowLevelILFunction::RegisterStackFreeReg | ( | uint32_t | reg, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterStackFreeTopRelative | ( | uint32_t | regStack, |
ExprId | entry, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterStackTopRelativeSSA | ( | size_t | size, |
const SSARegisterStack & | regStack, | ||
ExprId | entry, | ||
const SSARegister & | top, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterStackAbsoluteSSA | ( | size_t | size, |
const SSARegisterStack & | regStack, | ||
uint32_t | reg, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterStackFreeTopRelativeSSA | ( | uint32_t | regStack, |
size_t | destVersion, | ||
size_t | srcVersion, | ||
ExprId | entry, | ||
const SSARegister & | top, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterStackFreeAbsoluteSSA | ( | uint32_t | regStack, |
size_t | destVersion, | ||
size_t | srcVersion, | ||
uint32_t | reg, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Const | ( | size_t | size, |
uint64_t | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression for the constant integer value
with size size
.
size | The size of the constant in bytes |
val | Integer value of the constant |
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::ConstPointer | ( | size_t | size, |
uint64_t | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression for the constant pointer value
with size size
.
size | The size of the pointer in bytes |
val | Address referenced by pointer |
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::ExternPointer | ( | size_t | size, |
uint64_t | val, | ||
uint64_t | offset, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression for the constant relocated pointer ``value`` with size ``size``.
size | The size of the pointer in bytes |
val | Address referenced by pointer |
offset | |
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::FloatConstRaw | ( | size_t | size, |
uint64_t | val, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression for the constant raw binary floating point value value
with size size
.
To clarify, value
here is the representation of the float if its bits were instead interpreted as an integer.
A given float could be converted to an integer value like so:
Do note this is exactly how FloatConstSingle and FloatConstDouble perform this conversion (and thus, converting it yourself is typically redundant.)
size | The size of the constant in bytes |
val | Integer value for the raw binary representation of the constant |
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::FloatConstSingle | ( | float | val, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression for the single precision floating point value value
.
val | Float value for the constant |
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::FloatConstDouble | ( | double | val, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression for the double precision floating point value value
.
val | Float value for the constant |
loc | Optional IL Location this instruction was added from. |
ExprId LowLevelILFunction::Flag | ( | uint32_t | flag, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns a flag expression for the given flag index.
flag | Flag index |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::FlagSSA | ( | const SSAFlag & | flag, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::FlagBit | ( | size_t | size, |
uint32_t | flag, | ||
size_t | bitIndex, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Sets the flag with index flag
and size size
to the constant integer value bit
.
size | The size of the flag |
flag | Flag index |
bitIndex | Bit of the flag to set |
loc | Optional IL Location this expression was added from. |
FLAG.reg = bit
ExprId LowLevelILFunction::FlagBitSSA | ( | size_t | size, |
const SSAFlag & | flag, | ||
size_t | bitIndex, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Add | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Adds expression a
to expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | flags to set |
loc | Optional IL Location this expression was added from. |
FLAG.reg = bit
ExprId LowLevelILFunction::AddCarry | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
ExprId | carry, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Adds with carry expression a
to expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
carry | Carry flag expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
adc.<size>{<flags>}(a, b, carry)
ExprId LowLevelILFunction::Sub | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Subtracts expression b
from expression a
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
sub.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::SubBorrow | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
ExprId | carry, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Subtracts with borrow expression b
from expression a
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
carry | Carry flag expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
sbb.<size>{<flags>}(a, b, carry)
ExprId LowLevelILFunction::And | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Bitwise and's expression a
and expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
and.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::Or | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Bitwise or's expression a
and expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
or.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::Xor | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Xor's expression a
with expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
xor.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::ShiftLeft | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Shifts left expression a
by expression b
from expression a
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
lsl.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::LogicalShiftRight | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Shifts logically right expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
lsr.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::ArithShiftRight | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Shifts arithmetic right expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
asr.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::RotateLeft | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Bitwise rotates left expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
rol.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::RotateLeftCarry | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
ExprId | carry, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Bitwise rotates left with carry expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
carry | Carry flag expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
rlc.<size>{<flags>}(a, b, carry)
ExprId LowLevelILFunction::RotateRight | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Bitwise rotates right expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
ror.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::RotateRightCarry | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
ExprId | carry, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Bitwise rotates right with carry expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
carry | Carry flag expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
rrc.<size>{<flags>}(a, b, carry)
ExprId LowLevelILFunction::Mult | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Multiplies expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
sbc.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::MultDoublePrecUnsigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Multiplies unsigned with double precision expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
mulu.dp.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::MultDoublePrecSigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Multiplies signed with double precision expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
muls.dp.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::DivUnsigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Unsigned divide expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
divu.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::DivDoublePrecUnsigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Unsigned double precision divide using expression a
as a single double precision register by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
mods.dp.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::DivSigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Signed divide expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
divs.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::DivDoublePrecSigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Signed double precision divide using expression a
as a single double precision register by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
divs.dp.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::ModUnsigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Unsigned modulus expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
modu.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::ModDoublePrecUnsigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Unsigned double precision modulus using expression a
as a single double precision register by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
modu.dp.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::ModSigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Signed modulus expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
mods.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::ModDoublePrecSigned | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Signed double precision modulus using expression a
as a single double precision register by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
mods.dp.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::Neg | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Two's complement sign negation of expression value
of size size
potentially setting flags.
size | The size of the result in bytes |
a | The expression to negate |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
neg.<size>{<flags>}(value)
ExprId LowLevelILFunction::Not | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Bitwise inverse of expression value
of size size
potentially setting flags.
size | The size of the result in bytes |
a | The expression to bitwise invert |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
not.<size>{<flags>}(value)
ExprId LowLevelILFunction::SignExtend | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Two's complement sign-extends the expression in value
to size
bytes.
size | The size of the result in bytes |
a | The expression to sign extend |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
sx.<size>(value)
ExprId LowLevelILFunction::ZeroExtend | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Zero-extends the expression in value
to size
bytes.
size | The size of the result in bytes |
a | The expression to zero extend |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
sx.<size>(value)
ExprId LowLevelILFunction::LowPart | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Truncates value
to size
bytes.
size | The size of the result in bytes |
a | The expression to truncate |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
zx.<size>(value)
ExprId LowLevelILFunction::Jump | ( | ExprId | dest, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression which jumps (branches) to the expression dest
.
dest | The expression to jump to |
loc | Optional IL Location this expression was added from. |
jump(dest)
ExprId LowLevelILFunction::JumpTo | ( | ExprId | dest, |
const std::map< uint64_t, BNLowLevelILLabel * > & | targets, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Call | ( | ExprId | dest, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression which first pushes the address of the next instruction onto the stack then jumps (branches) to the expression dest
.
dest | The expression to call |
loc | Optional IL Location this expression was added from. |
call(dest)
ExprId LowLevelILFunction::CallStackAdjust | ( | ExprId | dest, |
int64_t | adjust, | ||
const std::map< uint32_t, int32_t > & | regStackAdjust, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression which first pushes the address of the next instruction onto the stack then jumps (branches) to the expression dest
.
After the function exits, stack_adjust
is added to the stack pointer register.
dest | The expression to call |
adjust | Stack adjustment |
regStackAdjust | Register stack adjustment |
loc | Optional IL Location this expression was added from. |
call(dest), stack += stack_adjust
ExprId LowLevelILFunction::TailCall | ( | ExprId | dest, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression which jumps (branches) to the expression dest
.
dest | The expression to jump to |
loc | Optional IL Location this expression was added from. |
tailcall(dest)
ExprId LowLevelILFunction::CallSSA | ( | const std::vector< SSARegister > & | output, |
ExprId | dest, | ||
const std::vector< ExprId > & | params, | ||
const SSARegister & | stack, | ||
size_t | newMemoryVer, | ||
size_t | prevMemoryVer, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SystemCallSSA | ( | const std::vector< SSARegister > & | output, |
const std::vector< ExprId > & | params, | ||
const SSARegister & | stack, | ||
size_t | newMemoryVer, | ||
size_t | prevMemoryVer, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::TailCallSSA | ( | const std::vector< SSARegister > & | output, |
ExprId | dest, | ||
const std::vector< ExprId > & | params, | ||
const SSARegister & | stack, | ||
size_t | newMemoryVer, | ||
size_t | prevMemoryVer, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SeparateParamListSSA | ( | const std::vector< ExprId > & | params, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SharedParamSlotSSA | ( | const std::vector< ExprId > & | params, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Return | ( | size_t | dest, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an expression which jumps (branches) to the expression dest
.
ret
is a special alias for jump that makes the disassembler stop disassembling.
dest | The expression to jump to |
loc | Optional IL Location this expression was added from. |
jump(dest)
ExprId LowLevelILFunction::NoReturn | ( | const ILSourceLocation & | loc = ILSourceLocation() | ) |
Returns an expression that halts disassembly.
loc | Optional IL Location this expression was added from. |
noreturn
ExprId LowLevelILFunction::FlagCondition | ( | BNLowLevelILFlagCondition | cond, |
uint32_t | semClass = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns a flag_condition expression for the given LowLevelILFlagCondition.
cond | Flag condition expression to retrieve |
semClass | Optional semantic flag class |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::FlagGroup | ( | uint32_t | semGroup, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns a flag_group expression for the given semantic flag group.
semGroup | Semantic flag group to access |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareNotEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is not equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareSignedLessThan | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is signed less than expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareUnsignedLessThan | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is unsigned less than expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareSignedLessEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is signed less than or equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareUnsignedLessEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is unsigned less than or equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareSignedGreaterEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is signed greater than or equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareUnsignedGreaterEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is unsigned greater than or equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareSignedGreaterThan | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is signed greater than or equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::CompareUnsignedGreaterThan | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns comparison expression of size size
checking if expression a
is unsigned greater than or equal to expression b
.
size | Size in bytes |
a | LHS of comparison |
b | RHS of comparison |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::TestBit | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::BoolToInt | ( | size_t | size, |
ExprId | a, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::SystemCall | ( | const ILSourceLocation & | loc = ILSourceLocation() | ) |
Returns a system call expression.
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::Intrinsic | ( | const std::vector< RegisterOrFlag > & | outputs, |
uint32_t | intrinsic, | ||
const std::vector< ExprId > & | params, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns an intrinsic expression.
'Intrinsics' are emitted and lifted as if they were builtin functions that do not exist in the binary.
outputs | Registers and/or flags set by this intrinsic call. |
intrinsic | Index of the intrinsic. See also: Architecture::GetIntrinsicName, Architecture::GetAllIntrinsics |
params | Parameter items passed to this intrinsic |
flags | Flags |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::IntrinsicSSA | ( | const std::vector< SSARegisterOrFlag > & | outputs, |
uint32_t | intrinsic, | ||
const std::vector< ExprId > & | params, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::MemoryIntrinsicSSA | ( | const std::vector< SSARegisterOrFlag > & | outputs, |
uint32_t | intrinsic, | ||
const std::vector< ExprId > & | params, | ||
size_t | newMemVersion, | ||
size_t | prevMemVersion, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::Breakpoint | ( | const ILSourceLocation & | loc = ILSourceLocation() | ) |
Returns a processor breakpoint expression.
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::Trap | ( | int64_t | num, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns a processor trap (interrupt) expression of the given integer value
.
num | trap (interrupt) number |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::Undefined | ( | const ILSourceLocation & | loc = ILSourceLocation() | ) |
Returns the undefined expression.
This should be used for instructions which perform functions but aren't important for dataflow or partial emulation purposes.
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::Unimplemented | ( | const ILSourceLocation & | loc = ILSourceLocation() | ) |
Returns the unimplemented expression.
This should be used for instructions which aren't implemented
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::UnimplementedMemoryRef | ( | size_t | size, |
ExprId | addr, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
A memory reference to expression addr
of size size
with unimplemented operation.
size | Size in bytes of the memory reference |
addr | Expression to reference memory |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::RegisterPhi | ( | const SSARegister & | dest, |
const std::vector< SSARegister > & | sources, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RegisterStackPhi | ( | const SSARegisterStack & | dest, |
const std::vector< SSARegisterStack > & | sources, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::FlagPhi | ( | const SSAFlag & | dest, |
const std::vector< SSAFlag > & | sources, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::MemoryPhi | ( | size_t | dest, |
const std::vector< size_t > & | sources, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::FloatAdd | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Adds floating point expression a
to expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
fadd.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::FloatSub | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Subtracts floating point expression b
from expression a
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
fsub.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::FloatMult | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Multiplies floating point expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
fmul.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::FloatDiv | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Divides floating point expression a
by expression b
potentially setting flags flags
and returning an expression of size
bytes.
size | The size of the result in bytes |
a | LHS expression |
b | RHS expression |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
fdiv.<size>{<flags>}(a, b)
ExprId LowLevelILFunction::FloatSqrt | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns the square root of floating point expression value
of size size
potentially setting flags.
size | The size of the result in bytes |
a | The expression to calculate the square root of |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
sqrt.<size>{<flags>}(value)
ExprId LowLevelILFunction::FloatNeg | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns sign negation of floating point expression value
of size size
potentially setting flags.
size | The size of the result in bytes |
a | The expression to negate |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
fneg.<size>{<flags>}(value)
ExprId LowLevelILFunction::FloatAbs | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns absolute value of floating point expression value
of size size
potentially setting flags.
size | The size of the result in bytes |
a | The expression to get the absolute value of |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
fabs.<size>{<flags>}(value)
ExprId LowLevelILFunction::FloatToInt | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns integer value of floating point expression value
of size size
potentially setting flags.
size | The size of the result in bytes |
a | The float expression to convert to an int |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
int.<size>{<flags>}(value)
ExprId LowLevelILFunction::IntToFloat | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point value of integer expression value
of size size
potentially setting flags.
size | The size of the result in bytes |
a | The float expression to convert to a float |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
float.<size>{<flags>}(value)
ExprId LowLevelILFunction::FloatConvert | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
ExprId LowLevelILFunction::RoundToInt | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Rounds a floating point value to the nearest integer.
size | The size of the result in bytes |
a | The expression to round to the nearest integer |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
roundint.<size>{<flags>}(value)
ExprId LowLevelILFunction::Floor | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Rounds a floating point value to an integer, towards negative infinity.
size | The size of the result in bytes |
a | The expression to round down |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
roundint.<size>{<flags>}(value)
ExprId LowLevelILFunction::Ceil | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Rounds a floating point value to an integer, towards positive infinity.
size | The size of the result in bytes |
a | The expression to round up |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
roundint.<size>{<flags>}(value)
ExprId LowLevelILFunction::FloatTrunc | ( | size_t | size, |
ExprId | a, | ||
uint32_t | flags = 0, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Rounds a floating point value to an integer towards zero.
size | The size of the result in bytes |
a | The expression to truncate |
flags | Flags to set |
loc | Optional IL Location this expression was added from. |
roundint.<size>{<flags>}(value)
ExprId LowLevelILFunction::FloatCompareEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is equal to expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
a f== b
ExprId LowLevelILFunction::FloatCompareNotEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is not equal to expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
a f!= b
ExprId LowLevelILFunction::FloatCompareLessThan | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is less than expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
a f< b
ExprId LowLevelILFunction::FloatCompareLessEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is less than or equal to expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
a f<= b
ExprId LowLevelILFunction::FloatCompareGreaterEqual | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is greater than or equal to expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
a f>= b
ExprId LowLevelILFunction::FloatCompareGreaterThan | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is greater than expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
a f> b
ExprId LowLevelILFunction::FloatCompareOrdered | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is ordered relative to expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
is_ordered(a, b)
ExprId LowLevelILFunction::FloatCompareUnordered | ( | size_t | size, |
ExprId | a, | ||
ExprId | b, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns floating point comparison expression of size size
checking if expression a
is unordered relative to expression b
.
size | The size of the operands in bytes |
a | LHS expression |
b | RHS expression |
loc | Optional IL Location this expression was added from. |
is_unordered(a, b)
ExprId LowLevelILFunction::Goto | ( | BNLowLevelILLabel & | label, |
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns a goto expression which jumps to the provided LowLevelILLabel.
label | Label to jump to |
loc | Optional IL Location this expression was added from. |
ExprId LowLevelILFunction::If | ( | ExprId | operand, |
BNLowLevelILLabel & | t, | ||
BNLowLevelILLabel & | f, | ||
const ILSourceLocation & | loc = ILSourceLocation() ) |
Returns the if
expression which depending on condition operand
jumps to the LowLevelILLabel t
when the condition expression operand
is non-zero and f``
when it's zero.
operand | Comparison expression to evaluate. |
t | Label for the true branch |
f | Label for the false branch |
loc | Optional IL Location this expression was added from. |
void LowLevelILFunction::MarkLabel | ( | BNLowLevelILLabel & | label | ) |
Assigns a LowLevelILLabel to the current IL address.
label | label to mark. |
vector< uint64_t > LowLevelILFunction::GetOperandList | ( | ExprId | i, |
size_t | listOperand ) |
ExprId LowLevelILFunction::AddLabelMap | ( | const std::map< uint64_t, BNLowLevelILLabel * > & | labels | ) |
ExprId LowLevelILFunction::AddIndexList | ( | const std::vector< size_t > | operands | ) |
ExprId LowLevelILFunction::AddRegisterOrFlagList | ( | const std::vector< RegisterOrFlag > & | regs | ) |
ExprId LowLevelILFunction::AddSSARegisterList | ( | const std::vector< SSARegister > & | regs | ) |
ExprId LowLevelILFunction::AddSSARegisterStackList | ( | const std::vector< SSARegisterStack > & | regStacks | ) |
ExprId LowLevelILFunction::AddSSARegisterOrFlagList | ( | const std::vector< SSARegisterOrFlag > & | regs | ) |
ExprId LowLevelILFunction::GetExprForRegisterOrConstant | ( | const BNRegisterOrConstant & | operand, |
size_t | size ) |
ExprId LowLevelILFunction::GetNegExprForRegisterOrConstant | ( | const BNRegisterOrConstant & | operand, |
size_t | size ) |
ExprId LowLevelILFunction::GetExprForFlagOrConstant | ( | const BNRegisterOrConstant & | operand | ) |
ExprId LowLevelILFunction::GetExprForRegisterOrConstantOperation | ( | BNLowLevelILOperation | op, |
size_t | size, | ||
BNRegisterOrConstant * | operands, | ||
size_t | operandCount ) |
BNLowLevelILInstruction LowLevelILFunction::GetRawExpr | ( | size_t | i | ) | const |
LowLevelILInstruction LowLevelILFunction::operator[] | ( | size_t | i | ) |
LowLevelILInstruction LowLevelILFunction::GetInstruction | ( | size_t | i | ) |
LowLevelILInstruction LowLevelILFunction::GetExpr | ( | size_t | i | ) |
size_t LowLevelILFunction::GetIndexForInstruction | ( | size_t | i | ) | const |
size_t LowLevelILFunction::GetInstructionForExpr | ( | size_t | expr | ) | const |
size_t LowLevelILFunction::GetInstructionCount | ( | ) | const |
size_t LowLevelILFunction::GetExprCount | ( | ) | const |
void LowLevelILFunction::UpdateInstructionOperand | ( | size_t | i, |
size_t | operandIndex, | ||
ExprId | value ) |
void LowLevelILFunction::ReplaceExpr | ( | size_t | expr, |
size_t | newExpr ) |
void LowLevelILFunction::SetExprAttributes | ( | size_t | expr, |
uint32_t | attributes ) |
void LowLevelILFunction::AddLabelForAddress | ( | Architecture * | arch, |
uint64_t | addr ) |
BNLowLevelILLabel * LowLevelILFunction::GetLabelForAddress | ( | Architecture * | arch, |
uint64_t | addr ) |
Get the LowLevelILLabel for a given address.
The returned pointer is to an internal object with the same lifetime as the containing LowLevelILFunction.
[in] | arch | Architecture for the address |
[in] | addr | Address to get the label for |
void LowLevelILFunction::Finalize | ( | ) |
Ends the function and computes the list of basic blocks.
void LowLevelILFunction::GenerateSSAForm | ( | ) |
Generate SSA form given the current LLIL.
bool LowLevelILFunction::GetExprText | ( | Architecture * | arch, |
ExprId | expr, | ||
std::vector< InstructionTextToken > & | tokens, | ||
DisassemblySettings * | settings = nullptr ) |
Get the list of InstructionTextTokens for a given expression.
[in] | arch | Architecture for the expression |
[in] | expr | Expression to get the text for |
[out] | tokens | Output reference to write the instruction tokens to |
[in] | settings | Optional structure with settings for rendering text |
bool LowLevelILFunction::GetInstructionText | ( | Function * | func, |
Architecture * | arch, | ||
size_t | i, | ||
std::vector< InstructionTextToken > & | tokens, | ||
DisassemblySettings * | settings = nullptr ) |
Get the list of InstructionTextTokens for a given instruction.
[in] | func | Function containing the instruction |
[in] | arch | Architecture for the instruction |
[in] | i | Index of the instruction |
[out] | tokens | Output reference to write the instruction tokens to |
[in] | settings | Optional structure with settings for rendering text |
uint32_t LowLevelILFunction::GetTemporaryRegisterCount | ( | ) |
uint32_t LowLevelILFunction::GetTemporaryFlagCount | ( | ) |
vector< Ref< BasicBlock > > LowLevelILFunction::GetBasicBlocks | ( | ) | const |
Ref< BasicBlock > LowLevelILFunction::GetBasicBlockForInstruction | ( | size_t | i | ) | const |
Ref< LowLevelILFunction > LowLevelILFunction::GetSSAForm | ( | ) | const |
Ref< LowLevelILFunction > LowLevelILFunction::GetNonSSAForm | ( | ) | const |
size_t LowLevelILFunction::GetSSAInstructionIndex | ( | size_t | instr | ) | const |
size_t LowLevelILFunction::GetNonSSAInstructionIndex | ( | size_t | instr | ) | const |
size_t LowLevelILFunction::GetSSAExprIndex | ( | size_t | instr | ) | const |
size_t LowLevelILFunction::GetNonSSAExprIndex | ( | size_t | instr | ) | const |
size_t LowLevelILFunction::GetSSARegisterDefinition | ( | const SSARegister & | reg | ) | const |
size_t LowLevelILFunction::GetSSAFlagDefinition | ( | const SSAFlag & | flag | ) | const |
size_t LowLevelILFunction::GetSSAMemoryDefinition | ( | size_t | version | ) | const |
set< size_t > LowLevelILFunction::GetSSARegisterUses | ( | const SSARegister & | reg | ) | const |
set< size_t > LowLevelILFunction::GetSSAFlagUses | ( | const SSAFlag & | flag | ) | const |
set< size_t > LowLevelILFunction::GetSSAMemoryUses | ( | size_t | version | ) | const |
RegisterValue LowLevelILFunction::GetSSARegisterValue | ( | const SSARegister & | reg | ) |
RegisterValue LowLevelILFunction::GetSSAFlagValue | ( | const SSAFlag & | flag | ) |
RegisterValue LowLevelILFunction::GetExprValue | ( | size_t | expr | ) |
RegisterValue LowLevelILFunction::GetExprValue | ( | const LowLevelILInstruction & | expr | ) |
PossibleValueSet BinaryNinja::LowLevelILFunction::GetPossibleExprValues | ( | size_t | expr, |
const std::set< BNDataFlowQueryOption > & | options = std::set< BNDataFlowQueryOption >() ) |
PossibleValueSet BinaryNinja::LowLevelILFunction::GetPossibleExprValues | ( | const LowLevelILInstruction & | expr, |
const std::set< BNDataFlowQueryOption > & | options = std::set< BNDataFlowQueryOption >() ) |
RegisterValue LowLevelILFunction::GetRegisterValueAtInstruction | ( | uint32_t | reg, |
size_t | instr ) |
RegisterValue LowLevelILFunction::GetRegisterValueAfterInstruction | ( | uint32_t | reg, |
size_t | instr ) |
PossibleValueSet LowLevelILFunction::GetPossibleRegisterValuesAtInstruction | ( | uint32_t | reg, |
size_t | instr, | ||
const std::set< BNDataFlowQueryOption > & | options = std::set<BNDataFlowQueryOption>() ) |
PossibleValueSet LowLevelILFunction::GetPossibleRegisterValuesAfterInstruction | ( | uint32_t | reg, |
size_t | instr, | ||
const std::set< BNDataFlowQueryOption > & | options = std::set<BNDataFlowQueryOption>() ) |
RegisterValue LowLevelILFunction::GetFlagValueAtInstruction | ( | uint32_t | flag, |
size_t | instr ) |
RegisterValue LowLevelILFunction::GetFlagValueAfterInstruction | ( | uint32_t | flag, |
size_t | instr ) |
PossibleValueSet LowLevelILFunction::GetPossibleFlagValuesAtInstruction | ( | uint32_t | flag, |
size_t | instr, | ||
const std::set< BNDataFlowQueryOption > & | options = std::set<BNDataFlowQueryOption>() ) |
PossibleValueSet LowLevelILFunction::GetPossibleFlagValuesAfterInstruction | ( | uint32_t | flag, |
size_t | instr, | ||
const std::set< BNDataFlowQueryOption > & | options = std::set<BNDataFlowQueryOption>() ) |
RegisterValue LowLevelILFunction::GetStackContentsAtInstruction | ( | int32_t | offset, |
size_t | len, | ||
size_t | instr ) |
RegisterValue LowLevelILFunction::GetStackContentsAfterInstruction | ( | int32_t | offset, |
size_t | len, | ||
size_t | instr ) |
PossibleValueSet LowLevelILFunction::GetPossibleStackContentsAtInstruction | ( | int32_t | offset, |
size_t | len, | ||
size_t | instr, | ||
const std::set< BNDataFlowQueryOption > & | options = std::set<BNDataFlowQueryOption>() ) |
PossibleValueSet LowLevelILFunction::GetPossibleStackContentsAfterInstruction | ( | int32_t | offset, |
size_t | len, | ||
size_t | instr, | ||
const std::set< BNDataFlowQueryOption > & | options = std::set<BNDataFlowQueryOption>() ) |
Ref< MediumLevelILFunction > LowLevelILFunction::GetMediumLevelIL | ( | ) | const |
Ref< MediumLevelILFunction > LowLevelILFunction::GetMappedMediumLevelIL | ( | ) | const |
size_t LowLevelILFunction::GetMediumLevelILInstructionIndex | ( | size_t | instr | ) | const |
size_t LowLevelILFunction::GetMediumLevelILExprIndex | ( | size_t | expr | ) | const |
set< size_t > LowLevelILFunction::GetMediumLevelILExprIndexes | ( | size_t | expr | ) | const |
size_t LowLevelILFunction::GetMappedMediumLevelILInstructionIndex | ( | size_t | instr | ) | const |
size_t LowLevelILFunction::GetMappedMediumLevelILExprIndex | ( | size_t | expr | ) | const |
|
inlinestatic |
Ref< FlowGraph > LowLevelILFunction::CreateFunctionGraph | ( | DisassemblySettings * | settings = nullptr | ) |
struct BinaryNinja::RegisterOrFlag |
Public Member Functions | |
RegisterOrFlag () | |
RegisterOrFlag (bool flag, uint32_t i) | |
RegisterOrFlag (const RegisterOrFlag &v) | |
bool | IsRegister () const |
bool | IsFlag () const |
uint32_t | GetRegister () const |
uint32_t | GetFlag () const |
RegisterOrFlag & | operator= (const RegisterOrFlag &v) |
bool | operator== (const RegisterOrFlag &v) const |
bool | operator!= (const RegisterOrFlag &v) const |
bool | operator< (const RegisterOrFlag &v) const |
uint64_t | ToIdentifier () const |
Static Public Member Functions | |
static RegisterOrFlag | FromIdentifier (uint64_t id) |
static RegisterOrFlag | Register (uint32_t reg) |
static RegisterOrFlag | Flag (uint32_t flag) |
Public Attributes | |
bool | isFlag |
uint32_t | index |
RegisterOrFlag::RegisterOrFlag | ( | ) |
RegisterOrFlag::RegisterOrFlag | ( | bool | flag, |
uint32_t | i ) |
RegisterOrFlag::RegisterOrFlag | ( | const RegisterOrFlag & | v | ) |
|
inline |
|
inline |
uint32_t RegisterOrFlag::GetRegister | ( | ) | const |
uint32_t RegisterOrFlag::GetFlag | ( | ) | const |
RegisterOrFlag & RegisterOrFlag::operator= | ( | const RegisterOrFlag & | v | ) |
bool RegisterOrFlag::operator== | ( | const RegisterOrFlag & | v | ) | const |
bool RegisterOrFlag::operator!= | ( | const RegisterOrFlag & | v | ) | const |
bool RegisterOrFlag::operator< | ( | const RegisterOrFlag & | v | ) | const |
uint64_t RegisterOrFlag::ToIdentifier | ( | ) | const |
|
static |
|
inlinestatic |
|
inlinestatic |
bool BinaryNinja::RegisterOrFlag::isFlag |
uint32_t BinaryNinja::RegisterOrFlag::index |
struct BinaryNinja::SSARegister |
Public Member Functions | |
SSARegister () | |
SSARegister (uint32_t r, size_t i) | |
SSARegister (const SSARegister &v) | |
SSARegister & | operator= (const SSARegister &v) |
bool | operator== (const SSARegister &v) const |
bool | operator!= (const SSARegister &v) const |
bool | operator< (const SSARegister &v) const |
Public Attributes | |
uint32_t | reg |
size_t | version |
SSARegister::SSARegister | ( | ) |
SSARegister::SSARegister | ( | uint32_t | r, |
size_t | i ) |
SSARegister::SSARegister | ( | const SSARegister & | v | ) |
SSARegister & SSARegister::operator= | ( | const SSARegister & | v | ) |
bool SSARegister::operator== | ( | const SSARegister & | v | ) | const |
bool SSARegister::operator!= | ( | const SSARegister & | v | ) | const |
bool SSARegister::operator< | ( | const SSARegister & | v | ) | const |
uint32_t BinaryNinja::SSARegister::reg |
size_t BinaryNinja::SSARegister::version |
struct BinaryNinja::SSARegisterStack |
Public Member Functions | |
SSARegisterStack () | |
SSARegisterStack (uint32_t r, size_t i) | |
SSARegisterStack (const SSARegisterStack &v) | |
SSARegisterStack & | operator= (const SSARegisterStack &v) |
bool | operator== (const SSARegisterStack &v) const |
bool | operator!= (const SSARegisterStack &v) const |
bool | operator< (const SSARegisterStack &v) const |
Public Attributes | |
uint32_t | regStack |
size_t | version |
SSARegisterStack::SSARegisterStack | ( | ) |
SSARegisterStack::SSARegisterStack | ( | uint32_t | r, |
size_t | i ) |
SSARegisterStack::SSARegisterStack | ( | const SSARegisterStack & | v | ) |
SSARegisterStack & SSARegisterStack::operator= | ( | const SSARegisterStack & | v | ) |
bool SSARegisterStack::operator== | ( | const SSARegisterStack & | v | ) | const |
bool SSARegisterStack::operator!= | ( | const SSARegisterStack & | v | ) | const |
bool SSARegisterStack::operator< | ( | const SSARegisterStack & | v | ) | const |
uint32_t BinaryNinja::SSARegisterStack::regStack |
size_t BinaryNinja::SSARegisterStack::version |
struct BinaryNinja::SSAFlag |
Public Member Functions | |
SSAFlag () | |
SSAFlag (uint32_t f, size_t i) | |
SSAFlag (const SSAFlag &v) | |
SSAFlag & | operator= (const SSAFlag &v) |
bool | operator== (const SSAFlag &v) const |
bool | operator!= (const SSAFlag &v) const |
bool | operator< (const SSAFlag &v) const |
Public Attributes | |
uint32_t | flag |
size_t | version |
SSAFlag::SSAFlag | ( | ) |
SSAFlag::SSAFlag | ( | uint32_t | f, |
size_t | i ) |
SSAFlag::SSAFlag | ( | const SSAFlag & | v | ) |
bool SSAFlag::operator== | ( | const SSAFlag & | v | ) | const |
bool SSAFlag::operator!= | ( | const SSAFlag & | v | ) | const |
bool SSAFlag::operator< | ( | const SSAFlag & | v | ) | const |
uint32_t BinaryNinja::SSAFlag::flag |
size_t BinaryNinja::SSAFlag::version |
struct BinaryNinja::SSARegisterOrFlag |
Public Member Functions | |
SSARegisterOrFlag () | |
SSARegisterOrFlag (const RegisterOrFlag &rf, size_t i) | |
SSARegisterOrFlag (const SSARegister &v) | |
SSARegisterOrFlag (const SSAFlag &v) | |
SSARegisterOrFlag (const SSARegisterOrFlag &v) | |
SSARegisterOrFlag & | operator= (const SSARegisterOrFlag &v) |
bool | operator== (const SSARegisterOrFlag &v) const |
bool | operator!= (const SSARegisterOrFlag &v) const |
bool | operator< (const SSARegisterOrFlag &v) const |
Public Attributes | |
RegisterOrFlag | regOrFlag |
size_t | version |
SSARegisterOrFlag::SSARegisterOrFlag | ( | ) |
SSARegisterOrFlag::SSARegisterOrFlag | ( | const RegisterOrFlag & | rf, |
size_t | i ) |
SSARegisterOrFlag::SSARegisterOrFlag | ( | const SSARegister & | v | ) |
SSARegisterOrFlag::SSARegisterOrFlag | ( | const SSAFlag & | v | ) |
SSARegisterOrFlag::SSARegisterOrFlag | ( | const SSARegisterOrFlag & | v | ) |
SSARegisterOrFlag & SSARegisterOrFlag::operator= | ( | const SSARegisterOrFlag & | v | ) |
bool SSARegisterOrFlag::operator== | ( | const SSARegisterOrFlag & | v | ) | const |
bool SSARegisterOrFlag::operator!= | ( | const SSARegisterOrFlag & | v | ) | const |
bool SSARegisterOrFlag::operator< | ( | const SSARegisterOrFlag & | v | ) | const |
RegisterOrFlag BinaryNinja::SSARegisterOrFlag::regOrFlag |
size_t BinaryNinja::SSARegisterOrFlag::version |
class BinaryNinja::LowLevelILInstructionAccessException |
Public Member Functions | |
LowLevelILInstructionAccessException () | |
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 |
|
inline |
class BinaryNinja::LowLevelILIntegerList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILIntegerList (LowLevelILFunction *func, const BNLowLevelILInstruction &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 | |
ListIterator BinaryNinja::LowLevelILIntegerList::const_iterator |
LowLevelILIntegerList::LowLevelILIntegerList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILIntegerList::const_iterator LowLevelILIntegerList::begin | ( | ) | const |
LowLevelILIntegerList::const_iterator LowLevelILIntegerList::end | ( | ) | const |
size_t LowLevelILIntegerList::size | ( | ) | const |
uint64_t LowLevelILIntegerList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILIntegerList::operator std::vector< uint64_t > | ( | ) | const |
class BinaryNinja::LowLevelILIndexList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILIndexList (LowLevelILFunction *func, const BNLowLevelILInstruction &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 | |
ListIterator BinaryNinja::LowLevelILIndexList::const_iterator |
LowLevelILIndexList::LowLevelILIndexList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILIndexList::const_iterator LowLevelILIndexList::begin | ( | ) | const |
LowLevelILIndexList::const_iterator LowLevelILIndexList::end | ( | ) | const |
size_t LowLevelILIndexList::size | ( | ) | const |
size_t LowLevelILIndexList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILIndexList::operator std::vector< size_t > | ( | ) | const |
class BinaryNinja::LowLevelILIndexMap |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILIndexMap (LowLevelILFunction *func, const BNLowLevelILInstruction &instr, size_t count) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
size_t | operator[] (uint64_t value) const |
operator std::map< uint64_t, size_t > () const | |
ListIterator BinaryNinja::LowLevelILIndexMap::const_iterator |
LowLevelILIndexMap::LowLevelILIndexMap | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILIndexMap::const_iterator LowLevelILIndexMap::begin | ( | ) | const |
LowLevelILIndexMap::const_iterator LowLevelILIndexMap::end | ( | ) | const |
size_t LowLevelILIndexMap::size | ( | ) | const |
size_t LowLevelILIndexMap::operator[] | ( | uint64_t | value | ) | const |
BinaryNinja::LowLevelILIndexMap::operator std::map< uint64_t, size_t > | ( | ) | const |
class BinaryNinja::LowLevelILInstructionList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILInstructionList (LowLevelILFunction *func, const BNLowLevelILInstruction &instr, size_t count, size_t instrIndex) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
const LowLevelILInstruction | operator[] (size_t i) const |
operator std::vector< LowLevelILInstruction > () const | |
LowLevelILInstructionList::LowLevelILInstructionList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count, | ||
size_t | instrIndex ) |
LowLevelILInstructionList::const_iterator LowLevelILInstructionList::begin | ( | ) | const |
LowLevelILInstructionList::const_iterator LowLevelILInstructionList::end | ( | ) | const |
size_t LowLevelILInstructionList::size | ( | ) | const |
const LowLevelILInstruction LowLevelILInstructionList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILInstructionList::operator std::vector< LowLevelILInstruction > | ( | ) | const |
class BinaryNinja::LowLevelILRegisterOrFlagList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILRegisterOrFlagList (LowLevelILFunction *func, const BNLowLevelILInstruction &instr, size_t count) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
const RegisterOrFlag | operator[] (size_t i) const |
operator std::vector< RegisterOrFlag > () const | |
LowLevelILRegisterOrFlagList::LowLevelILRegisterOrFlagList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILRegisterOrFlagList::const_iterator LowLevelILRegisterOrFlagList::begin | ( | ) | const |
LowLevelILRegisterOrFlagList::const_iterator LowLevelILRegisterOrFlagList::end | ( | ) | const |
size_t LowLevelILRegisterOrFlagList::size | ( | ) | const |
const RegisterOrFlag LowLevelILRegisterOrFlagList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILRegisterOrFlagList::operator std::vector< RegisterOrFlag > | ( | ) | const |
class BinaryNinja::LowLevelILSSARegisterList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILSSARegisterList (LowLevelILFunction *func, const BNLowLevelILInstruction &instr, size_t count) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
const SSARegister | operator[] (size_t i) const |
operator std::vector< SSARegister > () const | |
LowLevelILSSARegisterList::LowLevelILSSARegisterList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILSSARegisterList::const_iterator LowLevelILSSARegisterList::begin | ( | ) | const |
LowLevelILSSARegisterList::const_iterator LowLevelILSSARegisterList::end | ( | ) | const |
size_t LowLevelILSSARegisterList::size | ( | ) | const |
const SSARegister LowLevelILSSARegisterList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILSSARegisterList::operator std::vector< SSARegister > | ( | ) | const |
class BinaryNinja::LowLevelILSSARegisterStackList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILSSARegisterStackList (LowLevelILFunction *func, const BNLowLevelILInstruction &instr, size_t count) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
const SSARegisterStack | operator[] (size_t i) const |
operator std::vector< SSARegisterStack > () const | |
LowLevelILSSARegisterStackList::LowLevelILSSARegisterStackList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILSSARegisterStackList::const_iterator LowLevelILSSARegisterStackList::begin | ( | ) | const |
LowLevelILSSARegisterStackList::const_iterator LowLevelILSSARegisterStackList::end | ( | ) | const |
size_t LowLevelILSSARegisterStackList::size | ( | ) | const |
const SSARegisterStack LowLevelILSSARegisterStackList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILSSARegisterStackList::operator std::vector< SSARegisterStack > | ( | ) | const |
class BinaryNinja::LowLevelILSSAFlagList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILSSAFlagList (LowLevelILFunction *func, const BNLowLevelILInstruction &instr, size_t count) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
const SSAFlag | operator[] (size_t i) const |
operator std::vector< SSAFlag > () const | |
ListIterator BinaryNinja::LowLevelILSSAFlagList::const_iterator |
LowLevelILSSAFlagList::LowLevelILSSAFlagList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILSSAFlagList::const_iterator LowLevelILSSAFlagList::begin | ( | ) | const |
LowLevelILSSAFlagList::const_iterator LowLevelILSSAFlagList::end | ( | ) | const |
size_t LowLevelILSSAFlagList::size | ( | ) | const |
const SSAFlag LowLevelILSSAFlagList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILSSAFlagList::operator std::vector< SSAFlag > | ( | ) | const |
class BinaryNinja::LowLevelILSSARegisterOrFlagList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILSSARegisterOrFlagList (LowLevelILFunction *func, const BNLowLevelILInstruction &instr, size_t count) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
const SSARegisterOrFlag | operator[] (size_t i) const |
operator std::vector< SSARegisterOrFlag > () const | |
LowLevelILSSARegisterOrFlagList::LowLevelILSSARegisterOrFlagList | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | count ) |
LowLevelILSSARegisterOrFlagList::const_iterator LowLevelILSSARegisterOrFlagList::begin | ( | ) | const |
LowLevelILSSARegisterOrFlagList::const_iterator LowLevelILSSARegisterOrFlagList::end | ( | ) | const |
size_t LowLevelILSSARegisterOrFlagList::size | ( | ) | const |
const SSARegisterOrFlag LowLevelILSSARegisterOrFlagList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILSSARegisterOrFlagList::operator std::vector< SSARegisterOrFlag > | ( | ) | const |
struct BinaryNinja::LowLevelILInstructionBase |
LowLevelILOperandList LowLevelILInstructionBase::GetOperands | ( | ) | const |
uint64_t LowLevelILInstructionBase::GetRawOperandAsInteger | ( | size_t | operand | ) | const |
uint32_t LowLevelILInstructionBase::GetRawOperandAsRegister | ( | size_t | operand | ) | const |
size_t LowLevelILInstructionBase::GetRawOperandAsIndex | ( | size_t | operand | ) | const |
BNLowLevelILFlagCondition LowLevelILInstructionBase::GetRawOperandAsFlagCondition | ( | size_t | operand | ) | const |
LowLevelILInstruction LowLevelILInstructionBase::GetRawOperandAsExpr | ( | size_t | operand | ) | const |
SSARegister LowLevelILInstructionBase::GetRawOperandAsSSARegister | ( | size_t | operand | ) | const |
SSARegisterStack LowLevelILInstructionBase::GetRawOperandAsSSARegisterStack | ( | size_t | operand | ) | const |
SSARegisterStack LowLevelILInstructionBase::GetRawOperandAsPartialSSARegisterStackSource | ( | size_t | operand | ) | const |
SSAFlag LowLevelILInstructionBase::GetRawOperandAsSSAFlag | ( | size_t | operand | ) | const |
LowLevelILIndexList LowLevelILInstructionBase::GetRawOperandAsIndexList | ( | size_t | operand | ) | const |
LowLevelILIndexMap LowLevelILInstructionBase::GetRawOperandAsIndexMap | ( | size_t | operand | ) | const |
LowLevelILInstructionList LowLevelILInstructionBase::GetRawOperandAsExprList | ( | size_t | operand | ) | const |
LowLevelILRegisterOrFlagList LowLevelILInstructionBase::GetRawOperandAsRegisterOrFlagList | ( | size_t | operand | ) | const |
LowLevelILSSARegisterList LowLevelILInstructionBase::GetRawOperandAsSSARegisterList | ( | size_t | operand | ) | const |
LowLevelILSSARegisterStackList LowLevelILInstructionBase::GetRawOperandAsSSARegisterStackList | ( | size_t | operand | ) | const |
LowLevelILSSAFlagList LowLevelILInstructionBase::GetRawOperandAsSSAFlagList | ( | size_t | operand | ) | const |
LowLevelILSSARegisterOrFlagList LowLevelILInstructionBase::GetRawOperandAsSSARegisterOrFlagList | ( | size_t | operand | ) | const |
map< uint32_t, int32_t > LowLevelILInstructionBase::GetRawOperandAsRegisterStackAdjustments | ( | size_t | operand | ) | const |
void LowLevelILInstructionBase::UpdateRawOperand | ( | size_t | operandIndex, |
ExprId | value ) |
void LowLevelILInstructionBase::UpdateRawOperandAsSSARegisterList | ( | size_t | operandIndex, |
const std::vector< SSARegister > & | regs ) |
void LowLevelILInstructionBase::UpdateRawOperandAsSSARegisterOrFlagList | ( | size_t | operandIndex, |
const std::vector< SSARegisterOrFlag > & | outputs ) |
RegisterValue LowLevelILInstructionBase::GetValue | ( | ) | const |
PossibleValueSet LowLevelILInstructionBase::GetPossibleValues | ( | const std::set< BNDataFlowQueryOption > & | options = std::set <BNDataFlowQueryOption>() | ) | const |
RegisterValue LowLevelILInstructionBase::GetRegisterValue | ( | uint32_t | reg | ) |
RegisterValue LowLevelILInstructionBase::GetRegisterValueAfter | ( | uint32_t | reg | ) |
PossibleValueSet LowLevelILInstructionBase::GetPossibleRegisterValues | ( | uint32_t | reg | ) |
PossibleValueSet LowLevelILInstructionBase::GetPossibleRegisterValuesAfter | ( | uint32_t | reg | ) |
RegisterValue LowLevelILInstructionBase::GetFlagValue | ( | uint32_t | flag | ) |
RegisterValue LowLevelILInstructionBase::GetFlagValueAfter | ( | uint32_t | flag | ) |
PossibleValueSet LowLevelILInstructionBase::GetPossibleFlagValues | ( | uint32_t | flag | ) |
PossibleValueSet LowLevelILInstructionBase::GetPossibleFlagValuesAfter | ( | uint32_t | flag | ) |
RegisterValue LowLevelILInstructionBase::GetStackContents | ( | int32_t | offset, |
size_t | len ) |
RegisterValue LowLevelILInstructionBase::GetStackContentsAfter | ( | int32_t | offset, |
size_t | len ) |
PossibleValueSet LowLevelILInstructionBase::GetPossibleStackContents | ( | int32_t | offset, |
size_t | len ) |
PossibleValueSet LowLevelILInstructionBase::GetPossibleStackContentsAfter | ( | int32_t | offset, |
size_t | len ) |
size_t LowLevelILInstructionBase::GetSSAInstructionIndex | ( | ) | const |
size_t LowLevelILInstructionBase::GetNonSSAInstructionIndex | ( | ) | const |
size_t LowLevelILInstructionBase::GetSSAExprIndex | ( | ) | const |
size_t LowLevelILInstructionBase::GetNonSSAExprIndex | ( | ) | const |
LowLevelILInstruction LowLevelILInstructionBase::GetSSAForm | ( | ) | const |
LowLevelILInstruction LowLevelILInstructionBase::GetNonSSAForm | ( | ) | const |
size_t LowLevelILInstructionBase::GetMediumLevelILInstructionIndex | ( | ) | const |
size_t LowLevelILInstructionBase::GetMediumLevelILExprIndex | ( | ) | const |
size_t LowLevelILInstructionBase::GetMappedMediumLevelILInstructionIndex | ( | ) | const |
size_t LowLevelILInstructionBase::GetMappedMediumLevelILExprIndex | ( | ) | const |
bool LowLevelILInstructionBase::HasMediumLevelIL | ( | ) | const |
bool LowLevelILInstructionBase::HasMappedMediumLevelIL | ( | ) | const |
MediumLevelILInstruction LowLevelILInstructionBase::GetMediumLevelIL | ( | ) | const |
MediumLevelILInstruction LowLevelILInstructionBase::GetMappedMediumLevelIL | ( | ) | const |
char * LowLevelILInstructionBase::Dump | ( | ) | const |
void LowLevelILInstructionBase::Replace | ( | ExprId | expr | ) |
void LowLevelILInstructionBase::SetAttributes | ( | uint32_t | attributes | ) |
void LowLevelILInstructionBase::SetAttribute | ( | BNILInstructionAttribute | attribute, |
bool | state = true ) |
void LowLevelILInstructionBase::ClearAttribute | ( | BNILInstructionAttribute | attribute | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Ref<LowLevelILFunction> BinaryNinja::LowLevelILInstructionBase::function |
size_t BinaryNinja::LowLevelILInstructionBase::exprIndex |
size_t BinaryNinja::LowLevelILInstructionBase::instructionIndex |
|
static |
|
static |
|
static |
struct BinaryNinja::LowLevelILInstruction |
Additional Inherited Members | |
Public Attributes inherited from BinaryNinja::LowLevelILInstructionBase | |
Ref< LowLevelILFunction > | function |
size_t | exprIndex |
size_t | instructionIndex |
Public Attributes inherited from BNLowLevelILInstruction | |
BNLowLevelILOperation | operation |
uint32_t | attributes |
size_t | size |
uint32_t | flags |
uint32_t | sourceOperand |
uint64_t | operands [4] |
uint64_t | address |
Static Public Attributes inherited from BinaryNinja::LowLevelILInstructionBase | |
static std::unordered_map< LowLevelILOperandUsage, LowLevelILOperandType > | operandTypeForUsage |
static std::unordered_map< BNLowLevelILOperation, std::vector< LowLevelILOperandUsage > > | operationOperandUsage |
static std::unordered_map< BNLowLevelILOperation, std::unordered_map< LowLevelILOperandUsage, size_t > > | operationOperandIndex = GetOperandIndexForOperandUsages() |
LowLevelILInstruction::LowLevelILInstruction | ( | ) |
LowLevelILInstruction::LowLevelILInstruction | ( | LowLevelILFunction * | func, |
const BNLowLevelILInstruction & | instr, | ||
size_t | expr, | ||
size_t | instrIdx ) |
LowLevelILInstruction::LowLevelILInstruction | ( | const LowLevelILInstructionBase & | instr | ) |
void LowLevelILInstruction::VisitExprs | ( | const std::function< bool(const LowLevelILInstruction &expr)> & | func | ) | const |
ExprId LowLevelILInstruction::CopyTo | ( | LowLevelILFunction * | dest | ) | const |
ExprId LowLevelILInstruction::CopyTo | ( | LowLevelILFunction * | dest, |
const std::function< ExprId(const LowLevelILInstruction &subExpr)> & | subExprHandler ) const |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
bool LowLevelILInstruction::GetOperandIndexForUsage | ( | LowLevelILOperandUsage | usage, |
size_t & | operandIndex ) const |
LowLevelILInstruction LowLevelILInstruction::GetSourceExpr | ( | ) | const |
uint32_t LowLevelILInstruction::GetSourceRegister | ( | ) | const |
uint32_t LowLevelILInstruction::GetSourceRegisterStack | ( | ) | const |
uint32_t LowLevelILInstruction::GetSourceFlag | ( | ) | const |
SSARegister LowLevelILInstruction::GetSourceSSARegister | ( | ) | const |
SSARegisterStack LowLevelILInstruction::GetSourceSSARegisterStack | ( | ) | const |
SSAFlag LowLevelILInstruction::GetSourceSSAFlag | ( | ) | const |
LowLevelILInstruction LowLevelILInstruction::GetDestExpr | ( | ) | const |
uint32_t LowLevelILInstruction::GetDestRegister | ( | ) | const |
uint32_t LowLevelILInstruction::GetDestRegisterStack | ( | ) | const |
uint32_t LowLevelILInstruction::GetDestFlag | ( | ) | const |
SSARegister LowLevelILInstruction::GetDestSSARegister | ( | ) | const |
SSARegisterStack LowLevelILInstruction::GetDestSSARegisterStack | ( | ) | const |
SSAFlag LowLevelILInstruction::GetDestSSAFlag | ( | ) | const |
uint32_t LowLevelILInstruction::GetSemanticFlagClass | ( | ) | const |
uint32_t LowLevelILInstruction::GetSemanticFlagGroup | ( | ) | const |
uint32_t LowLevelILInstruction::GetPartialRegister | ( | ) | const |
SSARegister LowLevelILInstruction::GetStackSSARegister | ( | ) | const |
SSARegister LowLevelILInstruction::GetTopSSARegister | ( | ) | const |
LowLevelILInstruction LowLevelILInstruction::GetLeftExpr | ( | ) | const |
LowLevelILInstruction LowLevelILInstruction::GetRightExpr | ( | ) | const |
LowLevelILInstruction LowLevelILInstruction::GetCarryExpr | ( | ) | const |
LowLevelILInstruction LowLevelILInstruction::GetConditionExpr | ( | ) | const |
uint32_t LowLevelILInstruction::GetHighRegister | ( | ) | const |
SSARegister LowLevelILInstruction::GetHighSSARegister | ( | ) | const |
uint32_t LowLevelILInstruction::GetLowRegister | ( | ) | const |
SSARegister LowLevelILInstruction::GetLowSSARegister | ( | ) | const |
uint32_t LowLevelILInstruction::GetIntrinsic | ( | ) | const |
int64_t LowLevelILInstruction::GetConstant | ( | ) | const |
uint64_t LowLevelILInstruction::GetOffset | ( | ) | const |
int64_t LowLevelILInstruction::GetVector | ( | ) | const |
int64_t LowLevelILInstruction::GetStackAdjustment | ( | ) | const |
size_t LowLevelILInstruction::GetTarget | ( | ) | const |
size_t LowLevelILInstruction::GetTrueTarget | ( | ) | const |
size_t LowLevelILInstruction::GetFalseTarget | ( | ) | const |
size_t LowLevelILInstruction::GetBitIndex | ( | ) | const |
size_t LowLevelILInstruction::GetSourceMemoryVersion | ( | ) | const |
size_t LowLevelILInstruction::GetDestMemoryVersion | ( | ) | const |
BNLowLevelILFlagCondition LowLevelILInstruction::GetFlagCondition | ( | ) | const |
LowLevelILSSARegisterList LowLevelILInstruction::GetOutputSSARegisters | ( | ) | const |
LowLevelILInstructionList LowLevelILInstruction::GetParameterExprs | ( | ) | const |
LowLevelILSSARegisterList LowLevelILInstruction::GetSourceSSARegisters | ( | ) | const |
LowLevelILSSARegisterStackList LowLevelILInstruction::GetSourceSSARegisterStacks | ( | ) | const |
LowLevelILSSAFlagList LowLevelILInstruction::GetSourceSSAFlags | ( | ) | const |
LowLevelILRegisterOrFlagList LowLevelILInstruction::GetOutputRegisterOrFlagList | ( | ) | const |
LowLevelILSSARegisterOrFlagList LowLevelILInstruction::GetOutputSSARegisterOrFlagList | ( | ) | const |
LowLevelILIndexList LowLevelILInstruction::GetSourceMemoryVersions | ( | ) | const |
LowLevelILIndexMap LowLevelILInstruction::GetTargets | ( | ) | const |
map< uint32_t, int32_t > LowLevelILInstruction::GetRegisterStackAdjustments | ( | ) | const |
class BinaryNinja::LowLevelILOperand |
LowLevelILOperand::LowLevelILOperand | ( | const LowLevelILInstruction & | instr, |
LowLevelILOperandUsage | usage, | ||
size_t | operandIndex ) |
|
inline |
|
inline |
uint64_t LowLevelILOperand::GetInteger | ( | ) | const |
size_t LowLevelILOperand::GetIndex | ( | ) | const |
LowLevelILInstruction LowLevelILOperand::GetExpr | ( | ) | const |
uint32_t LowLevelILOperand::GetRegister | ( | ) | const |
uint32_t LowLevelILOperand::GetRegisterStack | ( | ) | const |
uint32_t LowLevelILOperand::GetFlag | ( | ) | const |
uint32_t LowLevelILOperand::GetSemanticFlagClass | ( | ) | const |
uint32_t LowLevelILOperand::GetSemanticFlagGroup | ( | ) | const |
uint32_t LowLevelILOperand::GetIntrinsic | ( | ) | const |
BNLowLevelILFlagCondition LowLevelILOperand::GetFlagCondition | ( | ) | const |
SSARegister LowLevelILOperand::GetSSARegister | ( | ) | const |
SSARegisterStack LowLevelILOperand::GetSSARegisterStack | ( | ) | const |
SSAFlag LowLevelILOperand::GetSSAFlag | ( | ) | const |
LowLevelILIndexList LowLevelILOperand::GetIndexList | ( | ) | const |
LowLevelILIndexMap LowLevelILOperand::GetIndexMap | ( | ) | const |
LowLevelILInstructionList LowLevelILOperand::GetExprList | ( | ) | const |
LowLevelILSSARegisterList LowLevelILOperand::GetSSARegisterList | ( | ) | const |
LowLevelILSSARegisterStackList LowLevelILOperand::GetSSARegisterStackList | ( | ) | const |
LowLevelILSSAFlagList LowLevelILOperand::GetSSAFlagList | ( | ) | const |
LowLevelILRegisterOrFlagList LowLevelILOperand::GetRegisterOrFlagList | ( | ) | const |
LowLevelILSSARegisterOrFlagList LowLevelILOperand::GetSSARegisterOrFlagList | ( | ) | const |
map< uint32_t, int32_t > LowLevelILOperand::GetRegisterStackAdjustments | ( | ) | const |
class BinaryNinja::LowLevelILOperandList |
Public Types | |
typedef ListIterator | const_iterator |
Public Member Functions | |
LowLevelILOperandList (const LowLevelILInstruction &instr, const std::vector< LowLevelILOperandUsage > &usageList, const std::unordered_map< LowLevelILOperandUsage, size_t > &operandIndexMap) | |
const_iterator | begin () const |
const_iterator | end () const |
size_t | size () const |
const LowLevelILOperand | operator[] (size_t i) const |
operator std::vector< LowLevelILOperand > () const | |
ListIterator BinaryNinja::LowLevelILOperandList::const_iterator |
LowLevelILOperandList::LowLevelILOperandList | ( | const LowLevelILInstruction & | instr, |
const std::vector< LowLevelILOperandUsage > & | usageList, | ||
const std::unordered_map< LowLevelILOperandUsage, size_t > & | operandIndexMap ) |
LowLevelILOperandList::const_iterator LowLevelILOperandList::begin | ( | ) | const |
LowLevelILOperandList::const_iterator LowLevelILOperandList::end | ( | ) | const |
size_t LowLevelILOperandList::size | ( | ) | const |
const LowLevelILOperand LowLevelILOperandList::operator[] | ( | size_t | i | ) | const |
BinaryNinja::LowLevelILOperandList::operator std::vector< LowLevelILOperand > | ( | ) | const |