
Un framework per l'estrazione automatica di caratteristiche statiche e dinamiche da applicazioni Android.
Questo è uno strumento per estrarre caratteristiche statiche e dinamiche da APK Android. Combina diversi strumenti noti di analisi di app Android come DroidBox, FlowDroid, Strace, AndroGuard o VirusTotal. Fornita una directory di origine contenente file APK, AndroPyTool applica tutti questi strumenti per eseguire analisi pre-statiche, statiche e dinamiche e genera file di caratteristiche in formato JSON e CSV e permette anche di salvare tutti i dati in un database MongoDB.
Per ottenere maggiori informazioni puoi leggere i seguenti due articoli:
Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). Rilevamento di malware Android tramite fusione ibrida di caratteristiche e classificatori ensemble: il framework AndroPyTool e il dataset OmniDroid. Information Fusion. DOI: 10.1016/j.inffus.2018.12.006
Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). Un nuovo strumento per l'analisi statica e dinamica del malware Android. In Data Science and Knowledge Engineering for Sensing Decision Support (pp. 509-516). World Scientific.
Per favore, se usi questo strumento, cita i lavori sopra nei tuoi articoli.

Ci sono due modi possibili per installare e utilizzare AndroPyTool.
MODALITÀ A - DOCKER: Scarica un container Docker che contiene tutti i file necessari. Questa è l'opzione consigliata, puoi avere AndroPyTool in esecuzione in soli due passaggi.
MODALITÀ B - CODICE SORGENTE: Installa e configura tutte le librerie necessarie ed esegui il codice Python sorgente.
È stato creato un container Docker per fornire una versione veloce e affidabile di AndroPyTool. Per utilizzare AndroPyTool con Docker basta:
Installa Docker (se non l'hai già fatto). Segui le istruzioni qui. Se non stai usando Ubuntu, passa al Sistema Operativo corretto.
Scarica il container da Docker hub:
$ docker pull alexmyg/andropytool
Esegui AndroPyTool avviando il container:
$ docker run --volume=</PATH/TO/FOLDER/WITH/APKS/>:/apks alexmyg/andropytool -s /apks/ <ARGUMENTS>
Devi sostituire </PATH/TO/FOLDER/WITH/APKS/> con un percorso del tuo host che contiene gli apk da analizzare. L'argomento "-s" deve essere fornito come mostrato nella riga sopra, puntando a /apks/
NOTA 2: AndroPyTool sposta i tuoi file APK in diverse sottocartelle per generare una directory di lavoro organizzata. Vedi lo schema della struttura delle cartelle.
Ci sono diversi argomenti che possono essere forniti a AndroPyTool:
-h: Mostra il messaggio di aiuto ed esce.-all, --allsteps: Esegue tutti i passaggi di AndroPyTool (Consigliato). Per ottenere un report di VirusTotal, l'argomento -vt deve essere fornito seguito da una chiave API di VirusTotal. Se l'opzione -all non è fornita, viene eseguito solo l'ultimo passaggio insieme agli argomenti forniti.-s SOURCE_FOLDER, --source SOURCE_FOLDER: Cartella contenente APK da analizzare. Tutti i campioni devono avere estensione .apk. Se una precedente esecuzione di AndroPyTool è stata interrotta, deve essere fornita la directory di lavoro precedente.-S, --single: Salva le analisi singole separatamente. Predefinito: False.-f, --filter: Filtra APK validi e non validi (Consigliato).-vt VIRUSTOTAL_API_KEY, --virustotal VIRUSTOTAL_API_KEY: Analizza le applicazioni con il servizio VirusTotal. Deve essere seguito da una chiave API di VirusTotal.-cl, --classify: Classifica le app tra malware o benignware basandosi sui report di VirusTotal. L'argomento --virustotal deve essere impostato.-fw, --flowdroid: Esegui flowdroid.-dr, --droidbox: Esegui droidbox.-c, --cleanup: Esegue la pulizia cancellando i file di lavoro temporanei. Predefinito: True-P PACKAGEINDEX, --packgeIndex PACKAGEINDEX: File TXT con tutti i pacchetti API Android. Predefinito: info/package_index.txt-C CLASSINDEX, --classIndex CLASSINDEX: File TXT con tutte le classi API Android. Predefinito: info/class_index.txt-C CLASSINDEX, --classIndex CLASSINDEX: File TXT con tutte le classi API Android. Predefinito: info/class_index.txt-SC SYSTEMCOMMANDSINDEX, --systemCommandsIndex SYSTEMCOMMANDSINDEX: File TXT con tutti i comandi di sistema. Predefinito: info/system_commands.txt-C CLASSINDEX, --classIndex CLASSINDEX: File TXT con tutte le classi API Android. Predefinito: info/class_index.txt-mg MONGODBURI, --mongodbURI MONGODBURI: Esporta il report generato in un database mongodb. Richiede l'indirizzo di connessione seguendo lo schema: localhost:27017-csv EXPORTCSV, --cexportCSV EXPORTCSV: Esporta il report generato in un file CSV. Sono incluse solo le caratteristiche statiche.--color: Permette i colori durante la stampa dei messaggi.--no-color: Non usare colori per stampare i messaggi.NOTA: Questa procedura è stata testata solo su Ubuntu
0. Requisiti
$ sudo apt-get update
$ sudo apt-get install -y --no-install-recommends software-properties-common wget git lib32gcc1 lib32ncurses5 lib32stdc++6 lib32z1 libc6-i386 libgl1-mesa-dev python-pip python-dev gcc python-tk curl
$ sudo add-apt-repository ppa:webupd8team/java -y
$ sudo apt-get update
$ sudo echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections
$ sudo apt-get install -y oracle-java8-installer
$ sudo apt-get install -y python-setuptools
$ sudo apt-get clean
1. Devi installare Android SDK (vai al passaggio successivo se lo hai già) I prossimi passaggi ti permetteranno di installare Android SDK in modalità Non-GUI:
Scarica e decomprimi Android SDK:
$ cd
$ wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
$ tar -xvf android-sdk_r24.2-linux.tgz
Aggiungi Android SDK al PATH (se non usi Bash, ad esempio preferisci Zsh, ricordati di modificare il file corretto). Per farlo, aggiungi queste due righe al tuo file ~/.bashrc:
export ANDROID_HOME=$HOME/android-sdk-linux/
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
Carica le librerie nella sessione corrente con:
$ source ~/.bashrc
2. Dobbiamo installare il pacchetto Android 16