r.a.Project(object) : class documentation

Part of reven.api View In Hierarchy

A reven project. This is the root api object.

Method __init__ Connect to a Reven project. @param host: The reven host. @param port: The reven port.
Method host The reven host.
Method port The reven port.
Method connected The connection status. @return: True if connection is established.
Method connect Connect to the reven host.
Method disconnect Disconnect from the reven host.
Method status Get the connection status string.
Method errors Get the list of errors generated during the execution of this project as a dict (Point -> [str]) Note that the point will always point to the first instruction of the offending sequence.
Method binaries Get the list of binaries present in the trace.
Method reports Get the list of reports.
Method devices Get the list of devices present in the trace.
Method framebuffer Get the framebuffer information.
Method processes Get the processes present in the trace.
Method process Get process by pid.
Method process_switches Get the list of process switches.
Method traces Get a list of available traces (main execution run and IRQs).
Method trace Get a trace by name.
Method taint Propagate a taint from an initial point until another point in a trace.
Method device_history No summary
Method saves Get a list of available saved project.
Method save_execution Save the current execution. If a save with the same name already exists, it will be overwriten.
Method start_execution Start a new execution. You can pass this execution a list of Inspectors.
Method stop_execution Stop the running execution.
Method resume_execution Resume the stopped execution.
Method execution_status The execution progress.
Method __repr__ Undocumented
Method _reset Undocumented
Method _init_errors Undocumented
Method _init_binaries Undocumented
Method _init_reports Undocumented
Method _init_processes Undocumented
Method _init_process_switches Undocumented
Method _init_traces Undocumented
Method _init_devices Undocumented
def __init__(self, host, port):

Connect to a Reven project.

ParametershostThe reven host.
portThe reven port.
def _reset(self):
Undocumented
def _init_errors(self):
Undocumented
def _init_binaries(self):
Undocumented
def _init_reports(self):
Undocumented
def _init_processes(self):
Undocumented
def _init_process_switches(self):
Undocumented
def _init_traces(self):
Undocumented
def _init_devices(self):
Undocumented
@property
def host(self):

The reven host.

@property
def port(self):

The reven port.

@property
def connected(self):

The connection status.

ReturnsTrue if connection is established.
def connect(self):

Connect to the reven host.

def disconnect(self):

Disconnect from the reven host.

def status(self):

Get the connection status string.

def errors(self):

Get the list of errors generated during the execution of this project as a dict (Point -> [str]) Note that the point will always point to the first instruction of the offending sequence.

def binaries(self):

Get the list of binaries present in the trace.

def reports(self):

Get the list of reports.

def devices(self):

Get the list of devices present in the trace.

def framebuffer(self):

Get the framebuffer information.

def processes(self):

Get the processes present in the trace.

def process(self, pid):

Get process by pid.

def process_switches(self):

Get the list of process switches.

def traces(self):

Get a list of available traces (main execution run and IRQs).

def trace(self, name):

Get a trace by name.

def taint(self, begin, end, initial_taint, timeout=1000):

Propagate a taint from an initial point until another point in a trace.

The propagation result is presented as a collection of taint modifications. This allow to get every propagation step but might be confusing for the user.

Note that if, at a certain point, the taint doesn't change (TaintDiff.tainted & TaintDiff.untainted are empty), it can mean one of two things:

  • If the corresponding point is equal to end: the taint is finished.
  • If the corresponding point is between start and end, the taint hit the timeout and is telling you it went as far at that point. You can resume the taint by using the latter as a new starting point.
ParametersbeginThe initial point to start tainting from.
endThe taint ending point. May be above (backward) or below (forward) the start_point.
initial_taintA list of Symbolic object considered tainted at the initial point.
timeoutAn optionnal time limit in ms. 0 means no timeout, but beware that it can freeze the server for quite long.
Returnsa dict mapping instruction Point and their effects TaintDiff on the taint.
def device_history(self, device='', subdevice=''):

Get a list of device accesses.

ParametersdeviceAn optionnal device name to match.
subdeviceAn optionnal subdevice name to match.
Returnsa list of DeviceAccess.
def saves(self):

Get a list of available saved project.

def save_execution(self, name):

Save the current execution. If a save with the same name already exists, it will be overwriten.

def start_execution(self, inspector_list=):

Start a new execution. You can pass this execution a list of Inspectors.

Note that you can only start an execution if the project is awaiting configuration. If you wish to restart a new execution, you should restart the project.

def stop_execution(self):

Stop the running execution.

Note this is not blocking, and you should wait for execution_status().is_done to be True before doing anything else.

def resume_execution(self):

Resume the stopped execution.

def execution_status(self):

The execution progress.

def __repr__(self):
Undocumented
API Documentation for reven, generated by pydoctor at 2016-05-25 16:38:00.