Trees | Indices | Help |
|
---|
|
The baseclass for abstracted IO implementations.
The IO manager classes are responsible for managing access to profiles. A profile is a JSON dict which is named using a standard notation. For example, the profile for a certain NT kernel is:
nt/GUID/BF9E190359784C2D8796CF5537B238B42
The IO manager may actually store the profile file using some other scheme, but that internal scheme is private to itself.
Nested Classes | |
__metaclass__ Automatic Plugin Registration through metaclasses. |
|
top_level_class The baseclass for abstracted IO implementations. |
Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
Inherited from |
Class Methods | |||
|
|||
|
Class Variables | |
order = 100
|
|
classes =
|
|
classes_by_name =
|
|
plugin_feature =
|
Properties | |
inventory | |
Inherited from |
Method Details |
Initialize the IOManager. Args: urn: The path to the IO manager. This might contain a scheme or protocol specific to a certain IO manager implementation. mode: Can be "r" or "w". session: The session object. pretty_print: If specified we dump sorted yaml data - this ends up being more compressible in reality. version: The required version of the repository. The IOManager is free to implement arbitrary storage for different versions if required. Versioning the repository allows us to update the repository file format transparently without affecting older Rekall versions.
|
Checks the validity of the inventory and if the path exists in it. The inventory is a json object at the root of the repository which lists all the profiles in this repository. It allows us to determine quickly if a profile exists in this repository. |
Creates a new file in the container. Returns a file like object which should support the context manager protocol. If the file already exists in the container, overwrite it. For example: with self.session.io_manager.Create("foobar") as fd: fd.Write("hello world") Args: name: The name of the new file. |
Opens a container member for reading. This should return a file like object which provides read access to container members. Raises: IOManagerError: If the file is not found. |
Get the data object stored at container member. This returns an arbitrary python object which is stored in the named container member. For example, normally a dict or list. This function wraps the Open() method above and add deserialization to retrieve the actual object. Returns None if the file is not found. Args: name: The name to retrieve the data under. raw: If specified we do not parse the data, simply return it as is. |
Stores the data in the named container member. This serializes the data and stores it in the named member. Not all types of data are serializable, so this may raise. For example, when using JSON to store the data, arbitrary python objects may not be used. Args: name: The name under which the data will be stored. data: The data to store. Common options: raw: If true we write the data directly without encoding to json. In this case data should be a string. uncompressed: File will not be compressed (default gzip compression). |
Class Variable Details |
classes
|
classes_by_name
|
Property Details |
inventory
|
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Mon Oct 9 03:27:50 2017 | http://epydoc.sourceforge.net |