Represents a string that is read and/or write during the trace.

Warnings

This object is not meant to be constructed directly. Use RevenServer.trace.strings (Trace.strings) instead.

Examples

>>> # From a reven_server
>>> strings = reven_server.trace.strings("hello")
>>> # strings matching the pattern "*hello*" in the whole trace are returned as a generator.
>>> for string in strings:
>>>     print(string.data)
Method __init__ Undocumented
Method id Property: The unique id of the string in the trace.
Method data Property: The content of the string.
Method size Property: The size in bytes of the string in memory
Method address Property: The linear address where the string begins.
Method first_access Property: The first transition the string has been accessed.
Method last_access Property: The last transition the string has been accessed.
Method encoding Property: The encoding of the string, whether UTF8 or UTF16.
Method memory_accesses Return a generator of memhist.MemoryAccess corresponding to the string accesses
Method __str__ Undocumented
Method __repr__ Undocumented
def __init__(self, _trace, _rvn_string):
Undocumented
@property
def id(self):

Property: The unique id of the string in the trace.

The id can be used to disambiguate the strings from other strings having e.g. the same contents, or at the same location, but created at a different time.

Information

ReturnsAn integer.
@property
def data(self):

Property: The content of the string.

Information

ReturnsA string.
@property
def size(self):

Property: The size in bytes of the string in memory

Information

ReturnsAn integer.
@property
def address(self):

Property: The linear address where the string begins.

Information

ReturnsA reven2.address.LinearAddress.
@property
def first_access(self):

Property: The first transition the string has been accessed.

Information

ReturnsA reven2.trace.Transition.
@property
def last_access(self):

Property: The last transition the string has been accessed.

Information

ReturnsA reven2.trace.Transition.
@property
def encoding(self):

Property: The encoding of the string, whether UTF8 or UTF16.

Information

ReturnsA reven2.types.Encoding instance.
def memory_accesses(self, from_transition=None, to_transition=None, operation=None, timeout=10):

Return a generator of memhist.MemoryAccess corresponding to the string accesses

The accesses are returned chronologically (from the first_access to the last_access of the string)

Limitations

When the service takes too much time to retrieve memory accesses (> 5s), it times out and throws a RuntimeError. If a timeout occurs no accesses are returned at all.

Information

Parametersfrom_transitionTransition at which to start the search of accesses. The from_transition is included in the search results If None, start at the beginning of the trace. If specified, must be lower than to_transition
to_transitionTransition at which to stop the search accesses. The to_transition is excluded from the search results If None, stop to the end of the trace. If specified, must be greater than from_transition
operationtype (memhist.MemoryAccessOperation) of accesses the user want to retrieve By default set to None, will retrieve all types of access (read/write) If MemoryAccessOperation.READ, retrieve only read accesses If MemoryAccessOperation.WRITE, retrieve only write accesses
timeoutTechnical parameter determining the maximum number of seconds to wait the accesses. By default, wait 10 seconds before the timeout (timeout=10). If the service timeout, no access is returned at all. If 0, wait indefinitely until all accesses have been retrieved.
ReturnsA generator of memory accesses (memhist.MemoryAccess).
RaisesRuntimeErrorif the strings resource has not been generated.
ValueErrorif from_transition > to_transition.
RuntimeErrorif the service timeout (by default, if the service takes more than 10s).
def __str__(self):
Undocumented
def __repr__(self):
Undocumented
API Documentation for reven2, generated by pydoctor at 2019-11-13 18:38:15.