Samstag, 2. Januar 2021

Android - (App) APK Decompiler und Quellcode anzeigen

Mit Hilfe von einem APK Decompiler wie z.B. "jadx - Dex to Java decompiler" ist es möglich eine kompilierte Android App wieder zurück in den Source Code umzuwandeln. Dies ist oft der erste Schritt um im Quellcode sensible Informationen (z.B. Passwörter eines Admin-Accounts oder Zugangsdaten zu Datenbanken bzw. Schnittstellen) zu finden.

Des Weiteren ist es möglich die Funktionsweise bzw. Programmierung der jeweiligen App genauer nachvollziehen umso IT-Security Schwachstellen zu finden. 


Die APK (Android Package Kit) Datei der Android App wird benötigt

Um an die Datei zu kommen, gibt es verschieden Möglichkeiten:

  1. APK Datei vom Smartphone auf PC kopieren mit Hilfe von ADB, wie man die Android Debug Bridge installieren kann, hatte ich bereits in einem älteren Artikel ABD Installation Amazon Fire-Tablet - Spezialangebote (Werbung) entfernen beschrieben.
    • adb shell pm list packages (z.B. "com.example.appname")
    • adb shell pm path com.example.appname (Pfadnamen der App anzeigen)
    • adb pull /data/app/com.example.appname-2.apk D:\Downloads
  2. Installierte Apps im Total Commander anzeigen und auf die SD-Karte oder WebDAV kopieren.
  3. Mit Hilfe von Sideloading die Android-App aus einem anderen Marketplace herunterladen.


Dekompilieren

Mit einem Dekompilier wandelt man den Bytecode (Maschinen- oder Objektcode) wieder lesbaren Quellcode in eine höhere Programmiersprache um. Dabei wird versucht, den Vorgang des Kompilierens umzukehren und den Quellcode wieder bestmöglich herzustellen.

Hinweis: Das Dekompilieren darf nicht mit dem Disassemblern verwechselt werden, denn die Assemblersprache ist nur eine andere Darstellung des kompilierten Maschinencodes!

Dekompilieren einer APK Datei mit jadx => JAVA

Die APK Datei wird mit Hilfe von jadx direkt in die entsprechenden Java-Dateien umgewandelt.

Download des aktuellen Release von github: https://github.com/skylot/jadx/releases/latest

Am einfachsten verwendet man "jadx" mit einer grafischen Benutzeroberfläche. Der Start erfolgt mit der Datei jadx-gui-1.2.0.exe . Anschließend wählt man im Fenster die APK Datei aus, welche dekompiliert werden soll.

Wurde die Datei ausgewählt, dekompiliert jadx sie und stellt auf der linken Seite der Anwendung alle Java-Pakete und -Dateien der APK aufgelistet bereit. Hinweis: Verwendet die App als native Code Basis Cordova, basiert die App selbst auf Javascript (der Quellcode befindet sich in dann unter Resources / Assets / www).

Jetzt ist es möglich nach sensiblen Informationen z.B. http(s)://, passw, key, user, rsa, aes, sslsocket und secret zu suchen.

Dekompilieren per Webseite

Zum Beispiel die Webseiten http://www.decompileandroid.com/ und http://www.javadecompilers.com/apk bieten das Dekompilieren als Online-Service an.

Keine Kommentare:

Kommentar posten