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
droidlysis — Outil d'analyse préliminaire automatisé pour applications Android qui désassemble les échantillons, extrait les propriétés via une correspondance de motifs configurable, et organise la sortie pour accélérer le rétro-ingénierie et l'analyse de malwares. | Kitploit
Outils/GitHubGitHub/cryptax/droidlysis
Sécurité AndroidAnalyse StatiqueRétro-ingénierieCollecte d'InformationsAnalyse de MalwareSécurité Mobile
GitHubcryptax/droidlysis

droidlysis

Outil d'analyse préliminaire automatisé pour applications Android qui désassemble les échantillons, extrait les propriétés via une correspondance de motifs configurable, et organise la sortie pour accélérer le rétro-ingénierie et l'analyse de malwares.

Voir le dépôt
31149il y a 10 joursVé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

DroidLysis

DroidLysis est un outil de pré-analyse pour les applications Android : il effectue les tâches répétitives et fastidieuses que nous ferions généralement au début de tout rétro-ingénierie. Il désassemble l'échantillon Android, organise la sortie dans des répertoires, et recherche les points suspects dans le code à examiner. La sortie aide le rétro-ingénieur à accélérer les premières étapes de l'analyse.

DroidLysis peut être utilisé sur des packages Android (apk), des exécutables Dalvik (dex), des fichiers Zip (zip), des fichiers Rar (rar) ou des répertoires de fichiers.

Installation de DroidLysis

  1. Installer les paquets système requis
root@kitploit:~
sudo apt-get install default-jre git python3 python3-pip unzip wget libmagic-dev libxml2-dev libxslt-dev
  1. Installer les outils de désassemblage Android
  • Apktool,
  • Baksmali, et optionnellement
  • Dex2jar et
root@kitploit:~
$ mkdir -p ~/softs
$ cd ~/softs
$ wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar
$ wget https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.5.2.jar
$ wget https://github.com/pxb1988/dex2jar/releases/download/v2.4/dex-tools-v2.4.zip
$ unzip dex-tools-v2.4.zip 
$ rm -f dex-tools-v2.4.zip 
  1. Obtenir DroidLysis depuis le dépôt Git (recommandé) ou via pip

Installer depuis Git dans un environnement virtuel Python (python3 -m venv, ou environnements virtuels pyenv etc).

root@kitploit:~
$ python3 -m venv venv
$ source ./venv/bin/activate
(venv) $ pip3 install git+https://github.com/cryptax/droidlysis

Alternativement, vous pouvez installer DroidLysis directement depuis PyPi (pip3 install droidlysis).

  1. Configurez conf/general.conf. Assurez-vous notamment de changer /home/axelle par vos propres répertoires appropriés.
root@kitploit:~
[tools]
apktool = /home/axelle/softs/apktool_2.9.3.jar
baksmali = /home/axelle/softs/baksmali-2.5.2.jar
dex2jar = /home/axelle/softs/dex-tools-v2.4/d2j-dex2jar.sh
keytool = /usr/bin/keytool
...
  1. Lancez-le :
root@kitploit:~
python3 ./droidlysis3.py --help

Configuration

