def loadProfile(self):
        if self.ui.listProfiles.currentItem() is None:
            self.notifyStatus({
                'statuscode': 1,
                'message': 'No profile selected'
            })
            return

        profile = VBProfile.load(self.ui.listProfiles.currentItem().text())
        if type(profile) is not VBProfile:
            self.notifyStatus(profile)
            return

        cfg = profile.config
        self.ui.editProfileName.setText(cfg['Name'])
        self.ui.editAPIKey.setText(cfg['APIKey'])
        self.ui.editHighlightCaption.setText(cfg['HighlightCaption'])        
        self.ui.btnHighlightColorChooser.setStyleSheet(cfg['HighlightColor'])
        self.ui.boxThreshold.setValue(cfg['Threshold'])
        self.ui.checkUpperHalf.setCheckState(QtCore.Qt.CheckState.Checked if cfg['Upperhalf']
                                             else QtCore.Qt.CheckState.Unchecked)

        self.ui.checkNoLibProc.setCheckState(QtCore.Qt.CheckState.Checked if cfg['NoLibProc']
                                             else QtCore.Qt.CheckState.Unchecked)
        self.ui.editServerPort.setText(cfg['serverPort'])
        VBAPI.setAPIPort(cfg['serverPort'])
        self.notifyStatus({
            'statuscode': 0,
            'message': 'Profile loaded successfully'
        })
        self.cleanCaches()
Example #2
0
    def loadProfile(self):
        if self.ui.listProfiles.currentItem() is None:
            self.notifyStatus({
                'statuscode': 1,
                'message': 'No profile selected'
            })
            return

        profile = VBProfile.load(self.ui.listProfiles.currentItem().text())
        if type(profile) is not VBProfile:
            self.notifyStatus(profile)
            return

        cfg = profile.config
        self.ui.editProfileName.setText(cfg['Name'])
        self.ui.editAPIKey.setText(cfg['APIKey'])
        self.ui.editHighlightCaption.setText(cfg['HighlightCaption'])
        self.ui.btnHighlightColorChooser.setStyleSheet(cfg['HighlightColor'])
        self.ui.boxThreshold.setValue(cfg['Threshold'])
        self.ui.checkUpperHalf.setCheckState(
            QtCore.Qt.CheckState.Checked if cfg['Upperhalf'] else QtCore.Qt.
            CheckState.Unchecked)

        self.ui.checkNoLibProc.setCheckState(
            QtCore.Qt.CheckState.Checked if cfg['NoLibProc'] else QtCore.Qt.
            CheckState.Unchecked)
        self.ui.editServerPort.setText(cfg['serverPort'])
        VBAPI.setAPIPort(cfg['serverPort'])
        self.notifyStatus({
            'statuscode': 0,
            'message': 'Profile loaded successfully'
        })
        self.cleanCaches()
    def tryRun(self):
        """Try to run the configured command and in case of Exception return
        Exception message as a result
        
        Returns:
            TYPE: Dict
        """
        try:
            if self.command == 'register':
                result = VBAPI.register(self.args[0], self.args[1])                
            elif self.command == 'download':
                if len(self.args) > 3:
                    result = VBAPI.download(
                        self.args[0], self.args[1], self.args[2], self.args[3])
                else:
                    result = VBAPI.download(
                        self.args[0], self.args[1], self.args[2])            
            elif self.command == 'query':
                if len(self.args) > 1:
                    result = VBAPI.query(self.args[0], self.args[1])
                else:
                    result = VBAPI.query(self.args[0])            
            elif self.command == 'searchProcs':
                if len(self.args) > 3:
                    result = VBAPI.searchProcs(
                        self.args[0], self.args[1], self.args[2], self.args[3])
                elif len(self.args) == 3:
                    result = VBAPI.searchProcs(
                        self.args[0], self.args[1], self.args[2])
                else:
                    result = VBAPI.searchProcs(self.args[0], self.args[1])            
            elif self.command == 'searchBins':
                if len(self.args) > 3:
                    result = VBAPI.searchBins(
                        self.args[0], self.args[1], self.args[2], self.args[3])
                elif len(self.args) == 3:
                    result = VBAPI.searchBins(
                        self.args[0], self.args[1], self.args[2])
                else:
                    result = VBAPI.searchBins(self.args[0], self.args[1])            
            elif self.command == 'showProc':
                if len(self.args) > 3:
                    result = VBAPI.showProc(
                        self.args[0], self.args[1], self.args[2], self.args[3])
                else:
                    result = VBAPI.showProc(
                        self.args[0], self.args[1], self.args[2])            
            elif self.command == 'showBin':
                if len(self.args) > 2:
                    result = VBAPI.showBin(
                        self.args[0], self.args[1], self.args[2])
                else:
                    result = VBAPI.showBin(self.args[0], self.args[1])            
            elif self.command == 'upload':
                if len(self.args) > 4:
                    result = VBAPI.upload(
                        self.args[0], self.args[1], self.args[2], self.args[3], self.args[4])
                elif len(self.args) == 4:
                    result = VBAPI.upload(
                        self.args[0], self.args[1], self.args[2], self.args[3])
                elif len(self.args) == 3:
                    result = VBAPI.upload(
                        self.args[0], self.args[1], self.args[2])
                else:
                    result = VBAPI.upload(self.args[0], self.args[1])            
            elif self.command == 'reprocess':
                if len(self.args) > 2:
                    result = VBAPI.reprocess(
                        self.args[0], self.args[1], self.args[2])
                else:
                    result = VBAPI.reprocess(self.args[0], self.args[1])            
            elif self.command == 'avscans':
                if len(self.args) > 1:
                    result = VBAPI.avscans(self.args[0], self.args[1])
            elif self.command == 'behaviors':
                if len(self.args) > 1:
                    result = VBAPI.behaviors(self.args[0], self.args[1])
            elif self.command == 'pedata':
                if len(self.args) > 1:
                    result = VBAPI.pedata(self.args[0], self.args[1])

        except Exception as e:
            result = {
                'statuscode': 1,
                'message': e.message
            }

        return result