reven2.preview.taint.Taint(object)
class documentationreven2.preview.taint
(View In Hierarchy)
Represent a started taint in the backend, allowing to retrieve the taint results.
This object is not meant to be constructed directly. Use reven2.preview.taint.Tainter
instead.
>>> 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 | progress | Get the current taint progress information. See Progress |
Method | changes | Get a view of the taint changes. See TaintChangeView
and TaintResultView |
Method | accesses | Get a view of the taint accesses. See TaintAccessView
and TaintResultView |
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 |
Method | state_at | Get the taint state corresponding to a given context. |
Method | cancel | Cancel this taint. |
Method | __repr__ | Undocumented |
Method | __str__ | Undocumented |
Get a view of the taint changes. See TaintChangeView
and TaintResultView
Parameters | fetch_count | integer Technical parameter indicating how many changes 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 | A TaintChangeView
instance. |
Get a view of the taint accesses. See TaintAccessView
and TaintResultView
Parameters | changes_only | bool , if True the view will filter accesses that
do not change the taint state. |
fetch_count | 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 | A TaintAccessView
instance. |
Get a view of the taint states. See TaintStateView
and TaintResultView
Parameters | fetch_count | 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 | A TaintStateView
instance. |
Get a view of the taint warnings. See TaintWarningView
and TaintResultView
Parameters | fetch_count | 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 | A TaintWarningView
instance. |
Get the taint state corresponding to a given context.
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()
>>> taint.state_at(trace.context_before(10)) TaintState(context=Context before #10)
Parameters | context | reven2.trace.Context
at which the taint state is requested |
Returns | A TaintState
instance if context is in the tainted context range or
None otherwise. |
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.