reven API Documentation

Class Hierarchy

  • collections.Mapping
    • reven.api.Cpu - Represents the state of the CPU at some Point in the Trace.
  • collections.Sequence
    • reven.api.BasicBlock - A block of uninterrupted instructions.
  • Exception
    • reven.api.ConcurrentAccessError - Occurs when a modification to a shared resource is attempted, if another connection already modified the resource since the cache was last refreshed.
  • object
    • reven.api.AddressSpace - Abstract representation of a non-contiguous memory region.
      • reven.api.DeviceAddressSpace - An address space representing a device physical memory.
      • reven.api.FileAddressSpace - An address space representing memory mapped files.
      • reven.api.ProcessAddressSpace - An address space representing the memory of a process.
    • reven.api.AddressSpace.Segment - Named contiguous part of memory.
    • reven.api.Binary - Executable file information.
    • reven.api.Cpu.Iterator - CPU registers iterator.
    • reven.api.Criterion - Criterion base class. Shouldn't be instanciated.
      • reven.api.AddressCriterion - Criterion object to select addresses.
      • reven.api.BinaryCriterion - Criterion object to select binaries.
      • reven.api.DeviceCriterion - Criterion object to select devices.
      • reven.api.SymbolCriterion - Criterion object to select symbols.
    • reven.api.Device - A hardware device with port and memory ranges.
    • reven.api.Device.PortRange - A range of continuous ports.
    • reven.api.DeviceAccess - A hardware device access. Represents either a read or write access to a port or physical memory.
    • reven.api.ExecutionProgress - Execution progress.
    • reven.api.FrameBuffer - Video framebuffer information.
    • reven.api.InspectorAlterExecution - This inspector alters the program's execution.
    • reven.api.InspectorExecutionsAfterWrite - This inspector tracks executions of the memory addresses that have been written to, to detect *execute-after-write* like in self-modifying code. It requires inspector memory_range_history.
    • reven.api.InspectorMemoryHistory - This inspector tracks the history of all memory accesses. Activating it is highly recommended.
    • reven.api.InspectorStopExecution - This inspector stops the execution at a certain configured point.
    • reven.api.InspectorStringHistory - This inspector will collect information about string that have been manipulated during the execution.
    • reven.api.Instruction - A basic block instruction.
    • reven.api.Memory - This object represents the state of memory at a specified trace point.
    • reven.api.MemoryAccess - Represents memory access triggered by either the CPU or a device (mmio).
    • reven.api.MemoryAccessPointIterator - Iterator on points accessing some given memory (read or write) from a Point.
    • reven.api.Point - A point in a trace.
    • reven.api.Process - A running process.
    • reven.api.ProcessSwitch - A process switch during an execution.
    • reven.api.Project - A reven project. This is the root api object.
    • reven.api.RegisterAccessPointIterator - Iterator on points accessing given register (read or write) from a Point.
    • reven.api.Report - A report given by inspectors about an execution. Can signal: - potential bugs detected in the trace (such as *use-after-free*s). - *execute-after-write*s
    • reven.api.Save - A saved project.
    • reven.api.Sequence - Wrapper for reven_api.sequence_in_run.
    • reven.api.Symbol - A symbol inside a binary.
    • reven.api.Symbolic - Base class for symbolic objects.
      • reven.api.SymbolicPhysicalMemory - No class docstring; 3/5 methods documented
      • reven.api.SymbolicRegister - A CPU register symbolic representation.
    • reven.api.Taint - The result of a taint propagation on a trace.
    • reven.api.TaintDiff - A taint propagation diff. It stores which elements either gain or loss the taint.
    • reven.api.Trace - A trace is the list of all executed sequences. The Trace concept wraps the Run concepts used in axion and the low-level API.
  • reven.api.BasicBlock.Iterator - BasicBlock instructions iterator.
  • reven.api.Trace.PointIterator - Iterator allowing to iterate over trace points.