
Dépaquetage statique des malwares bancaires Android courants.
Kavanoz (bocal en turc) est un outil pour dépaqueter statiquement les malwares bancaires Android courants. Avez-vous déjà voulu récupérer la charge utile d'un malware packé sans exécuter d'émulateur Android ? Moi non plus :) Mais voici un outil quand même.

pip install kavanoz
Pour installer à partir des sources, clonez le dépôt et effectuez une installation éditable avec -e. Cela signifie que si vous modifiez ou ajoutez de nouveaux plugins au projet, ils seront utilisés sans réinstallation.
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .
à partir de la ligne de commande
kavanoz /tmp/filepath
Vous pouvez utiliser le paramètre -vvv pour afficher des journaux verbeux. (utile pour déboguer les plugins)
comme bibliothèque 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
Assurez-vous d'installer kavanoz en mode éditable (avec -e). Pour ajouter de nouveaux plugins, créez simplement un nouveau fichier dans le dossier loader. Étendez la classe Unpacker du fichier unpack_plugin.py. Définissez la fonction start_decrypt avec votre implémentation.
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):
Ajoutez la fonction suivante pour permettre une sortie anticipée du plugin.
def lazy_check(self,apk_object:APK, dexes: "list[DEX]"):
Si l'extraction réussit, affectez self.decrypted_payload_path avec le chemin du fichier extrait. Vous pouvez utiliser les fonctions d'aide de la classe Unpacker :
Assurez-vous d'exécuter python -m unittest avant d'ouvrir une PR. Pour obtenir les fichiers APK de test, utilisez la commande git lfs pull.
dex.get_class(smali_annotation_of_class).self.apk_object.get_files().application = self.apk_object.get_attribute_value("application", "name") pour obtenir la classe d'application définie dans le fichier manifeste.apkdetect.com pour des échantillons uniques avec lesquels travailler.