
Deimpacchettamento statico di malware bancari Android comuni.
Kavanoz (barattolo in turco) è uno strumento per l'unpacking statico dei malware bancari Android più comuni. Hai mai voluto ottenere il payload da un malware impacchettato senza eseguire un emulatore Android? Nemmeno io :) Ma comunque ecco uno strumento.

pip install kavanoz
Per installare dalla sorgente, clona il repository ed esegui un'installazione modificabile con -e. Ciò significa che se modifichi o aggiungi nuovi plugin al progetto, verranno usati senza dover reinstallare.
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .
dalla riga di comando
kavanoz /tmp/filepath
Puoi usare il parametro -vvv per stampare log dettagliati. (utile per il debug dei plugin)
come libreria Python
from kavanoz.core import Kavanoz
from kavanoz import utils
utils.set_log("DEBUG")
k = Kavanoz(apk_path="tests/test_apk/coper.apk")
for plugin_result in k.get_plugin_results():
if plugin_result["status"] == "success":
print("Unpacked")
print(plugin_result)
break
Assicurati di installare kavanoz in modalità modificabile (con -e). Per aggiungere nuovi plugin crea semplicemente un nuovo file nella cartella loader. Estendi la classe Unpacker dal file unpack_plugin.py. Definisci la funzione start_decrypt con la tua implementazione.
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):
Aggiungi la seguente funzione per uscire anticipatamente dal plugin.
def lazy_check(self,apk_object:APK, dexes: "list[DEX]"):
Se l'estrazione ha successo, assegna a self.decrypted_payload_path il percorso del file estratto. Puoi usare le funzioni helper della classe unpacker:
Assicurati di eseguire python -m unittest prima di aprire una PR. Per ottenere i file apk di test, usa il comando git lfs pull.
dex.get_class(smali_annotation_of_class).self.apk_object.get_files()application = self.apk_object.get_attribute_value("application", "name") per ottenere la classe Application definita nel file manifest.apkdetect.com per i campioni unici con cui lavorare.