reven2.preview.taint.Tainter(object)
class documentationreven2.preview.taint
(View In Hierarchy)
Entry point object for tainting data.
Taint
s can be
created by using the simple_taint
function. The
last_taint
method can be used to retrieve the started
taint.
Please refer to the taint
package
documentation for more information.
>>> trace = reven_server.trace >>> tainter = reven2.preview.taint.Tainter(trace)
Method | __init__ | Undocumented |
Method | simple_taint | Request the server to start a taint such that its parameters are the arguments to this function. |
Method | last_taint | Get the last taint started by simple_taint |
Method | __repr__ | Undocumented |
Static Method | _handle_tag | Undocumented |
Request the server to start a taint such that its parameters are the arguments to this function.
As this function offers a simplified API, it starts the taint with a maximum of two different taint markers.
Each successive call to this method will cancel and discard the previously started taint if any.
tag0
, tag1 tainted data is labeled by tag1
.
Tainted data can be one of: string
, list
,
reven2.Register
,
TaintedRegisterSlice
,
integer
(interpreted as a ds
prefixed
logical address), reven2.address.LogicalAddress
,
reven2.address.LinearAddress
,
reven2.address.LogicalAddressSegmentIndex
,
reven2.address.PhysicalAddress
or TaintedMemories
from_context
and
to_context
(excluded)
>>> trace = reven_server.trace() >>> tainter = reven2.preview.taint.Tainter(trace) >>> # taint in forward on the full trace, starting at the first context, >>> # "rax" with tag0, [ds:0xffffd001ea0d6040 ; 8] with tag1 >>> taint = tainter.simple_taint(tag0="rax", tag1="[ds:0xffffd001ea0d6040 ; 8]") >>> # The same taint, with the arguments expressed differently. >>> taint = tainter.simple_taint(tag0=reven2.arch.x64.rax, tag1=0xffffd001ea0d6040) >>> # # A slightly different taint, where tag0 tags both `rax` and the memory address, and where nothing it taggued with `tag1`. >>> taint = tainter.simple_taint(tag0=[reven2.arch.x64.rax, 0xffffd001ea0d6040])
Parameters | tag0 | Initially tainted data marked with the tag0 taint marker. The
accepted types for this parameter are the following:
|
tag1 | Initially tainted data marked with the tag1 taint marker. The
accepted types for this parameter are the same as for tag0 | |
from_context | reven2.trace.Context
First context in the requested taint range. | |
to_context | reven2.trace.Context
First context not in the requested taint range. | |
is_forward | bool , True for forward direction and
False for backward direction. | |
Returns | A Taint
instance. |
Get the last taint started by simple_taint
This function can only get the last taint if that taint was started by a tainter object in the same session.
Returns | a Taint object
if the simple_taint function was used before this method call,
otherwise None . |