class documentation

ValueSet is a mapping between memory regions and corresponding offsets.

Static Method empty Undocumented
Method __add__ Binary operation: addition
Method __and__ Binary operation: and
Method __eq__ Binary operation: ==
Method __ge__ Undocumented
Method __gt__ Undocumented
Method __hash__ Undocumented
Method __init__ Constructor.
Method __le__ Undocumented
Method __len__ Undocumented
Method __lt__ Undocumented
Method __mod__ Binary operation: modulo
Method __ne__ Binary operation: ==
Method __radd__ Undocumented
Method __repr__ Undocumented
Method __sub__ Binary operation: subtraction
Method apply_annotation Apply a new annotation onto self, and return a new ValueSet object.
Method concat Undocumented
Method copy Make a copy of self and return.
Method eval Undocumented
Method extract Operation extract
Method get_si Undocumented
Method identical Used to make exact comparisons between two ValueSets.
Method intersection Undocumented
Method items Undocumented
Method LShR Undocumented
Method reverse Undocumented
Method SGE Undocumented
Method SGT Undocumented
Method size Undocumented
Method SLE Undocumented
Method SLT Undocumented
Method stridedinterval Undocumented
Method union Undocumented
Method widen Undocumented
Property bits Undocumented
Property cardinality Undocumented
Property is_empty Undocumented
Property max The maximum integer value of a value-set. It is only defined when there is exactly one region.
Property min The minimum integer value of a value-set. It is only defined when there is exactly one region.
Property name Undocumented
Property regions Undocumented
Property reversed Undocumented
Property unique Undocumented
Property valueset Undocumented
Method _merge_si Undocumented
Method _set_si Undocumented
Instance Variable _bits Undocumented
Instance Variable _name Undocumented
Instance Variable _region_base_addrs Undocumented
Instance Variable _regions Undocumented
Instance Variable _reversed Undocumented
Instance Variable _si Undocumented

Inherited from BackendObject:

Method to_claripy Claripy calls this to retrieve something that it can directly reason about.
Class Variable __slots__ Undocumented
@staticmethod
def empty(bits): (source)

Undocumented

@normalize_types_one_arg
def __add__(self, other): (source)

Binary operation: addition Note that even if "other" is a ValueSet object. we still treat it as a StridedInterval. Adding two ValueSets together does not make sense (which is essentially adding two pointers together). :param StridedInterval other: The other operand. :return: A new ValueSet object :rtype: ValueSet

@normalize_types_one_arg
def __and__(self, other): (source)

Binary operation: and Note that even if `other` is a ValueSet object, it will be treated as a StridedInterval as well. Doing & between two pointers that are not the same do not make sense. :param other: The other operand :return: A ValueSet as the result :rtype: ValueSet

def __eq__(self, other): (source)

Binary operation: == :param other: The other operand :return: True/False/Maybe

def __ge__(self, other): (source)

Undocumented

def __gt__(self, other): (source)

Undocumented

def __hash__(self): (source)

Undocumented

def __init__(self, name=None, region=None, region_base_addr=None, bits=None, val=None): (source)

Constructor. :param str name: Name of this ValueSet object. Only for debugging purposes. :param str region: Region ID. :param int region_base_addr: Base address of the region. :param int bits: Size of the ValueSet. :param val: an initial offset

def __le__(self, other): (source)

Undocumented

def __len__(self): (source)

Undocumented

def __lt__(self, other): (source)

Undocumented

@normalize_types_one_arg
def __mod__(self, other): (source)

Binary operation: modulo :param other: The other operand :return: A StridedInterval or a ValueSet.

def __ne__(self, other): (source)

Binary operation: == :param other: The other operand :return: True/False/Maybe

@normalize_types_one_arg
def __radd__(self, other): (source)

Undocumented

def __repr__(self): (source)

Undocumented

@normalize_types_one_arg
def __sub__(self, other): (source)

Binary operation: subtraction :param other: The other operand :return: A StridedInterval or a ValueSet.

def apply_annotation(self, annotation): (source)

Apply a new annotation onto self, and return a new ValueSet object. :param RegionAnnotation annotation: The annotation to apply. :return: A new ValueSet object :rtype: ValueSet

def concat(self, b): (source)

Undocumented

def copy(self): (source)

Make a copy of self and return. :return: A new ValueSet object. :rtype: ValueSet

def eval(self, n, signed=False): (source)

Undocumented

def extract(self, high_bit, low_bit): (source)

Operation extract - A cheap hack is implemented: a copy of self is returned if (high_bit - low_bit + 1 == self.bits), which is a ValueSet instance. Otherwise a StridedInterval is returned. :param high_bit: :param low_bit: :return: A ValueSet or a StridedInterval

def get_si(self, region): (source)

Undocumented

def identical(self, o): (source)

Used to make exact comparisons between two ValueSets. :param o: The other ValueSet to compare with. :return: True if they are exactly same, False otherwise.

@normalize_types_one_arg
def intersection(self, b): (source)

Undocumented

def items(self): (source)

Undocumented

def LShR(self, other): (source)

Undocumented

def reverse(self): (source)

Undocumented

def SGE(self, other): (source)

Undocumented

def SGT(self, other): (source)

Undocumented

def size(self): (source)

Undocumented

def SLE(self, other): (source)

Undocumented

def SLT(self, other): (source)

Undocumented

def stridedinterval(self): (source)

Undocumented

Undocumented

Undocumented

Undocumented

@property
cardinality = (source)

Undocumented

Undocumented

The maximum integer value of a value-set. It is only defined when there is exactly one region. :return: A integer that represents the maximum integer value of this value-set. :rtype: int

The minimum integer value of a value-set. It is only defined when there is exactly one region. :return: A integer that represents the minimum integer value of this value-set. :rtype: int

Undocumented

Undocumented

Undocumented

Undocumented

Undocumented

def _merge_si(self, region, region_base_addr, si): (source)

Undocumented

def _set_si(self, region, region_base_addr, si): (source)

Undocumented

Undocumented

Undocumented

_region_base_addrs: dict = (source)

Undocumented

_regions: dict = (source)

Undocumented

_reversed: bool = (source)

Undocumented

Undocumented