This commit is contained in:
Ajin Abraham
2021-08-05 15:00:19 -07:00
parent d387211649
commit 90ed349212
+9 -6
View File
@@ -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