class Taint(object):
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 |
Instance Variable | _trace |
Undocumented |
Instance Variable | _taint_data |
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.