Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
kavanoz — Dépaquetage statique des malwares bancaires Android courants. | Kitploit
Outils/GitHubGitHub/eybisi/kavanoz
Sécurité AndroidAnalyse StatiqueOutils de Chiffrement/DéchiffrementRétro-ingénierieAnalyse de MalwareSécurité MobileArchived
GitHubeybisi/kavanoz

kavanoz

Dépaquetage statique des malwares bancaires Android courants.

Voir le dépôt
159207il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

🫙 kavanoz 🫙

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.

👀 Installation

root@kitploit:~
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.

root@kitploit:~
git clone https://github.com/eybisi/kavanoz.git
cd kavanoz
pip install -e .

⚡ Usage

à partir de la ligne de commande

root@kitploit:~
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

root@kitploit:~
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

🐍 Scripts :

  • rc4.py Fichier asset chiffré RC4 générique. Le script couvre plusieurs versions.
  • old_rc4.py Autre fichier asset chiffré RC4 générique.
  • subapp.py Déchiffrement du fichier avec une clé dérivée de la variable ProtectKey du fichier Manifest.
  • multidex.py Loader de type multidex avec fichier packé décompressé. (compression zlib)
  • coper.py Extraction de la clé RC4 depuis une bibliothèque native par émulation (AndroidNativeEmu)
  • moqhao.py Émulation pour le dépaquetage de moqhau.
  • sesdex.py
  • simple_aes.py
  • simple_xor.py
  • simple_xor2.py
  • simple_xor_zlib.py
  • subapp.py Déchiffrement d'un asset avec le nom du paquet.

⚙️ Développement

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.

root@kitploit:~
def start_decrypt(self, apk_object: APK, dexes: "list[DEX]"):

Ajoutez la fonction suivante pour permettre une sortie anticipée du plugin.

root@kitploit:~
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 :

  • get_array_data
  • get_smali
  • find_method(class_name,method_name,descriptor="")
  • check_and_write_file(file_data) : vérifie que le fichier a les en-têtes dex, zip et zlib et écrit le dex dépaqueté sous le nom : "external-{m[:8]}.dex"

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.

📖 Astuces

  • self.dexes contiennent les objets dex. Vous pouvez obtenir une classe avec dex.get_class(smali_annotation_of_class).
  • Vous pouvez utiliser la fonction get_smali et lui donner l'objet de la méthode cible pour obtenir la représentation smali de la méthode cible. Appliquez ensuite des expressions régulières pour extraire des données du smali. Il y a de nombreuses expressions régulières définies dans le fichier smali_regexes.py à consulter.
  • La plupart du temps, les packers utilisent un fichier du dossier asset. Vous pouvez obtenir les fichiers avec self.apk_object.get_files().
  • La plupart du temps, les packers utilisent la classe Application pour démarrer la séquence de dépaquetage. Utilisez application = self.apk_object.get_attribute_value("application", "name") pour obtenir la classe d'application définie dans le fichier manifeste.

Remerciements :

apkdetect.com pour des échantillons uniques avec lesquels travailler.

Télécharger l’outil