class String(object):
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 |
Property | id |
Property: The unique id of the string in the trace. |
Property | data |
Property: The content of the string. |
Property | size |
Property: The size in bytes of the string in memory |
Property | address |
Property: The linear address where the string begins. |
Property | first_access |
Property: The first transition the string has been accessed. |
Property | last_access |
Property: The last transition the string has been accessed. |
Property | 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 |
Method | format_as_html |
This method gets an html formatting string representation for this class instance. |
Instance Variable | _trace |
Undocumented |
Instance Variable | _rvn_string |
Undocumented |
Method | _repr_html_ |
Representation used by Jupyter Notebook when an instance of this class is displayed in a cell. |
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 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 timeouts, 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 timeouts (by default, if the service takes more than 10s). |