Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
droidlysis — Strumento di pre-analisi automatizzato per app Android che disassembla campioni, estrae proprietà tramite pattern matching configurabile e organizza l'output per accelerare l'analisi della reverse engineering e del malware. | Kitploit
Strumenti/GitHubGitHub/cryptax/droidlysis
Sicurezza AndroidAnalisi StaticaReverse EngineeringRaccolta InformazioniAnalisi MalwareSicurezza Mobile
GitHubcryptax/droidlysis

droidlysis

Strumento di pre-analisi automatizzato per app Android che disassembla campioni, estrae proprietà tramite pattern matching configurabile e organizza l'output per accelerare l'analisi della reverse engineering e del malware.

Vedi Repository
3114910 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

DroidLysis

DroidLysis è uno strumento di pre-analisi per app Android: esegue attività ripetitive e noiose che tipicamente faremmo all'inizio di qualsiasi reverse engineering. Disassembla il campione Android, organizza l'output in directory e cerca punti sospetti nel codice da esaminare. L'output aiuta il reverse engineer ad accelerare i primi passi dell'analisi.

DroidLysis può essere utilizzato su pacchetti Android (apk), eseguibili Dalvik (dex), file Zip (zip), file Rar (rar) o directory di file.

Installare DroidLysis

  1. Installare i pacchetti di sistema richiesti
root@kitploit:~
sudo apt-get install default-jre git python3 python3-pip unzip wget libmagic-dev libxml2-dev libxslt-dev
  1. Installare gli strumenti di disassemblaggio Android
  • Apktool ,
  • Baksmali, e opzionalmente
  • Dex2jar e
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. Ottenere DroidLysis dal repository Git (preferito) o da pip

Installare da Git in un ambiente virtuale Python (python3 -m venv, o ambienti virtuali pyenv ecc.).

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

In alternativa, puoi installare DroidLysis direttamente da PyPi (pip3 install droidlysis).

  1. Configurare conf/general.conf. In particolare assicurati di modificare /home/axelle con le tue directory appropriate.
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. Eseguirlo:
root@kitploit:~
python3 ./droidlysis3.py --help

Configurazione

