diff --git a/daas/daas_app/tests/resources/9a978978b27d437be8fb6c186f71540dab5a559a.zip b/daas/daas_app/tests/resources/9a978978b27d437be8fb6c186f71540dab5a559a.zip new file mode 100644 index 00000000..f91e621b Binary files /dev/null and b/daas/daas_app/tests/resources/9a978978b27d437be8fb6c186f71540dab5a559a.zip differ diff --git a/daas/daas_app/tests/test_utils/resource_directories.py b/daas/daas_app/tests/test_utils/resource_directories.py index b5233f80..7387b448 100644 --- a/daas/daas_app/tests/test_utils/resource_directories.py +++ b/daas/daas_app/tests/test_utils/resource_directories.py @@ -10,3 +10,4 @@ ZIP_PROTECTED = '/test_resources/zip_protected_password_is_ASDF1234.zip' ZIPPED_APK_SAMPLE = '/test_resources/42e4149aef780867bda918c0c61d8ecdb620f691.zip' APK_ZIPPED_PACK = '/test_resources/apk_pack.zip' +ZIPPED_APK_PASSWORD_PROTECTED_SAMPLE = '/test_resources/9a978978b27d437be8fb6c186f71540dab5a559a.zip' diff --git a/decompilers/apk_decompiler.py b/decompilers/apk_decompiler.py index d799b32c..b2b83c0f 100644 --- a/decompilers/apk_decompiler.py +++ b/decompilers/apk_decompiler.py @@ -41,6 +41,11 @@ def unzip(self): except BadZipFile: logging.error('[APK] File is corrupt (BadZipFile). Marking as failed.') raise CorruptAPKException("APK file is corrupt and cannot be extracted as ZIP") + except RuntimeError as e: + if 'is encrypted, password required for extraction' in str(e): + logging.error('[APK] File is encrypted and requires a password. Marking as failed.') + raise CorruptAPKException("APK file is encrypted and requires a password for extraction") + raise def apk_to_java_files(self): decompiled = False