Le fichier de configuration est ./conf/general.conf (vous pouvez passer à un autre fichier avec l'option --config). C'est ici que vous configurez l'emplacement des divers outils externes (par ex. Apktool), le nom des fichiers de motifs (par défaut ./conf/smali.conf, ./conf/wide.conf, ./conf/arm.conf, ./conf/kit.conf) et le nom du fichier de base de données (uniquement utilisé si vous spécifiez --enable-sql)

Assurez-vous de spécifier les chemins corrects pour les outils de désassemblage, sinon DroidLysis ne les trouvera pas.

Utilisation

DroidLysis utilise Python 3. Pour le lancer et obtenir les options :

root@kitploit:~
droidlysis --help

Par exemple, testez-le sur l'APK de Signal :

root@kitploit:~
droidlysis --input Signal-website-universal-release-6.26.3.apk --output /tmp --config /PATH/TO/DROIDLYSIS/conf/general.conf

DroidLysis produit :

  • Un résumé sur la console (voir image ci-dessus)
  • L'échantillon décompressé et prétraité dans un sous-répertoire de votre répertoire de sortie. Le sous-répertoire est nommé en utilisant le nom de fichier de l'échantillon et la somme sha256. Par exemple, si nous analysons l'application Signal et définissons --output /tmp, l'analyse sera écrite dans /tmp/Signalwebsiteuniversalrelease4.52.4.apk-f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290.
  • Une base de données (par défaut, SQLite droidlysis.db) contenant les propriétés qu'il a remarquées.

Options

Obtenez l'utilisation avec droidlysis --help

  • L'entrée peut être un fichier ou un répertoire de fichiers à analyser récursivement. DroidLysis sait traiter les packages Android, les exécutables DEX, ODEX et ARM, ZIP, RAR. DroidLysis ne plantera pas sur d'autres types de fichiers (sauf s'il y a un bug...) mais ne pourra pas comprendre le contenu.

  • Lors du traitement de répertoires de fichiers, il est généralement très utile de déplacer les échantillons traités vers un autre emplacement pour savoir ce qui a été traité. Cela est géré par l'option --movein. De plus, si vous êtes seulement intéressé par les statistiques, vous devriez probablement vider le répertoire de sortie qui contient des informations détaillées pour chaque échantillon : c'est l'option --clearoutput. Si vous souhaitez stocker toutes les statistiques dans une base de données SQL, utilisez --enable-sql (voir ici)

  • L'analyse de DroidLysis n'inspecte pas les SDK tiers connus par défaut, c'est-à-dire par exemple qu'il ne signalera aucune activité suspecte de leur part. Si vous souhaitez qu'ils soient inspectés, utilisez l'option --no-kit-exception. Cela crée généralement beaucoup plus de propriétés détectées pour l'échantillon, car les SDK (par ex. publicitaires) utilisent beaucoup d'API signalées (obtenir la position GPS, obtenir l'IMEI, obtenir l'IMSI, HTTP POST...).

Répertoire de sortie de l'échantillon (--output DIR)

Ce répertoire contient (le cas échéant) :

  • Un AndroidManifest.xml lisible
  • Des ressources lisibles dans res
  • Bibliothèques lib, ressources assets
  • Code Smali désassemblé : smali (et autres)
  • Informations de métadonnées du package : META-INF
  • Contenu du package simplement décompressé dans ./unzipped
  • Exécutable DEX classes.dex (et autres), et converti en jar : classes-dex2jar.jar, et décompressé dans ./unjarred

Les fichiers suivants sont générés par DroidLysis :

  • autoanalysis.md : liste chaque motif détecté par DroidLysis et où.
  • report.md : identique à ce qui a été affiché sur la console

Si vous n'avez pas besoin que le répertoire de sortie de l'échantillon soit généré, utilisez l'option --clearoutput.

Importer des traqueurs depuis Exodus etc (--import-exodus)

root@kitploit:~
$ python3 ./droidlysis3.py --import-exodus --verbose
Processing file: ./droidurl.pyc ...
DEBUG:droidconfig.py:Reading configuration file: './conf/./smali.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./wide.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./arm.conf'
DEBUG:droidconfig.py:Reading configuration file: '/home/axelle/.cache/droidlysis/./kit.conf'
DEBUG:droidproperties.py:Importing ETIP Exodus trackers from https://etip.exodus-privacy.eu.org/api/trackers/?format=json
DEBUG:connectionpool.py:Starting new HTTPS connection (1): etip.exodus-privacy.eu.org:443
DEBUG:connectionpool.py:https://etip.exodus-privacy.eu.org:443 "GET /api/trackers/?format=json HTTP/1.1" 200 None
DEBUG:droidproperties.py:Appending imported trackers to /home/axelle/.cache/droidlysis/./kit.conf

Les traqueurs d'Exodus qui ne sont pas présents dans votre kit.conf initial sont ajoutés à ~/.cache/droidlysis/kit.conf. Comparez les 2 fichiers et vérifiez quels traqueurs vous souhaitez ajouter.

Base de données SQLite{#sqlite_database}

Si vous souhaitez traiter un répertoire d'échantillons, vous voudrez probablement stocker les propriétés trouvées par DroidLysis dans une base de données, pour analyser et interroger facilement les résultats. Dans ce cas, utilisez l'option --enable-sql. Cela déversera automatiquement tous les résultats dans une base de données nommée droidlysis.db, dans une table nommée samples. Chaque entrée de la table correspond à un échantillon donné. Chaque colonne correspond aux propriétés que DroidLysis suit.

Par exemple, pour récupérer tous les noms de fichier, sommes SHA256 et propriétés smali de la base de données :

root@kitploit:~
sqlite> select sha256, sanitized_basename, smali_properties from samples;
f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290|Signalwebsiteuniversalrelease4.52.4.apk|{"send_sms": true, "receive_sms": true, "abort_broadcast": true, "call": false, "email": false, "answer_call": false, "end_call": true, "phone_number": false, "intent_chooser": true, "get_accounts": true, "contacts": false, "get_imei": true, "get_external_storage_stage": false, "get_imsi": false, "get_network_operator": false, "get_active_network_info": false, "get_line_number": true, "get_sim_country_iso": true,
...

Motifs de propriétés

Ce que DroidLysis détecte peut être configuré et étendu dans les fichiers du répertoire ./conf.

Un motif se compose de :

  • un nom de balise : exemple send_sms. Cela permet de nommer la propriété. Doit être unique dans le fichier .conf.
  • un motif : c'est une expression régulière à faire correspondre. Ex: ;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage. Dans le fichier smali.conf, cette regexp est appliquée sur le code Smali. Dans ce cas particulier, il y a 3 façons différentes d'envoyer des messages SMS depuis le code : sendTextMessage, sendMultipartTextMessage et sendDataMessage.
  • une description (optionnelle) : explique l'importance de la propriété et ce qu'elle signifie.
root@kitploit:~
[send_sms]
pattern=;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage
description=Sending SMS messages

Importer les traqueurs Exodus Privacy

Exodus Privacy maintient une liste de divers SDK qu'il est intéressant d'exclure de notre analyse via conf/kit.conf. Ajoutez l'option --import_exodus à la ligne de commande droidlysis : cela analysera les traqueurs existants qu'Exodus Privacy connaît et qui ne sont pas encore dans votre kit.conf. Enfin, il ajoutera tous les nouveaux traqueurs à ~/.cache/droidlysis/kit.conf.

Ensuite, vous voudrez peut-être trier votre fichier kit.conf :

root@kitploit:~
import configparser
import collections
import os

config = configparser.ConfigParser({}, collections.OrderedDict)
config.read(os.path.expanduser('~/.cache/droidlysis/kit.conf'))
# Order all sections alphabetically
config._sections = collections.OrderedDict(sorted(config._sections.items(), key=lambda t: t[0] ))
with open('sorted.conf','w') as f:
    config.write(f)

Script JEB pour les propriétés smali

Ce script vous aide à rechercher des méthodes dans l'interface JEB qui contiennent du code correspondant au motif smali et à naviguer facilement vers ces fonctions. Lorsque vous chargez le script et sélectionnez le fichier details.md parmi les fichiers d'analyse droidlysis, une boîte de recherche apparaîtra. Une fois déplacée, vous pouvez facilement rappeler les fenêtres de recherche en utilisant le raccourci d'exécution de script récent.

  • JEB > File > Scripts > Script selector > script/DroidlysisSearch.py
  • JEB > File > Scripts > Run last Script

Mises à jour

  • v3.4.7 - Suppression de Procyon, intégration de plusieurs PR #24 et #25, ajout d'une détection plus détaillée des abus d'accessibilité
  • v3.4.6 - Détection de la fonctionnalité de manifeste qui charge automatiquement l'APK à l'installation
  • v3.4.5 - Création d'un fichier kit.conf utilisateur inscriptible
  • v3.4.4 - Correction de bug #14
  • v3.4.3 - Utilisation de fichiers de configuration
  • v3.4.2 - Ajout de l'import des traqueurs Exodus Privacy
  • v3.4.1 - Suppression de la dépendance à Androguard
  • v3.4.0 - Support Multidex
  • v3.3.1 - Amélioration de la détection des chaînes Base64
  • v3.3.0 - Export des données en JSON
  • v3.2.1 - Détection d'adresses IP
  • v3.2.0 - Dex2jar est optionnel
  • v3.1.0 - Détection des chaînes Base64
Télécharger l’outil