reven2.string.String(object)
class documentationreven2.string
(View In Hierarchy)
Represents a string that is read and/or write during the trace.
This object is not meant to be constructed directly. Use
RevenServer.trace.strings
(Trace.strings
)
instead.
>>> # 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 |
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.
Returns | An integer . |
Property: The size in bytes of the string in memory
Returns | An integer . |
Property: The linear address where the string begins.
Returns | A reven2.address.LinearAddress . |
Property: The first transition the string has been accessed.
Returns | A reven2.trace.Transition . |
Property: The last transition the string has been accessed.
Returns | A reven2.trace.Transition . |
Property: The encoding of the string, whether UTF8 or UTF16.
Returns | A reven2.types.Encoding
instance. |
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)
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.
Parameters | from_transition | Transition 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_transition | Transition 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 | |
operation | type (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 | |
timeout | Technical 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. | |
Returns | A generator of memory accesses (memhist.MemoryAccess ). | |
Raises | RuntimeError | if the strings resource has not been generated. |
ValueError | if from_transition > to_transition. | |
RuntimeError | if the service timeout (by default, if the service takes more than 10s). |