Trees | Indices | Help |
|
---|
|
XNU defines lists inline using an annonymous struct. This makes it hard for us to automatically support lists because the debugging symbols dont indicate this inner struct is of any particular type (since its annonymous). We therefore depend on the overlays to redefine each list memeber as a LIST_ENTRY member. For example we see code like: struct proc { LIST_ENTRY(proc) p_list; ... Where: #define LIST_ENTRY(type) struct { struct type *le_next; /* next element */ struct type **le_prev; /* address of previous next element */ }
Nested Classes | |
__metaclass__ Give each object a unique ID. (Inherited from rekall.obj.BaseObject) |
Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
Inherited from |
Class Methods | |||
|
Class Variables | |
obj_name = <No name>
(Inherited from rekall.obj.BaseObject)
|
|
obj_parent = <No parent>
(Inherited from rekall.obj.BaseObject)
|
|
obj_producers = None hash(x) (Inherited from rekall.obj.BaseObject) |
Properties | |
indices Returns (usually 1) representation(s) of self usable as dict keys. (Inherited from rekall.obj.Struct) |
|
obj_end (Inherited from rekall.obj.BaseObject) | |
obj_size (Inherited from rekall.obj.Struct) | |
parents Returns all the parents of this object. (Inherited from rekall.obj.BaseObject) |
|
Inherited from |
Method Details |
Must have both valid next and prev pointers.
|
Recasts the list entry as a member in a type, and return the type. Args: type: The name of this Struct type. member: The name of the member of this Struct. address_space: An optional address space to switch during deferencing. |
Follows all the list entries starting from lst. We basically convert the list to a tree and recursively search it for new nodes. From each node we follow the Flink and then the Blink. When we see a node we already have, we backtrack. |
Reflect this list element by following its Flink and Blink. This is basically the same as Flink.Blink except that it also checks Blink.Flink. It also ensures that Flink and Blink are dereferences to the correct type in case the vtypes do not specify them as pointers. Returns: the result of Flink.Blink. |
This method is called when we test the truth value of an Object. In rekall we consider an object to have True truth value only when it is a valid object. Its possible for example to have a Pointer object which is not valid - this will have a truth value of False. You should be testing for validity like this: if X: # object is valid Do not test for validity like this: if int(X) == 0: or if X is None: ..... the later form is not going to work when X is a NoneObject.
|
Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Mon Oct 9 03:28:31 2017 | http://epydoc.sourceforge.net |