The Volatility Framework
volatility.plugins.gui.win32k_core.tagDESKTOP Class Reference

A class for Desktop objects. More...

Inheritance diagram for volatility.plugins.gui.win32k_core.tagDESKTOP:
volatility.plugins.gui.win32k_core.tagWINDOWSTATION volatility.obj.CType volatility.obj.BaseObject volatility.plugins.gui.win32k_core.tagTHREADINFO

Public Member Functions

def is_valid (self)
 
def WindowStation (self)
 Returns this desktop's parent window station.
 
def DeskInfo (self)
 Returns the desktop info object.
 
def threads (self)
 Generator for _EPROCESS objects attached to this desktop.
 
def hook_params (self)
 Parameters for the hooks() method. More...
 
def hooks (self)
 Generator for tagHOOK info. More...
 
def windows
 Traverses windows in their Z order, bottom to top. More...
 
def heaps (self)
 Generator for the desktop heaps.
 
def traverse (self)
 Generator for next desktops in the list.
 
- Public Member Functions inherited from volatility.plugins.gui.win32k_core.tagWINDOWSTATION
def is_valid (self)
 
def PhysicalAddress (self)
 This is a simple wrapper to always return the object's physical offset regardless of what AS its instantiated in.
 
def LastRegisteredViewer (self)
 The EPROCESS of the last registered clipboard viewer.
 
def AtomTable (self)
 This atom table belonging to this window station object.
 
def Interactive (self)
 Check if a window station is interactive.
 
def Name (self)
 Get the window station name. More...
 
def traverse (self)
 A generator that yields window station objects.
 
def desktops (self)
 A generator that yields the window station's desktops.
 
- Public Member Functions inherited from volatility.obj.CType
def __init__ (self, theType, offset, vm, name=None, members=None, struct_size=0, kwargs)
 This must be instantiated with a dict of members. More...
 
def size (self)
 
def __repr__ (self)
 
def d (self)
 
def v (self)
 When a struct is evaluated we just return our offset.
 
def m (self, attr)
 
def __getattr__ (self, attr)
 
def __setattr__ (self, attr, value)
 Change underlying members.
 
- Public Member Functions inherited from volatility.obj.BaseObject
def __init__ (self, theType, offset, vm, native_vm=None, parent=None, name=None, kwargs)
 
def obj_type (self)
 
def obj_vm (self)
 
def obj_offset (self)
 
def obj_parent (self)
 
def obj_name (self)
 
def obj_native_vm (self)
 
def set_native_vm (self, native_vm)
 Sets the native_vm.
 
def rebase (self, offset)
 
def proxied (self, attr)
 
def newattr (self, attr, value)
 Sets a new attribute after the object has been created.
 
def write (self, value)
 Function for writing the object back to disk.
 
def __getattr__ (self, attr)
 This is only useful for proper methods (not ones that start with __ )
 
def __setattr__ (self, attr, value)
 
def __nonzero__ (self)
 This method is called when we test the truth value of an Object. More...
 
def __eq__ (self, other)
 
def __ne__ (self, other)
 
def __hash__ (self)
 
def m (self, memname)
 
def is_valid (self)
 
def dereference (self)
 
def dereference_as (self, derefType, kwargs)
 
def cast (self, castString)
 
def v (self)
 Do the actual reading and decoding of this member.
 
def __format__ (self, formatspec)
 
def __str__ (self)
 
def __repr__ (self)
 
def d (self)
 Display diagnostic information.
 
def __getstate__ (self)
 This controls how we pickle and unpickle the objects.
 
def __setstate__ (self, state)
 

Additional Inherited Members

- Public Attributes inherited from volatility.obj.CType
 members
 
 struct_size
 
- Public Attributes inherited from volatility.obj.BaseObject
 obj_offset
 
 obj_vm
 

Detailed Description

A class for Desktop objects.

Member Function Documentation

def volatility.plugins.gui.win32k_core.tagDESKTOP.hook_params (   self)

Parameters for the hooks() method.

These are split out into a function so it can be subclassed by tagTHREADINFO.

def volatility.plugins.gui.win32k_core.tagDESKTOP.hooks (   self)

Generator for tagHOOK info.

Hooks are carved using the same algorithm, but different starting points for desktop hooks and thread hooks. Thus the algorithm is presented in this function and the starting point is acquired by calling hook_params (which is then sub- classed by tagTHREADINFO.

def volatility.plugins.gui.win32k_core.tagDESKTOP.windows (   self,
  win,
  filter = lambda x: True,
  level = 0 
)

Traverses windows in their Z order, bottom to top.

Parameters
winan HWND to start. Usually this is the desktop window currently in focus.
filtera callable (usually lambda) to use for filtering the results. See below for examples:

only print subclassed windows

filter = lambda x : x.lpfnWndProc == x.pcls.lpfnWndProc

only print processes named csrss.exe

filter = lambda x : str(x.head.pti.ppi.Process.ImageFileName).lower() \ == "csrss.exe" if x.head.pti.ppi else False

only print processes by pid

filter = lambda x : x.head.pti.pEThread.Cid.UniqueThread == 0x1020

only print visible windows

filter = lambda x : 'WS_VISIBLE' not in x.get_flags()


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