def run_analysis(self):
        """Main analysis method.

        :returns: Dictionary containing analysis results.
        """
        log.info('Dynamic Analysis started.')

        # start vm
        self._vm = QEMUGuest(self._file)
        self._vm.start_vm()

        if not self._vm.is_running:
            log.critical('Error running VM.')
            return

        self._vm.run_and_analyze(self._file.exec_time)

        self._vm.poweroff_vm()

        self._vm.extract_output()

        self._analyze_behavior(f'{self._file.data_dir}/behav.out')

        log.info('Dynamic Analysis finished.')

        self._output['syscalls'] = self._syscalls
        self._output['open_files'] = self._files
        self._output['processes'] = self._processes

        return self._output
Main analysis method.

        :returns: Dictionary containing analysis results.
        
lisa/analysis/dynamic_analysis.py