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 logs Get the list of logs generated during the execution of this project. @return: A list of tuple describing the log level, message and associated point (or None).
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 search_memory_access No summary
Method taint Propagate a taint from an initial point in a given direction.
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 map_memory_segment_into_process No summary
Method add_symbols_to_binary Add symbols to a binary. @param binary: Path of the binary @param symbols: list of Symbol to add in the binary.
Method __repr__ Undocumented
Method _reset Undocumented
Method _init_logs 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_logs(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 logs(self):

Get the list of logs generated during the execution of this project.

ReturnsA list of tuple describing the log level, message and associated point (or None).

Note that the point will always point to the first instruction of the offending sequence if any.

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 search_memory_access(self, addr, size):

Search for memory access.

ParametersaddrThe memory start physical address
sizeThe memory range size
Returnsthe list of memory accesses which occured in the physical memory buffer.
def taint(self, begin, initial_taint, forward, count=0, timeout=1000):

Propagate a taint from an initial point in a given direction.

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.

ParametersbeginThe initial point to start tainting from.
initial_taintA list of Symbolic object considered tainted at the initial point.
forwardA boolean indicating the taint propagationd direction.
countThe maximum number of taint propagation to perform. 0 mean unlimited.
timeoutAn optionnal time limit in ms. 0 means no timeout, but beware that it can freeze the server for quite long.
ReturnsA taint propagation result object of type 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=None):

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 map_memory_segment_into_process(self, cr3, segment, base_address=0):

Map a memory segment into a process.

Parameterscr3cr3 of the process where to map the memory segment.
segmentMemory segment to map.
base_address(Optional) Base address of the binary the segment belongs to. If not applicable (for example the stack), the default base address is equal to the segment's address.
def add_symbols_to_binary(self, binary, symbols):

Add symbols to a binary.

ParametersbinaryPath of the binary
symbolslist of Symbol to add in the binary.
def __repr__(self):
Undocumented
API Documentation for reven, generated by pydoctor at 2017-01-20 15:13:29.