The Volatility Framework
volatility.obj.Profile Class Reference

This must live here, otherwise there are circular dependency issues. More...

Inheritance diagram for volatility.obj.Profile:
volatility.plugins.overlays.windows.vista.VistaSP0x64 volatility.plugins.overlays.windows.vista.VistaSP0x86 volatility.plugins.overlays.windows.vista.VistaSP1x64 volatility.plugins.overlays.windows.vista.VistaSP1x86 volatility.plugins.overlays.windows.vista.VistaSP2x64 volatility.plugins.overlays.windows.vista.VistaSP2x86 volatility.plugins.overlays.windows.win10.Win10x64 volatility.plugins.overlays.windows.win10.Win10x86 volatility.plugins.overlays.windows.win2003.Win2003SP0x86 volatility.plugins.overlays.windows.win2003.Win2003SP1x64 volatility.plugins.overlays.windows.win2003.Win2003SP1x86 volatility.plugins.overlays.windows.win2003.Win2003SP2x64 volatility.plugins.overlays.windows.win2003.Win2003SP2x86 volatility.plugins.overlays.windows.win7.Win7SP0x64 volatility.plugins.overlays.windows.win7.Win7SP0x86 volatility.plugins.overlays.windows.win7.Win7SP1x64 volatility.plugins.overlays.windows.win7.Win7SP1x86 volatility.plugins.overlays.windows.win8.Win81U1x64 volatility.plugins.overlays.windows.win8.Win81U1x86 volatility.plugins.overlays.windows.win8.Win8SP0x64 volatility.plugins.overlays.windows.win8.Win8SP0x86 volatility.plugins.overlays.windows.win8.Win8SP1x64 volatility.plugins.overlays.windows.win8.Win8SP1x86 volatility.plugins.overlays.windows.xp.WinXPSP2x86 volatility.plugins.overlays.windows.xp.WinXPSP3x86

Public Member Functions

def __init__
 
def applied_modifications (self)
 
def clear (self)
 Clears out the input vtypes and object_classes, and only the base object types.
 
def reset (self)
 Resets the profile's vtypes to those automatically loaded.
 
def load_vtypes (self)
 Identifies the module from which to load the vtypes. More...
 
def load_modifications (self)
 Find all subclasses of the modification type and applies them. More...
 
def compile (self)
 Compiles the vtypes, overlays, object_classes, etc into a types dictionary. More...
 
def metadata (self)
 Returns a read-only dictionary copy of the metadata associated with a profile.
 
def has_type (self, theType)
 Returns a simple check of whether the type is in the profile.
 
def get_obj_offset (self, name, member)
 Returns a members offset within the struct.
 
def get_obj_size (self, name)
 Returns the size of a struct.
 
def obj_has_member (self, name, member)
 Returns whether an object has a certain member.
 
def merge_overlay (self, overlay)
 Applies an overlay to the profile's vtypes.
 
def add_types
 Add in a deprecated function that mimics the previous add_types function.
 
def apply_overlay (self, args, kwargs)
 Calls the old apply_overlay function with a deprecation warning.
 

Public Attributes

 strict
 
 types
 
 object_classes
 
 native_types
 
 additional
 
 vtypes
 

Static Public Attributes

dictionary native_mapping
 

Detailed Description

This must live here, otherwise there are circular dependency issues.

The Profile relies on several classes in obj.py, because it needs to parse legacy list formats into appropriate types Leaving a deprecated obj.Profile object would create a circular dependency Profiles are the interface for creating/interpreting objects

Member Function Documentation

def volatility.obj.Profile.compile (   self)

Compiles the vtypes, overlays, object_classes, etc into a types dictionary.

We populate as we go, so that _list_to_type can refer to existing classes rather than Curry everything. If the compile fails, the profile will be left in a bad/unusable state

def volatility.obj.Profile.load_modifications (   self)

Find all subclasses of the modification type and applies them.

Each modification object can specify the metadata with which it can work Allowing the overlay to decide which profile it should act on

def volatility.obj.Profile.load_vtypes (   self)

Identifies the module from which to load the vtypes.

Eventually this could do the importing directly, and avoid having the profiles loaded in memory all at once.

Member Data Documentation

dictionary volatility.obj.Profile.native_mapping
static
Initial value:
1 = {'32bit': native_types.x86_native_types,
2  '64bit': native_types.x64_native_types}

The documentation for this class was generated from the following file: