lib.cuckoo.core.scheduler.AnalysisManager

Package lib :: Package cuckoo :: Package core :: Module scheduler :: Class AnalysisManager |
[hide private]
[frames] | no frames]

# Class AnalysisManager

source code

            object --+
                     |
    threading._Verbose --+
                         |
          threading.Thread --+
                             |
                            AnalysisManager

Analysis Manager.

This class handles the full analysis process for a given task. It takes care of selecting the analysis machine, preparing the configuration and interacting with the guest agent and analyzer components to launch and complete the analysis and store, process and report its results.

Instance Methods | [hide private]
__init__(self, task_id, error_queue) This constructor should always be called with keyword arguments. | source code
init_storage(self) Initialize analysis storage folder. | source code
check_permissions(self) Checks if we have permissions to access the file to be analyzed. | source code
check_file(self) Checks the integrity of the file to be analyzed. | source code
store_file(self) Store a copy of the file being analyzed. | source code
store_task_info(self) grab latest task from db (if available) and update self.task | source code
acquire_machine(self) Acquire an analysis machine from the pool of available ones. | source code
build_options(self) Generate analysis options. | source code
route_network(self) Enable network routing if desired. | source code
unroute_network(self) | source code
wait_finish(self) Some VMs don't have an actual agent. | source code
guest_manage(self, options) | source code
launch_analysis(self) Start analysis. | source code
process_results(self) Process the analysis results and generate the enabled reports. | source code
run(self) Run manager thread. | source code
Inherited from `threading.Thread`: `__repr__`, `daemon`, `getName`, `ident`, `isAlive`, `isDaemon`, `is_alive`, `join`, `name`, `setDaemon`, `setName`, `start` Inherited from `threading.Thread` (private): `_block`, `_reset_internal_locks`, `_set_daemon`, `_set_ident` Inherited from `threading._Verbose` (private): `_note` Inherited from `object`: `__delattr__`, `__format__`, `__getattribute__`, `__hash__`, `__new__`, `__reduce__`, `__reduce_ex__`, `__setattr__`, `__sizeof__`, `__str__`, `__subclasshook__`

Properties | [hide private]
Inherited from `object`: `__class__`

Method Details | [hide private]

### __init__(self, task_id, error_queue) (Constructor) | source code
This constructor should always be called with keyword arguments. Arguments are: *group* should be None; reserved for future extension when a ThreadGroup class is implemented. *target* is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called. *name* is the thread name. By default, a unique name is constructed of the form "Thread-N" where N is a small decimal number. *args* is the argument tuple for the target invocation. Defaults to (). *kwargs* is a dictionary of keyword arguments for the target invocation. Defaults to {}. If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread. Parameters: `task` - task object containing the details for the analysis. Overrides: object.__init__

### build_options(self) | source code
Generate analysis options. Returns: options dict.

### wait_finish(self) | source code
Some VMs don't have an actual agent. Mainly those that are used as assistance for an analysis through the services auxiliary module. This method just waits until the analysis is finished rather than actively trying to engage with the Cuckoo Agent.

### run(self) | source code
Run manager thread. Overrides: threading.Thread.run