| 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) |
| std::set< size_t > | GetInstructionsAt (Architecture *arch, uint64_t addr) |
| std::vector< size_t > | GetExitsForInstruction (size_t i) |
| 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 () |
| size_t | CachePossibleValueSet (const PossibleValueSet &pvs) |
| PossibleValueSet | GetCachedPossibleValueSet (size_t idx) |
| 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 | ForceVer (size_t size, uint32_t reg, const ILSourceLocation &loc=ILSourceLocation()) |
| ExprId | ForceVerSSA (size_t size, SSARegister dst, SSARegister src, const ILSourceLocation &loc=ILSourceLocation()) |
| ExprId | Assert (size_t size, uint32_t reg, const PossibleValueSet &pvs, const ILSourceLocation &loc=ILSourceLocation()) |
| ExprId | AssertSSA (size_t size, SSARegister reg, const PossibleValueSet &pvs, 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. | |
| void | MarkLabel (BNLowLevelILLabel &label) |
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. | |
| 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) |
| Ref< FlowGraph > | CreateFunctionGraphImmediate (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) |
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 ) |
| std::set< size_t > LowLevelILFunction::GetInstructionsAt | ( | Architecture * | arch, |
| uint64_t | addr ) |
| std::vector< size_t > LowLevelILFunction::GetExitsForInstruction | ( | size_t | i | ) |
| 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 | ( | ) |
| size_t LowLevelILFunction::CachePossibleValueSet | ( | const PossibleValueSet & | pvs | ) |
| PossibleValueSet LowLevelILFunction::GetCachedPossibleValueSet | ( | size_t | idx | ) |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| ExprId LowLevelILFunction::SetFlagSSA | ( | const SSAFlag & | flag, |
| ExprId | val, | ||
| const ILSourceLocation & | loc = ILSourceLocation() ) |
| ExprId LowLevelILFunction::ForceVer | ( | size_t | size, |
| uint32_t | reg, | ||
| const ILSourceLocation & | loc = ILSourceLocation() ) |
| ExprId LowLevelILFunction::ForceVerSSA | ( | size_t | size, |
| SSARegister | dst, | ||
| SSARegister | src, | ||
| const ILSourceLocation & | loc = ILSourceLocation() ) |
| ExprId LowLevelILFunction::Assert | ( | size_t | size, |
| uint32_t | reg, | ||
| const PossibleValueSet & | pvs, | ||
| const ILSourceLocation & | loc = ILSourceLocation() ) |
| ExprId LowLevelILFunction::AssertSSA | ( | size_t | size, |
| SSARegister | reg, | ||
| const PossibleValueSet & | pvs, | ||
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| ExprId LowLevelILFunction::NoReturn | ( | const ILSourceLocation & | loc = ILSourceLocation() | ) |
Returns an expression that halts disassembly.
| loc | Optional IL Location this expression was added from. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| void LowLevelILFunction::MarkLabel | ( | BNLowLevelILLabel & | label | ) |
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. |
/*! 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 | ) |
| Ref< FlowGraph > LowLevelILFunction::CreateFunctionGraphImmediate | ( | 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 | |
| typedef 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 | |
| typedef 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 | |
| typedef 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 | |
| typedef ListIterator BinaryNinja::LowLevelILInstructionList::const_iterator |
| 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 | |
| typedef ListIterator BinaryNinja::LowLevelILRegisterOrFlagList::const_iterator |
| 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 | |
| typedef ListIterator BinaryNinja::LowLevelILSSARegisterList::const_iterator |
| 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 | |
| typedef ListIterator BinaryNinja::LowLevelILSSARegisterStackList::const_iterator |
| 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 | |
| typedef 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 | |
| typedef ListIterator BinaryNinja::LowLevelILSSARegisterOrFlagList::const_iterator |
| 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 |
| PossibleValueSet LowLevelILInstructionBase::GetRawOperandAsPossibleValueSet | ( | 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 |
|
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 | |
| typedef 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 |