Il file di configurazione è ./conf/general.conf (puoi passare a un altro file con l'opzione --config). Qui si configura la posizione dei vari strumenti esterni (es. Apktool), il nome dei file di pattern (per impostazione predefinita ./conf/smali.conf, ./conf/wide.conf, ./conf/arm.conf, ./conf/kit.conf) e il nome del file di database (usato solo se si specifica --enable-sql)

Assicurati di specificare i percorsi corretti per gli strumenti di disassemblaggio, altrimenti DroidLysis non li troverà.

Utilizzo

DroidLysis utilizza Python 3. Per avviarlo e ottenere le opzioni:

root@kitploit:~
droidlysis --help

Ad esempio, testalo sull'APK di Signal:

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

DroidLysis produce:

  • Un riepilogo sulla console (vedi immagine sopra)
  • Il campione decompresso e pre-elaborato in una sottodirectory della directory di output. La sottodirectory è denominata utilizzando il nome del file del campione e la somma sha256. Ad esempio, se analizziamo l'applicazione Signal e impostiamo --output /tmp, l'analisi verrà scritta in /tmp/Signalwebsiteuniversalrelease4.52.4.apk-f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290.
  • Un database (per impostazione predefinita, SQLite droidlysis.db) contenente le proprietà rilevate.

Opzioni

Ottieni l'uso con droidlysis --help

  • L'input può essere un file o una directory di file da esaminare ricorsivamente. DroidLysis sa come elaborare pacchetti Android, eseguibili DEX, ODEX e ARM, ZIP, RAR. DroidLysis non fallirà su altri tipi di file (a meno che non ci sia un bug...) ma non sarà in grado di comprendere il contenuto.

  • Quando si elaborano directory di file, è tipicamente molto utile spostare i campioni elaborati in un'altra posizione per sapere cosa è stato elaborato. Questo è gestito dall'opzione --movein. Inoltre, se sei interessato solo alle statistiche, dovresti probabilmente pulire la directory di output che contiene informazioni dettagliate per ogni campione: questa è l'opzione --clearoutput. Se desideri memorizzare tutte le statistiche in un database SQL, usa --enable-sql (vedi qui)

  • L'analisi di DroidLysis non ispeziona gli SDK di terze parti noti per impostazione predefinita, cioè per esempio non segnalerà alcuna attività sospetta da questi. Se vuoi che vengano ispezionati, usa l'opzione --no-kit-exception. Questo di solito crea molte più proprietà rilevate per il campione, poiché gli SDK (ad es. pubblicitari) utilizzano molte API segnalate (ottenere posizione GPS, ottenere IMEI, ottenere IMSI, HTTP POST...).

Directory di output del campione (--output DIR)

Questa directory contiene (quando applicabile):

  • Un AndroidManifest.xml leggibile
  • Risorse leggibili in res
  • Librerie lib, risorse assets
  • Codice Smali disassemblato: smali (e altri)
  • Metadati del pacchetto: META-INF
  • Contenuto del pacchetto semplicemente decompresso in ./unzipped
  • Eseguibile DEX classes.dex (e altri), e convertito in jar: classes-dex2jar.jar, e decompresso in ./unjarred

I seguenti file sono generati da DroidLysis:

  • autoanalysis.md: elenca ogni pattern rilevato da DroidLysis e dove.
  • report.md: lo stesso di quanto stampato sulla console

Se non hai bisogno che la directory di output del campione venga generata, usa l'opzione --clearoutput.

Importare tracker da Exodus ecc (--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

I tracker da Exodus che non sono presenti nel tuo kit.conf iniziale vengono aggiunti a ~/.cache/droidlysis/kit.conf. Confronta i 2 file e controlla quali tracker desideri aggiungere.

Database SQLite{#database_sqlite}

Se desideri elaborare una directory di campioni, probabilmente ti piacerà memorizzare le proprietà trovate da DroidLysis in un database, per analizzare e interrogare facilmente i risultati. In tal caso, usa l'opzione --enable-sql. Questo scaricherà automaticamente tutti i risultati in un database denominato droidlysis.db, in una tabella chiamata samples. Ogni voce nella tabella è relativa a un dato campione. Ogni colonna è una proprietà tracciata da DroidLysis.

Ad esempio, per recuperare tutti i nomi file, la somma SHA256 e le proprietà smali del database:

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,
...

Pattern di proprietà

Cosa rileva DroidLysis può essere configurato ed esteso nei file della directory ./conf.

Un pattern è composto da:

  • un nome del tag: esempio send_sms. Questo per nominare la proprietà. Deve essere univoco nel file .conf.
  • un pattern: questa è un'espressione regolare da abbinare. Es: ;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage. Nel file smali.conf, questa regexp viene abbinata al codice Smali. In questo caso particolare, ci sono 3 modi diversi per inviare messaggi SMS dal codice: sendTextMessage, sendMultipartTextMessage e sendDataMessage.
  • una descrizione (opzionale): spiega l'importanza della proprietà e cosa significa.
root@kitploit:~
[send_sms]
pattern=;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage
description=Invio di messaggi SMS

Importare tracker della privacy Exodus

Exodus Privacy mantiene un elenco di vari SDK che è interessante escludere nella nostra analisi tramite conf/kit.conf. Aggiungi l'opzione --import_exodus alla riga di comando di droidlysis: questo analizzerà i tracker esistenti che Exodus Privacy conosce e che non sono ancora nel tuo kit.conf. Infine, aggiungerà tutti i nuovi tracker a ~/.cache/droidlysis/kit.conf.

Successivamente, potresti voler ordinare il tuo file kit.conf:

root@kitploit:~
import configparser
import collections
import os

config = configparser.ConfigParser({}, collections.OrderedDict)
config.read(os.path.expanduser('~/.cache/droidlysis/kit.conf'))
# Ordina tutte le sezioni alfabeticamente
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 per proprietà smali

Questo script ti aiuta a cercare metodi nell'interfaccia JEB che contengono codice corrispondente al pattern smali e navigare facilmente a quelle funzioni. Quando carichi lo script e selezioni il file details.md tra i file di analisi di droidlysis, apparirà una casella di ricerca. Una volta spostata, puoi richiamare facilmente la finestra di ricerca usando la scorciatoia per l'esecuzione recente dello script.

  • JEB > File > Scripts > Selettore script > script/DroidlysisSearch.py
  • JEB > File > Scripts > Esegui ultimo script

Aggiornamenti

  • v3.4.7 - Rimossa la dipendenza da Procyon, integrati diversi PR #24 e #25, aggiunto rilevamento più dettagliato dell'abuso di accessibilità
  • v3.4.6 - Rilevamento della funzionalità del manifest che carica automaticamente l'APK all'installazione
  • v3.4.5 - Creazione di un file kit.conf utente scrivibile
  • v3.4.4 - Correzione bug #14
  • v3.4.3 - Utilizzo dei file di configurazione
  • v3.4.2 - Aggiunta importazione dei tracker della privacy Exodus
  • v3.4.1 - Rimossa la dipendenza da Androguard
  • v3.4.0 - Supporto multidex
  • v3.3.1 - Miglioramento rilevamento stringhe Base64
  • v3.3.0 - Esportazione dati in JSON
  • v3.2.1 - Rilevamento indirizzi IP
  • v3.2.0 - Dex2jar è opzionale
  • v3.1.0 - Rilevamento stringhe Base64
Scarica lo strumento