variable module¶
|
|
|
|
|
|
|
Note This object is a "passive" object. Any changes you make to it will not be reflected in the core and vice-versa. If you wish to update a core version of this object you should use the appropriate API. |
class PossibleValueSet PossibleValueSet is used to define possible values that a variable can take. |
|
|
|
|
|
|
|
|
|
|
- class ConstantData(value: int, offset: int, type: binaryninja.enums.RegisterValueType = <RegisterValueType.UndeterminedValue: 0>, confidence: int = 255, size: int = 0, function: '_function.Function' = None)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
function (_function.Function) –
- property data: DataBuffer¶
- property data_and_builtin: Tuple[DataBuffer, BuiltinType]¶
- function: _function.Function = None¶
- class ConstantDataRegisterValue(value: int, offset: int, type: binaryninja.enums.RegisterValueType = <RegisterValueType.UndeterminedValue: 0>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- class ConstantPointerRegisterValue(value: int, offset: int = 0, type: binaryninja.enums.RegisterValueType = <RegisterValueType.ConstantPointerValue: 3>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- type: RegisterValueType = 3¶
- class ConstantReference(value: int, size: int, pointer: bool, intermediate: bool)[source]¶
Bases:
object
- class ConstantRegisterValue(value: int, offset: int = 0, type: binaryninja.enums.RegisterValueType = <RegisterValueType.ConstantValue: 2>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- type: RegisterValueType = 2¶
- class CoreVariable(_source_type: int, index: int, storage: int)[source]¶
Bases:
object
class CoreVariable
is the base class for other variable types, such asVariableNameAndType
andVariable
- Variables:
index – Internal identifier
storage – If this variable is a stack variable (source_type == VariableSourceType.StackVariableSourceType), then the storage location is the offset onto the stack that contains the first byte of this variable. Otherwise it’s used as an internal identifier.
- Parameters:
- property source_type: VariableSourceType¶
Whether this variable was created based off of an underlying register, stack location, or flag.
- class EntryRegisterValue(value: int = 0, offset: int = 0, type: binaryninja.enums.RegisterValueType = <RegisterValueType.EntryValue: 1>, confidence: int = 255, size: int = 0, reg: Optional[ForwardRef('binaryninja.architecture.RegisterName')] = None)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
reg (RegisterName | None) –
- type: RegisterValueType = 1¶
- class ExternalPointerRegisterValue(value: int, offset: int, type: binaryninja.enums.RegisterValueType = <RegisterValueType.ExternalPointerValue: 4>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- type: RegisterValueType = 4¶
- class ImportedAddressRegisterValue(value: int, offset: int = 0, type: binaryninja.enums.RegisterValueType = <RegisterValueType.ImportedAddressValue: 7>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- type: RegisterValueType = 7¶
- class IndirectBranchInfo(source_arch: 'binaryninja.architecture.Architecture', source_addr: int, dest_arch: 'binaryninja.architecture.Architecture', dest_addr: int, auto_defined: bool)[source]¶
Bases:
object
- Parameters:
source_arch (Architecture) –
source_addr (int) –
dest_arch (Architecture) –
dest_addr (int) –
auto_defined (bool) –
- dest_arch: Architecture¶
- source_arch: Architecture¶
- class LookupTableEntry(from_values: List[int], to_value: int, type: binaryninja.enums.RegisterValueType = <RegisterValueType.LookupTableValue: 10>)[source]¶
Bases:
object
- Parameters:
to_value (int) –
type (RegisterValueType) –
- type: RegisterValueType = 10¶
- class ParameterVariables(var_list: List[Variable], confidence: int = 255, func: Function | None = None)[source]¶
Bases:
object
Note
This object is a “passive” object. Any changes you make to it will not be reflected in the core and vice-versa. If you wish to update a core version of this object you should use the appropriate API.
- with_confidence(confidence: int) ParameterVariables [source]¶
- Parameters:
confidence (int) –
- Return type:
- class PossibleValueSet(arch=None, value=None)[source]¶
Bases:
object
class PossibleValueSet PossibleValueSet is used to define possible values that a variable can take. It contains methods to instantiate different value sets such as Constant, Signed/Unsigned Ranges, etc.
Note
This object is a “passive” object. Any changes you make to it will not be reflected in the core and vice-versa. If you wish to update a core version of this object you should use the appropriate API.
- static constant(value: int) PossibleValueSet [source]¶
Create a constant valued PossibleValueSet object.
- Parameters:
value (int) – Integer value of the constant
- Return type:
- static constant_ptr(value: int) PossibleValueSet [source]¶
Create constant pointer valued PossibleValueSet object.
- Parameters:
value (int) – Integer value of the constant pointer
- Return type:
- static in_set_of_values(values: List[int] | Set[int]) PossibleValueSet [source]¶
Create a PossibleValueSet object for a value in a set of values.
- Parameters:
- Return type:
- static lookup_table_value(lookup_table, mapping) PossibleValueSet [source]¶
Create a PossibleValueSet object for a value which is a member of a lookup table.
- Parameters:
lookup_table (list(LookupTableEntry)) – List of table entries
- Return type:
- static not_in_set_of_values(values) PossibleValueSet [source]¶
Create a PossibleValueSet object for a value NOT in a set of values.
- Parameters:
- Return type:
- static signed_range_value(ranges: List[ValueRange]) PossibleValueSet [source]¶
Create a PossibleValueSet object for a signed range of values.
- Parameters:
ranges (list(ValueRange)) – List of ValueRanges
- Return type:
- Example:
>>> v_1 = ValueRange(-5, -1, 1) >>> v_2 = ValueRange(7, 10, 1) >>> val = PossibleValueSet.signed_range_value([v_1, v_2]) <signed ranges: [<range: -0x5 to -0x1>, <range: 0x7 to 0xa>]>
- static stack_frame_offset(offset: int) PossibleValueSet [source]¶
Create a PossibleValueSet object for a stack frame offset.
- Parameters:
offset (int) – Integer value of the offset
- Return type:
- static undetermined() PossibleValueSet [source]¶
Create a PossibleValueSet object of type UndeterminedValue.
- Returns:
PossibleValueSet object of type UndeterminedValue
- Return type:
- static unsigned_range_value(ranges: List[ValueRange]) PossibleValueSet [source]¶
Create a PossibleValueSet object for a unsigned signed range of values.
- Parameters:
ranges (list(ValueRange)) – List of ValueRanges
- Return type:
- Example:
>>> v_1 = ValueRange(0, 5, 1) >>> v_2 = ValueRange(7, 10, 1) >>> val = PossibleValueSet.unsigned_range_value([v_1, v_2]) <unsigned ranges: [<range: 0x0 to 0x5>, <range: 0x7 to 0xa>]>
- property ranges: List[ValueRange]¶
- property reg: RegisterName¶
- property table: List[LookupTableEntry]¶
- property type: RegisterValueType¶
- class RegisterValue(value: int, offset: int, type: binaryninja.enums.RegisterValueType = <RegisterValueType.UndeterminedValue: 0>, confidence: int = 255, size: int = 0)[source]¶
Bases:
object
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- classmethod from_BNRegisterValue(reg_value: BNRegisterValue | BNRegisterValueWithConfidence, arch: Architecture | None = None) RegisterValue [source]¶
- Parameters:
reg_value (BNRegisterValue | BNRegisterValueWithConfidence) –
arch (Architecture | None) –
- Return type:
- type: RegisterValueType = 0¶
- class ReturnAddressRegisterValue(value: int, offset: int = 0, type: binaryninja.enums.RegisterValueType = <RegisterValueType.ReturnAddressValue: 6>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- type: RegisterValueType = 6¶
- class StackFrameOffsetRegisterValue(value: int, offset: int = 0, type: binaryninja.enums.RegisterValueType = <RegisterValueType.StackFrameOffset: 5>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- type: RegisterValueType = 5¶
- class StackVariableReference(_source_operand: int | None, type: 'binaryninja.types.Type', name: str, var: 'Variable', referenced_offset: int, size: int)[source]¶
Bases:
object
- Parameters:
- property source_operand¶
- class Undetermined(value: int = 0, offset: int = 0, type: binaryninja.enums.RegisterValueType = <RegisterValueType.UndeterminedValue: 0>, confidence: int = 255, size: int = 0)[source]¶
Bases:
RegisterValue
- Parameters:
value (int) –
offset (int) –
type (RegisterValueType) –
confidence (int) –
size (int) –
- type: RegisterValueType = 0¶
- class Variable(func: Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction, source_type: VariableSourceType, index: int, storage: int)[source]¶
Bases:
CoreVariable
class Variable
represents variables in Binary Ninja. Variables are resolved in medium level IL, so variables objects are only valid for MLIL and above.- Parameters:
func (Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction) –
source_type (VariableSourceType) –
index (int) –
storage (int) –
- classmethod from_BNVariable(func: Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction, var: BNVariable)[source]¶
- Parameters:
func (Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction) –
var (BNVariable) –
- classmethod from_core_variable(func: Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction, var: CoreVariable)[source]¶
- Parameters:
func (Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction) –
var (CoreVariable) –
- classmethod from_identifier(func: Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction, identifier: int)[source]¶
- Parameters:
func (Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction) –
identifier (int) –
- classmethod from_variable_name_and_type(func: Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction, var: VariableNameAndType)[source]¶
- Parameters:
func (Function | LowLevelILFunction | MediumLevelILFunction | HighLevelILFunction) –
var (VariableNameAndType) –
- set_name_and_type_async(name: str | None, new_type: Type) None [source]¶
set_name_and_type_async
provides a way to asynchronously set both the name and type of a variable. This method should be used when speed is of concern.
- set_name_async(name: str | None) None [source]¶
set_name_async
provides a way to asynchronously set the name of a variable. This method should be used when speed is of concern.- Parameters:
name (str | None) –
- Return type:
None
- set_type_async(new_type: Type) None [source]¶
set_type_async
provides a way to asynchronously set the type of a variable. This method should be used when speed is of concern.- Parameters:
new_type (Type) –
- Return type:
None
- property core_variable: CoreVariable¶
Retrieve the underlying
CoreVariable
class
- property dead_store_elimination: DeadStoreElimination¶
returns the dead store elimination setting for this variable
- property il_function: function.ILFunctionType¶
returns the IL Function object which this variable belongs to
- property last_seen_name: str¶
Name of the variable, or the name most recently assigned if the variable has since been removed (read-only).
- property name: str¶
Name of the variable, Settings this property is slow because it ensures that analysis has been updated. If you are renaming many variables, use
set_name_async
, then callupdate_analysis
when complete.
- property offset_to_next_variable: int | None¶
returns number of bytes to the next variable on the stack
- property ssa_versions: Generator[int, None, None]¶
Returns the SSA versions associated with this variable. Doesn’t return anything for aliased variables.
- property var_name_and_type: VariableNameAndType¶
Convert to
VariableNameAndType
- class VariableNameAndType(_source_type: int, index: int, storage: int, name: str, type: Type)[source]¶
Bases:
CoreVariable
class VariableNameAndType
is a lightweight wrapper around a variable and its name, useful for shuttling between APIs that require them both. WhileVariable
hasVariable.name
andVariable.type
fields, those require additional core calls each time you fetch them.- Variables:
name – The variable’s name
type – The variable’s type
- Parameters: