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