A class to collect various information about a process/task. More...
Public Member Functions | |
| def | __init__ (self, task) |
| def | maps (self) |
| def | maps (self, value) |
| Setter for maps. More... | |
| def | reg (self) |
| def | reg (self, value) |
| Setter for reg. More... | |
| def | stack (self) |
| Get the list of stack values (old code). More... | |
| def | stack (self, value) |
| Set the stack list (old code). More... | |
| def | threads (self) |
| Get the list of threads for this process. More... | |
| def | threads (self, value) |
| Set the list of threads. More... | |
| def | get_stack_value (self, address) |
| Read a value from the stack, by using the stack list (old code). More... | |
| def | get_stack_index (self, address) |
| Calculates the index on the stack list given an address. More... | |
| def | annotate_addr_list |
| Annotates a list of addresses with some basic pointer and register information (old code). More... | |
| def | is_stack_pointer (self, addr) |
| Check if addr is a pointer to the (main) stack. More... | |
| def | is_thread_stack_pointer (self, addr) |
| Check if addr is a pointer to a thread stack. More... | |
| def | is_heap_pointer (self, addr) |
| Check if addr is a pointer to the heap. More... | |
| def | is_constant_pointer (self, addr) |
| Check if addr is a pointer to a program constant. More... | |
| def | is_program_code_pointer (self, addr) |
| Check if addr is a pointer to the program code. More... | |
| def | is_library_code_pointer (self, addr) |
| Check if addr is a pointer to library code. More... | |
| def | is_code_pointer (self, addr) |
| Check if addr is a pointer to an executable section of memory. More... | |
| def | is_data_pointer (self, addr) |
| Check if addr points to data (not code) More... | |
| def | is_pointer |
| Check if addr is any sort of pointer. More... | |
| def | get_map_by_name |
| Find a memory mapping (vm_area) by its name (not exact match). More... | |
| def | get_unique_data_pointers (self) |
| A filter over get_data_pointers() to get only unique values. More... | |
| def | get_unique_pointers |
| Filter an iterator to only return unique values. More... | |
| def | get_data_pointers (self) |
| Calls get_pointers with self.is_data_pointer as a filter. More... | |
| def | get_pointers |
| Finds pointers given a condition and a space. More... | |
| def | get_data_pointers_from_heap (self) |
| Find data pointers on the heap, very slow. More... | |
| def | get_data_pointers_from_map (self, m) |
| Find data pointers from a specific mapping, very slow. More... | |
| def | get_data_pointers_from_threads (self) |
| Find data pointers from all threads. More... | |
| def | get_pointers_from_stack (self) |
| Find pointers on the main stack. More... | |
| def | get_pointer_type (self, addr) |
| Determine the pointer type for a specific address. More... | |
| def | annotated_stack (self) |
| Uses annotate_addr_list() to annotate the stack. More... | |
Public Attributes | |
| task | |
| mm | |
| mm_brk | |
| obj.CType is really slow (getattr), so we do this | |
| mm_end_code | |
| mm_end_data | |
| mm_env_end | |
| mm_start_brk | |
| mm_start_code | |
| mm_start_data | |
| proc_as | |
| kernel_as | |
| env | |
| rest_stack | |
| args | |
| vm_stack_low | |
| vm_stack_high | |
| stack_frames | |
| thread_stacks | |
| thread_stack_ranges | |
| is_pointer_dict | |
| thread_registers | |
A class to collect various information about a process/task.
Includes helper functions to detect pointers.
| def volatility.plugins.linux.process_info.process_info.annotate_addr_list | ( | self, | |
| l, | |||
offset = None, |
|||
skip_zero = True |
|||
| ) |
Annotates a list of addresses with some basic pointer and register information (old code).
| l | list of addresses. |
| offset | Offset of the list |
| skip_zero |
| def volatility.plugins.linux.process_info.process_info.annotated_stack | ( | self | ) |
Uses annotate_addr_list() to annotate the stack.
| def volatility.plugins.linux.process_info.process_info.get_data_pointers | ( | self | ) |
Calls get_pointers with self.is_data_pointer as a filter.
| def volatility.plugins.linux.process_info.process_info.get_data_pointers_from_heap | ( | self | ) |
Find data pointers on the heap, very slow.
| def volatility.plugins.linux.process_info.process_info.get_data_pointers_from_map | ( | self, | |
| m | |||
| ) |
Find data pointers from a specific mapping, very slow.
| m | The vm_area map |
| def volatility.plugins.linux.process_info.process_info.get_data_pointers_from_threads | ( | self | ) |
Find data pointers from all threads.
| def volatility.plugins.linux.process_info.process_info.get_map_by_name | ( | self, | |
| name, | |||
permissions = 'r-x' |
|||
| ) |
Find a memory mapping (vm_area) by its name (not exact match).
Optionally, check permissions.
| name | The mapped name to find. |
| permissions | Permissions in 'rwx' format |
| def volatility.plugins.linux.process_info.process_info.get_pointer_type | ( | self, | |
| addr | |||
| ) |
Determine the pointer type for a specific address.
| addr | An address. |
| def volatility.plugins.linux.process_info.process_info.get_pointers | ( | self, | |
cond = None, |
|||
space = None |
|||
| ) |
Finds pointers given a condition and a space.
(old code)
| cond | The type of pointer to filter, defaults to self.is_pointer |
| space | The list of values to use, defaults to self.stack |
| def volatility.plugins.linux.process_info.process_info.get_pointers_from_stack | ( | self | ) |
Find pointers on the main stack.
| def volatility.plugins.linux.process_info.process_info.get_stack_index | ( | self, | |
| address | |||
| ) |
Calculates the index on the stack list given an address.
| address | The address to find |
| def volatility.plugins.linux.process_info.process_info.get_stack_value | ( | self, | |
| address | |||
| ) |
Read a value from the stack, by using the stack list (old code).
| address | The address to read. |
| def volatility.plugins.linux.process_info.process_info.get_unique_data_pointers | ( | self | ) |
A filter over get_data_pointers() to get only unique values.
| def volatility.plugins.linux.process_info.process_info.get_unique_pointers | ( | self, | |
pointer_iter = None |
|||
| ) |
Filter an iterator to only return unique values.
| pointer_iter | The pointer iterator to use. If None, use get_pointers(). |
| def volatility.plugins.linux.process_info.process_info.is_code_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr is a pointer to an executable section of memory.
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.is_constant_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr is a pointer to a program constant.
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.is_data_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr points to data (not code)
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.is_heap_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr is a pointer to the heap.
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.is_library_code_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr is a pointer to library code.
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.is_pointer | ( | self, | |
| addr, | |||
space = None |
|||
| ) |
Check if addr is any sort of pointer.
| addr | An address |
| space | A choice of stack, heap, etc |
| def volatility.plugins.linux.process_info.process_info.is_program_code_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr is a pointer to the program code.
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.is_stack_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr is a pointer to the (main) stack.
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.is_thread_stack_pointer | ( | self, | |
| addr | |||
| ) |
Check if addr is a pointer to a thread stack.
FIXME: enable checking a specific stack.
| addr | An address |
| def volatility.plugins.linux.process_info.process_info.maps | ( | self | ) |
| def volatility.plugins.linux.process_info.process_info.maps | ( | self, | |
| value | |||
| ) |
Setter for maps.
Also initializes some other values.
| value | The list of vm_area maps |
| def volatility.plugins.linux.process_info.process_info.reg | ( | self | ) |
| def volatility.plugins.linux.process_info.process_info.reg | ( | self, | |
| value | |||
| ) |
Setter for reg.
| value | The named tuple for registers. |
| def volatility.plugins.linux.process_info.process_info.stack | ( | self | ) |
Get the list of stack values (old code).
| def volatility.plugins.linux.process_info.process_info.stack | ( | self, | |
| value | |||
| ) |
Set the stack list (old code).
| value | a list of integers. |
| def volatility.plugins.linux.process_info.process_info.threads | ( | self | ) |
Get the list of threads for this process.
| def volatility.plugins.linux.process_info.process_info.threads | ( | self, | |
| value | |||
| ) |
Set the list of threads.
Initializes the list of register tuples for these threads.
| value | The list of task_structs. |