class Taint(object):
Represent a started taint in the backend, allowing to retrieve the taint results.
Warnings
This object is not meant to be constructed directly. Use reven2.preview.taint.Tainter
instead.
Examples
>>> trace = reven_server.trace() >>> tainter = reven2.preview.taint.Tainter(trace) >>> taint = tainter.simple_taint("rax") >>> # At this point taint object can be used to retrieve results >>> # get taint status >>> taint.progress().status ProgressStatus.Running
Method | __init__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | accesses |
Get a view of the taint accesses. See TaintAccessView and TaintResultView |
Method | cancel |
Cancel this taint. |
Method | progress |
Get the current taint progress information. See Progress |
Method | state |
Get the taint state corresponding to a given context. |
Method | states |
Get a view of the taint states. See TaintStateView and TaintResultView |
Method | warnings |
Get a view of the taint warnings. See TaintWarningView and TaintResultView |
Instance Variable | _taint |
Undocumented |
Instance Variable | _trace |
Undocumented |
Undocumented
Parameters | |
trace:_Trace | Undocumented |
taint_TaintData | Undocumented |
Get a view of the taint accesses. See TaintAccessView
and TaintResultView
Information
Parameters | |
changesbool | bool, if True the view will filter accesses that do not change the taint state. |
fetchint | integer Technical parameter indicating how many accesses should be fetched from the server per query. Modifying this parameter allows to fine-tune performance according to the current use-case:
NOTE: Modifying this parameter does not modify the results of the query. |
Returns | |
TaintAccessView | A TaintAccessView instance. |
Cancel this taint.
Cancelling the taint causes the taint to stop producing results if the taint isn't finished yet.
Cancelling the taint does not discard already computed results, that remain accessible using TaintResultView
.
If the taint is already finished when calling Taint.cancel
, cancelling the taint has no effect.
Get the taint state corresponding to a given context.
Warnings
This function is a blocking function, it will return when the state is ready. If you need a non-blocking function try using states().filter_be_context_range(context).available()
Examples
>>> taint.state_at(trace.context_before(10)) TaintState(context=Context before #10)
Information
Parameters | |
context:_Context | reven2.trace.Context at which the taint state is requested |
Returns | |
_Optional[ | A TaintState instance if context is in the tainted context range or None otherwise. |
Get a view of the taint states. See TaintStateView
and TaintResultView
Information
Parameters | |
fetchint | integer Technical parameter indicating how many states should be fetched from the server per query. Modifying this parameter allows to fine-tune performance according to the current use-case:
NOTE: Modifying this parameter does not modify the results of the query. |
Returns | |
TaintStateView | A TaintStateView instance. |
Get a view of the taint warnings. See TaintWarningView
and TaintResultView
Information
Parameters | |
fetchint | integer Technical parameter indicating how many warnings should be fetched from the server per query. Modifying this parameter allows to fine-tune performance according to the current use-case:
NOTE: Modifying this parameter does not modify the results of the query. |
Returns | |
TaintWarningView | A TaintWarningView instance. |