venerdì 4 agosto 2023

Published agosto 04, 2023 by Django Faiola with 0 comment

APK Downgrade Manuale - Parte 1

Introduzione

Oggi è sempre più difficile estrarre prove da smartphone con Android 7 o superiore e non sempre è così facile ottenere i privilegi di root per eseguire un'estrazione filesystem o meglio eseguire un'estrazione fisica decriptata del dispositivo. 

Fare un'estrazione logica con gli strumenti di backup forniti dal costruttore, Samsung Kies/Smart Switch, Huawei HiSuite, Xiaomi Mi Backup, etc. o semplicemente sfruttare il backup nativo Android via ADB può portare a un risultato che non è quello tanto "sperato", l'amato/odiato WhatsApp per esempio è escluso dal backup nativo.

Non resta che tentare di scalare le app di interesse ed eseguire il backup nativo, metodo noto come APK downgrade.

Procedura manuale del downgrade (singolo package)

Prima di procedere al downgrade manuale bisogna verificare se il dispositivo è sbloccato o quantomeno essere in possesso del PIN e/o password di sblocco, attivare le opzioni sviluppatore, nello specifico abilitare Debug USB, modificare tutte le opzioni che permettono di rendere possibile l'estrazione dei dati senza intoppi (modalità aereo, resta attivo etc.)...già fatto? vero! hai provato già gli altri metodi di estrazione.

Proviamo a scalare l'applicazione Vinted: vendi e compra vestiti utilizzando la vecchia versione 6.19.2.0 precedentemente scaricata e salvata sul computer con il nome del file "com.vinted.old.apk".

Eseguire il prompt dei comandi.

Lista dei package installati di terze parti

adb shell pm list packages -3
package:com.whatsapp
package:fr.vinted

Lista path del package fr.vinted

adb shell pm path fr.vinted
package:/data/app/fr.vinted-vui9dpo9lDF-F3aDKrvrSA==/base.apk

Copia dell'apk originale sulla workstation

adb pull -a /data/app/fr.vinted-vui9dpo9lDF-F3aDKrvrSA==/base.apk
/data/app/fr.vinted-vui9dpo9lDF-F3aDKrvrSA==/base.apk: 1 file pulled, 0 skipped. 110.4 MB/s (33533699 bytes in 0.290s)

Disinstallazione dell'app originale dal dispositivo preservando i dati dell'utente

adb shell pm uninstall -k fr.vinted
Success

Riavvio del dispositivo

adb reboot

Questo permette di bypassare il seguente messaggio di errore "Failure [INSTALL_FAILED_VERSION_DOWNGRADE]" generato quando si tenta di installare la vecchia versione senza riavviare.

Downgrade

adb push fr.vinted.old.apk /data/local/tmp/
fr.vinted.old.apk: 1 file pushed, 0 skipped. 518.3 MB/s (14644009 bytes in 0.027s)

adb shell pm install /data/local/tmp/fr.vinted.old.apk
Success

adb shell rm /data/local/tmp/fr.vinted.old.apk

Backup

adb backup -f vinted.ab -apk -obb -keyvalue fr.vinted
WARNING: adb backup is deprecated and may be removed in a future release
Now unlock your device and confirm the backup operation...

Inserire la password per esempio "1234". Il backup può essere eseguito anche (consigliato) utilizzando direttamente l'utility di backup bu.

Ripristino dell'applicazione originale

adb push base.apk /data/local/tmp/
base.apk: 1 file pushed, 0 skipped. 240.2 MB/s (33533699 bytes in 0.133s)

adb shell pm install -r /data/local/tmp/base.apk
Success
adb shell rm /data/local/tmp/base.apk

Android Backup (.ab)

Il file di backup .ab (Android Backup) è proprietario con magic numbers "ANDROID BACKUP", dati compressi con algoritmo deflate e cifrati con AES CBC se impostata la password di backup. Esistono vari tool per convertire il file .ab in .tar, uno di questi è Android Backup Extractor oppure con il tool integrato in dfAPKdngrader.

0 comments:

Posta un commento