
Ein Framework zur automatisierten Extraktion von statischen und dynamischen Merkmalen aus Android-Anwendungen
Dies ist ein Tool zum Extrahieren von statischen und dynamischen Merkmalen aus Android APKs. Es kombiniert verschiedene bekannte Android-App-Analysetools wie DroidBox, FlowDroid, Strace, AndroGuard oder VirusTotal-Analyse. Wenn ein Quellverzeichnis mit APK-Dateien bereitgestellt wird, wendet AndroPyTool all diese Tools für prä-statische, statische und dynamische Analysen an und erzeugt Merkmalsdateien im JSON- und CSV-Format und ermöglicht es, alle Daten in einer MongoDB-Datenbank zu speichern.
Für weitere Informationen können Sie die folgenden beiden Arbeiten lesen:
Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). Android malware detection through hybrid features fusion and ensemble classifiers: the AndroPyTool framework and the OmniDroid dataset. Information Fusion. DOI: 10.1016/j.inffus.2018.12.006
Martín, A., Lara-Cabrera, R., & Camacho, D. (2018). A new tool for static and dynamic Android malware analysis. In Data Science and Knowledge Engineering for Sensing Decision Support (pp. 509-516). World Scientific.
Bitte zitieren Sie die oben genannten Arbeiten in Ihren Veröffentlichungen, wenn Sie dieses Tool verwenden.

Es gibt zwei Möglichkeiten, AndroPyTool zu installieren und zu nutzen.
MODUS A – DOCKER: Herunterladen eines Docker-Containers, der alle notwendigen Dateien enthält. Dies ist die empfohlene Option, Sie können AndroPyTool in nur zwei Schritten zum Laufen bringen.
MODUS B – QUELLCODE: Installieren und Konfigurieren aller erforderlichen Bibliotheken und Ausführen des Python-Quellcodes.
Ein Docker-Container wurde erstellt, um eine schnelle und zuverlässige Version von AndroPyTool bereitzustellen. Um AndroPyTool mit Docker zu verwenden, müssen Sie lediglich:
Installieren Sie Docker (falls noch nicht geschehen). Folgen Sie den Anweisungen hier. Wenn Sie nicht Ubuntu verwenden, wechseln Sie zum richtigen Betriebssystem.
Ziehen Sie den Container von Docker Hub:
$ docker pull alexmyg/andropytool
Führen Sie AndroPyTool aus, indem Sie den Container starten:
$ docker run --volume=</PATH/TO/FOLDER/WITH/APKS/>:/apks alexmyg/andropytool -s /apks/ <ARGUMENTS>
Sie müssen </PFAD/ZUM/ORDNER/MIT/APKS/> durch einen Pfad auf Ihrem Host ersetzen, der die zu analysierenden APKs enthält. Das Argument "-s" muss wie in der obigen Zeile angegeben werden, wobei auf /apks/ zu verweisen ist.
HINWEIS 2: AndroPyTool verschiebt Ihre APK-Dateien in verschiedene Unterordner, um ein organisiertes Arbeitsverzeichnis zu erstellen. Siehe das Ordnerstrukturschema.
Es gibt verschiedene Argumente, die an androPyTool übergeben werden können:
-h: Zeigt die Hilfemeldung an und beendet.-all, --allsteps: Führt alle Schritte von AndroPyTool aus (empfohlen). Um einen VirusTotal-Bericht zu erhalten, muss auch das Argument -vt gefolgt von einem VirusTotal-API-Schlüssel angegeben werden. Wenn die Option -all nicht angegeben wird, wird nur der letzte Schritt plus die bereitgestellten Argumente ausgeführt.-s SOURCE_FOLDER, --source SOURCE_FOLDER: Ordner mit zu analysierenden APKs. Alle Beispiele müssen die Erweiterung .apk enthalten. Wenn eine vorherige Ausführung von AndroPyTool unterbrochen wurde, muss das vorherige Arbeitsverzeichnis angegeben werden.-S, --single: Einzelne Analyse separat speichern. Standard: False.-f, --filter: Filtert gültige und ungültige APKs (empfohlen).-vt VIRUSTOTAL_API_KEY, --virustotal VIRUSTOTAL_API_KEY: Analysiert Anwendungen mit dem VirusTotal-Dienst. Es muss ein VirusTotal-API-Schlüssel folgen.-cl, --classify: Klassifiziert Apps als Malware oder Benignware basierend auf den VirusTotal-Berichten. Das Argument --virustotal muss gesetzt sein.-fw, --flowdroid: Führt flowdroid aus.-dr, --droidbox: Führt droidbox aus.-c, --cleanup: Bereinigt durch Löschen temporärer Arbeitsdateien. Standard: True-P PACKAGEINDEX, --packgeIndex PACKAGEINDEX: TXT-Datei mit allen Android-API-Paketen. Standard: info/package_index.txt-C CLASSINDEX, --classIndex CLASSINDEX: TXT-Datei mit allen Android-API-Klassen. Standard: info/class_index.txt-C CLASSINDEX, --classIndex CLASSINDEX: TXT-Datei mit allen Android-API-Klassen. Standard: info/class_index.txt-SC SYSTEMCOMMANDSINDEX, --systemCommandsIndex SYSTEMCOMMANDSINDEX: TXT-Datei mit allen Systembefehlen. Standard: info/system_commands.txt-C CLASSINDEX, --classIndex CLASSINDEX: TXT-Datei mit allen Android-API-Klassen. Standard: info/class_index.txt-mg MONGODBURI, --mongodbURI MONGODBURI: Exportiert den generierten Bericht in eine MongoDB-Datenbank. Erfordert Verbindungsadresse nach dem Schema: localhost:27017-csv EXPORTCSV, --cexportCSV EXPORTCSV: Exportiert den generierten Bericht in eine CSV-Datei. Es werden nur statische Merkmale einbezogen.--color: Erlaubt Farben beim Drucken von Nachrichten.--no-color: Verwendet keine Farben zum Drucken von Nachrichten.HINWEIS: Dieses Verfahren wurde nur unter Ubuntu getestet.
0. Voraussetzungen
$ 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. Sie müssen das Android SDK installieren (zum nächsten Schritt, falls bereits vorhanden) Die nächsten Schritte ermöglichen die Installation des Android SDK im Nicht-GUI-Modus:
Android SDK herunterladen und entpacken:
$ cd
$ wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz
$ tar -xvf android-sdk_r24.2-linux.tgz
Android SDK zum Pfad hinzufügen (wenn Sie nicht Bash verwenden, z.B. Zsh bevorzugen, denken Sie daran, die richtige Datei zu ändern). Fügen Sie dazu diese beiden Zeilen zu Ihrer ~/.bashrc-Datei hinzu:
export ANDROID_HOME=$HOME/android-sdk-linux/
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/platform-tools
Laden Sie die Bibliotheken in der aktuellen Sitzung mit:
$ source ~/.bashrc
2. Wir müssen das Android 16-Paket installieren