From 90ed349212cf18b8bf71c91d896af6345e4e282f Mon Sep 17 00:00:00 2001 From: Ajin Abraham Date: Thu, 5 Aug 2021 15:00:19 -0700 Subject: [PATCH] HOTFIX: #1774 --- mobsf/MalwareAnalyzer/views/quark.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/mobsf/MalwareAnalyzer/views/quark.py b/mobsf/MalwareAnalyzer/views/quark.py index ecfa3c45..c37858a4 100644 --- a/mobsf/MalwareAnalyzer/views/quark.py +++ b/mobsf/MalwareAnalyzer/views/quark.py @@ -10,15 +10,15 @@ logger = logging.getLogger(__name__) def quark_analysis(app_dir, apk_file): """QUARK Analysis of APK files.""" if not getattr(settings, 'QUARK_ENABLED', True): - return {} + return [] try: import quark except ImportError: logger.error('Failed to import Quark') - return {} + return [] if not Path(apk_file).exists(): logger.error('APK not found') - return {} + return [] quark_ver = quark.__version__ @@ -28,6 +28,7 @@ def quark_analysis(app_dir, apk_file): from quark.Objects.quarkrule import QuarkRule logger.info('Running Quark %s', quark_ver) + json_report = {} try: # freshquark: update quark rules download() @@ -59,13 +60,15 @@ def quark_analysis(app_dir, apk_file): except Exception: logger.exception('Quark APK Analysis') - - return _convert_report(json_report['crimes'], app_dir) + return _convert_report(json_report, app_dir) def _convert_report(origin_report, app_dir): new_report = [] - for crime in origin_report: + if not origin_report or not origin_report.get('crimes'): + logger.warning('Skipping Quark Analysis') + return new_report + for crime in origin_report.get('crimes'): if not crime['confidence'] == '100%': continue